{"id":299592,"date":"2026-06-07T13:51:19","date_gmt":"2026-06-07T13:51:19","guid":{"rendered":"https:\/\/ja.wordpress.org\/plugins\/conferencemanager\/"},"modified":"2026-09-03T07:59:07","modified_gmt":"2026-09-03T07:59:07","slug":"conferencemanager","status":"publish","type":"plugin","link":"https:\/\/fr-be.wordpress.org\/plugins\/conferencemanager\/","author":23478251,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.6.13","stable_tag":"1.6.13","tested":"7.1","requires":"6.9","requires_php":"8.4","requires_plugins":null,"header_name":"ConferenceManager","header_author":"CS24 Co.,Ltd.","header_description":"\u5b66\u8853\u5b66\u4f1a\u306e\u30a4\u30d9\u30f3\u30c8\u53c2\u52a0\u7533\u8fbc\u30fb\u6c7a\u6e08\u30fb\u6587\u66f8\u81ea\u52d5\u5316\u30d7\u30e9\u30b0\u30a4\u30f3","assets_banners_color":"ccebf3","last_updated":"2026-09-03 07:59:07","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/cs24.biz\/conference\/","header_author_uri":"https:\/\/cs24.biz\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":1266,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.10":{"tag":"1.1.10","author":"creativestrategy24","date":"2026-08-05 07:28:02","revision":3634978},"1.1.11":{"tag":"1.1.11","author":"creativestrategy24","date":"2026-08-10 04:19:43","revision":3639942},"1.1.12":{"tag":"1.1.12","author":"creativestrategy24","date":"2026-08-10 04:53:22","revision":3639961},"1.1.2":{"tag":"1.1.2","author":"creativestrategy24","date":"2026-06-07 13:51:07","revision":3563716},"1.1.3":{"tag":"1.1.3","author":"creativestrategy24","date":"2026-06-08 02:11:19","revision":3564048},"1.1.4":{"tag":"1.1.4","author":"creativestrategy24","date":"2026-06-14 13:20:01","revision":3571922},"1.1.5":{"tag":"1.1.5","author":"creativestrategy24","date":"2026-06-18 08:15:19","revision":3576804},"1.1.6":{"tag":"1.1.6","author":"creativestrategy24","date":"2026-06-19 05:16:59","revision":3578062},"1.1.7":{"tag":"1.1.7","author":"creativestrategy24","date":"2026-07-06 13:48:29","revision":3597869},"1.1.8":{"tag":"1.1.8","author":"creativestrategy24","date":"2026-07-15 13:44:44","revision":3608956},"1.1.9":{"tag":"1.1.9","author":"creativestrategy24","date":"2026-08-04 07:07:00","revision":3633853},"1.2.0":{"tag":"1.2.0","author":"creativestrategy24","date":"2026-08-15 06:49:28","revision":3648229},"1.2.1":{"tag":"1.2.1","author":"creativestrategy24","date":"2026-08-15 09:54:09","revision":3648385},"1.2.2":{"tag":"1.2.2","author":"creativestrategy24","date":"2026-08-15 13:44:06","revision":3648655},"1.2.3":{"tag":"1.2.3","author":"creativestrategy24","date":"2026-08-15 14:10:32","revision":3648687},"1.2.4":{"tag":"1.2.4","author":"creativestrategy24","date":"2026-08-16 04:32:22","revision":3649277},"1.2.5":{"tag":"1.2.5","author":"creativestrategy24","date":"2026-08-20 11:34:06","revision":3656685},"1.3.0":{"tag":"1.3.0","author":"creativestrategy24","date":"2026-08-21 07:45:12","revision":3658462},"1.4.0":{"tag":"1.4.0","author":"creativestrategy24","date":"2026-08-21 09:41:36","revision":3658710},"1.4.1":{"tag":"1.4.1","author":"creativestrategy24","date":"2026-08-23 03:37:52","revision":3661342},"1.5.0":{"tag":"1.5.0","author":"creativestrategy24","date":"2026-08-25 08:15:59","revision":3664859},"1.5.1":{"tag":"1.5.1","author":"creativestrategy24","date":"2026-08-25 13:18:35","revision":3665368},"1.6.0":{"tag":"1.6.0","author":"creativestrategy24","date":"2026-08-26 13:59:00","revision":3667176},"1.6.1":{"tag":"1.6.1","author":"creativestrategy24","date":"2026-08-27 06:26:24","revision":3668198},"1.6.10":{"tag":"1.6.10","author":"creativestrategy24","date":"2026-08-31 08:07:10","revision":3673614},"1.6.11":{"tag":"1.6.11","author":"creativestrategy24","date":"2026-09-01 08:19:23","revision":3675623},"1.6.12":{"tag":"1.6.12","author":"creativestrategy24","date":"2026-09-02 04:30:12","revision":3677140},"1.6.13":{"tag":"1.6.13","author":"creativestrategy24","date":"2026-09-03 07:59:07","revision":3679277},"1.6.2":{"tag":"1.6.2","author":"creativestrategy24","date":"2026-08-27 07:34:47","revision":3668280},"1.6.3":{"tag":"1.6.3","author":"creativestrategy24","date":"2026-08-27 08:53:47","revision":3668390},"1.6.4":{"tag":"1.6.4","author":"creativestrategy24","date":"2026-08-27 09:24:14","revision":3668447},"1.6.5":{"tag":"1.6.5","author":"creativestrategy24","date":"2026-08-28 05:31:18","revision":3669844},"1.6.6":{"tag":"1.6.6","author":"creativestrategy24","date":"2026-08-28 06:42:43","revision":3669916},"1.6.7":{"tag":"1.6.7","author":"creativestrategy24","date":"2026-08-30 14:12:13","revision":3672650},"1.6.8":{"tag":"1.6.8","author":"creativestrategy24","date":"2026-08-31 00:52:41","revision":3673261},"1.6.9":{"tag":"1.6.9","author":"creativestrategy24","date":"2026-08-31 02:28:33","revision":3673301}},"upgrade_notice":{"1.6.13":"<p>Registrations after the deadline were accepted, because the deadline was never read. They are now refused. Outside UTC, on-site pricing started late (nine hours in Japan) and invoices could print the event date a day out. On-site registration is new and off by default.<\/p>","1.6.12":"<p>Links between the plugin&#039;s pages led nowhere on sites installed in a subdirectory. They now use the real address of each page, and follow a page you rename or move. Setup no longer reports the registration page as missing when it holds a shortcode written with a view setting.<\/p>","1.6.11":"<p>The payment confirmation email now names the organiser and, when the amount received differs from the amount billed, states the refund due or the shortfall, with your bank details when money is short. Your site name also reaches participants as typed: &amp; and &#039; no longer arrive as HTML.<\/p>","1.6.10":"<p>Your data is not touched and the same encryption key is used as before. If the option holding that key is ever damaged, the plugin now explains what happened and how to recover, instead of stopping with a PHP error. The rule for choosing the key now lives in one place rather than two.<\/p>","1.6.9":"<p>The form showed \u00a50 for a category and participation type the event does not offer, so it read as free until the registration was sent and refused. It now says the combination is not offered and shows no total. Events with no fee table, and prices set to zero on purpose, are unaffected.<\/p>","1.6.8":"<p>A group registration quietly left out any staff member the event could not accept, and was confirmed and billed for the smaller number. The whole group is now checked first and refused if anyone cannot be accepted. The form no longer keeps a participation type the event does not offer.<\/p>","1.6.7":"<p>Cancelling a registration left its invoice counted as unpaid, on the dashboard and in event totals. It is now withdrawn, and restoring brings it back; ones left by earlier versions are withdrawn on update. Cancelling an event now asks about its registrations. Received payments are untouched.<\/p>","1.6.6":"<p>Invoices and receipts printed the name above the organisation, which left the honorific attached to the organisation instead of the person. The order is now reversed. Documents issued earlier read the new way too and keep their numbers, so nothing is re-issued.<\/p>","1.6.5":"<p>The settlement dialog no longer opens with a refund pre-selected and pre-filled, which let a refund be recorded in one click by mistake. A settlement entered in error can now be cancelled; it leaves the totals and stays in the audit log. Changing the purpose resets the amount.<\/p>","1.6.4":"<p>Fixes a case where a missing record could have made audit-log trimming start without the two-week wait. Nothing else changes.<\/p>","1.6.3":"<p>Trimming of the audit log now waits two weeks after this version is installed, and tells you in the admin while it waits, so there is time to keep the records for longer if you need them. Nothing has been removed on any site yet.<\/p>","1.6.2":"<p>Starts trimming the audit log, which until now was never reduced and simply grew. Ordinary activity is kept for a year and security records for three; the IP address recorded with ordinary activity is dropped after 90 days. Registrations, payments and documents are not affected.<\/p>","1.6.1":"<p>Warns you in the event editor when a fee category is left in the table with no price set, so it can be fixed before the event is published rather than after. Nothing else changes.<\/p>","1.6.0":"<p>Adds an optional society name in front of member types, for co-hosted events where attendees read &quot;Regular Member&quot; as their own. Shows the fee category on My Page and on documents. The approval status and the event status no longer look like buttons. Nothing already recorded is changed.<\/p>","1.5.1":"<p>Fixes the notice about events with no price set for a fee category: it could not be dismissed, and it missed categories whose prices had been cleared rather than removed. No change to registrations, payments or documents.<\/p>","1.5.0":"<p>Invoices and receipts were saved under guessable public file names; they are now delivered only to the person they belong to, and existing files are removed on activation. Also fixes shared connections locking everyone out of self-registration. Updating is recommended.<\/p>","1.4.0":"<p>Credit card payment (Stripe) moves to the separately distributed Pro edition and is removed here. Bank transfer is unaffected and no data is removed. Refunds of existing card payments are now recorded only, not sent back automatically.<\/p>","1.3.0":"<p>Removes the unused passkey (WebAuthn) sign-in endpoints. The feature was never usable from the interface, but the endpoints were reachable; updating is recommended. Also fixes billed amounts shown without tax and payment dates shown in UTC.<\/p>","1.2.5":"<p>Marking a participant paid now records the payment, so it reaches the Payments screen, the amount received and receipts \u2014 previously it did none of those. Forwarding headers such as X-Forwarded-For are no longer trusted unless the connection comes from a proxy this site trusts.<\/p>","1.2.4":"<p>Stops a shortcode naming a Pro-only view from quietly showing the registration form, which could record a registration the visitor never intended. Raises the My Page one-time code limit so people sharing one public IP address no longer lock each other out. No database changes.<\/p>","1.2.3":"<p>Fixes a member CSV export that silently stopped at 100 rows, and paged lists that could repeat or pass over a record when several shared the same date. No database changes and no action required.<\/p>","1.2.2":"<p>Corrects the encryption key warning, which pointed at wp-config.php even on sites keeping the key in the database, and now says where a recoverable previous key is. The warning can only be dismissed by its button, not by a prefetched link. Key rotation no longer passes over records.<\/p>","1.2.1":"<p>Adds a warning that appears if the encryption key changes, so the problem is caught while it is still reversible. Corrects what the Setup screen and the readme say about where the key is stored. No database changes and no action required.<\/p>","1.2.0":"<p>Adds a &quot;What\u2019s New&quot; screen under the Conference menu that lists this plugin&#039;s features and what the separately distributed Pro edition adds. No database changes, no behaviour changes; no action required.<\/p>","1.1.12":"<p>Repairs sites where a database upgrade had been skipped, which could overstate the net amount received. The schema auto-upgrades to v3.4.0 and the 1.1.9 and 1.1.10 data upgrades are re-run once; sites that are already correct are unaffected. No action required.<\/p>","1.1.11":"<p>Runs pending database upgrades on activation, so they can no longer be skipped. Sites that had already skipped an upgrade are repaired by 1.1.12, not by this release.<\/p>","1.1.10":"<p>Fixes refunds made before 1.1.9 not being counted, which overstated the net amount received. The schema auto-upgrades to v3.3.0 and those refunds move into the settlement ledger; no action required. Payments refunded in full now count as settled.<\/p>","1.1.9":"<p>Separates the billed amount from the amount actually received, so over- and under-payments can be settled by refund or surcharge. The database schema auto-upgrades to v3.2.0 and payments reconciled earlier have their paid amount backfilled from the billed amount; no action required.<\/p>","1.1.7":"<p>Fixes a failure when saving a member who has no member number (empty member numbers are now stored as NULL). No database changes; no action required. If your site already has members whose member number was saved as an empty string, re-saving them normalizes the value automatically.<\/p>","1.1.2":"<p>Addresses v1.1.1 review feedback: removes online\/Peatix add-on fields, drops unused libraries and updates Stripe\/FPDI, moves font storage out of the plugin folder, and limits the public fee endpoint to published events. No action required.<\/p>","1.1.1":"<p>Addresses WordPress.org review feedback from v1.1.0 (source code disclosure, core-file loading, REST permission callbacks, HEREDOC removal). No database changes; no action required.<\/p>","1.1.0":"<p>Addresses WordPress.org review feedback from v1.0.3. Paid add-on modules are no longer included; Stripe payment is now part of the free plugin. Existing data is preserved; database schema auto-upgrades to v3.0.0.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3563718,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3563718,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3563718,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3563718,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.10","1.1.11","1.1.12","1.1.2","1.1.3","1.1.4","1.1.5","1.1.6","1.1.7","1.1.8","1.1.9","1.2.0","1.2.1","1.2.2","1.2.3","1.2.4","1.2.5","1.3.0","1.4.0","1.4.1","1.5.0","1.5.1","1.6.0","1.6.1","1.6.10","1.6.11","1.6.12","1.6.13","1.6.2","1.6.3","1.6.4","1.6.5","1.6.6","1.6.7","1.6.8","1.6.9"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3563727,"resolution":"1","location":"assets","locale":"","width":1280,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3563727,"resolution":"2","location":"assets","locale":"","width":1280,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3563727,"resolution":"3","location":"assets","locale":"","width":1280,"height":900}},"screenshots":{"1":"Dashboard \u2014 event overview and quick actions","2":"Registration form \u2014 participant registration with group support","3":"Payment management \u2014 bank transfer reconciliation with invoice generation"}},"plugin_section":[],"plugin_tags":[1802,118,2431,507,603],"plugin_category":[40,45,58],"plugin_contributors":[266083],"plugin_business_model":[],"class_list":["post-299592","plugin","type-plugin","status-publish","hentry","plugin_tags-academic","plugin_tags-conference","plugin_tags-event","plugin_tags-payment","plugin_tags-registration","plugin_category-calendar-and-events","plugin_category-ecommerce","plugin_category-user-management","plugin_contributors-creativestrategy24","plugin_committers-creativestrategy24"],"banners":{"banner":"https:\/\/ps.w.org\/conferencemanager\/assets\/banner-772x250.png?rev=3563718","banner_2x":"https:\/\/ps.w.org\/conferencemanager\/assets\/banner-1544x500.png?rev=3563718","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/conferencemanager\/assets\/icon-128x128.png?rev=3563718","icon_2x":"https:\/\/ps.w.org\/conferencemanager\/assets\/icon-256x256.png?rev=3563718","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/conferencemanager\/assets\/screenshot-1.png?rev=3563727","caption":"Dashboard \u2014 event overview and quick actions"},{"src":"https:\/\/ps.w.org\/conferencemanager\/assets\/screenshot-2.png?rev=3563727","caption":"Registration form \u2014 participant registration with group support"},{"src":"https:\/\/ps.w.org\/conferencemanager\/assets\/screenshot-3.png?rev=3563727","caption":"Payment management \u2014 bank transfer reconciliation with invoice generation"}],"raw_content":"<!--section=description-->\n<p>Conference Manager is a WordPress plugin designed for academic societies and conference organizers. It provides end-to-end management of event registration, payments, and document generation.<\/p>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li>Member management (import\/export via CSV\/Excel)<\/li>\n<li>Event and session management<\/li>\n<li>Registration forms with group (team) registration support<\/li>\n<li>Bank transfer payment tracking with reconciliation<\/li>\n<li>Automatic invoice and receipt PDF generation<\/li>\n<li>Participant list and My Page (participants sign in with a one-time code sent by email)<\/li>\n<li>AES-256-GCM encryption for personal data<\/li>\n<li>Audit logging, rate limiting, and bot protection<\/li>\n<li>Transactional email notifications (OTP, confirmations)<\/li>\n<li>SNS share buttons (Twitter\/X, Facebook, LINE)<\/li>\n<li>Full Japanese \/ English localization<\/li>\n<\/ul>\n\n<p>A separately distributed Pro edition (Conference Manager Pro) adds abstract submission and peer review, sponsor management, bulk email and other features for larger conferences. It is a different plugin and is not required: everything listed above works in full here, with nothing locked or time-limited. See Conference &gt; What's New in the admin menu for the full list.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the following external services.<\/p>\n\n<h4>IPAex Font Download (PDF generation)<\/h4>\n\n<p>To render Japanese text in PDF documents (invoice, receipt), the plugin needs the open-source IPAex Gothic and IPAex Mincho fonts. From the admin Dashboard you can install them with one click; the plugin then downloads the font files (one-time, per font). No user data is transmitted \u2014 it is a file download only. If the server cannot reach the download host, you can instead upload the <code>.ttf<\/code> files directly from the Dashboard (no external connection required).<\/p>\n\n<ul>\n<li>Download host (mirror maintained by the plugin author): <a href=\"https:\/\/cs24.biz\/conference\/fonts\/\">https:\/\/cs24.biz\/conference\/fonts\/<\/a><\/li>\n<li>Data sent: none (file download only)<\/li>\n<li>The download URL can be overridden via the <code>conf_manager_font_source_url<\/code> filter.<\/li>\n<li>Original font source \/ IPAex Font License (IPA, Information-technology Promotion Agency): <a href=\"https:\/\/moji.or.jp\/ipafont\/license\/\">https:\/\/moji.or.jp\/ipafont\/license\/<\/a><\/li>\n<\/ul>\n\n<h3>Development \/ Building from source<\/h3>\n\n<p>The admin and public interfaces are built with React (JSX). The human-readable\nsource for the compiled, minified bundles <code>build\/admin-app.js<\/code> and\n    build\/public-app.js is shipped inside this plugin under the <code>src\/<\/code> directory:<\/p>\n\n<ul>\n<li><code>src\/admin\/<\/code>  \u2014 source for <code>build\/admin-app.js<\/code> (admin dashboard app)<\/li>\n<li><code>src\/public\/<\/code> \u2014 source for <code>build\/public-app.js<\/code> (public registration \/ MyPage app)<\/li>\n<\/ul>\n\n<p>Build toolchain: the project uses <a href=\"https:\/\/www.npmjs.com\/package\/@wordpress\/scripts\">@wordpress\/scripts<\/a>\n(a wrapper around webpack and Babel). The webpack configuration is included as\n    webpack.config.js, and all dependencies and build scripts are declared in\n    package.json (with <code>package-lock.json<\/code> for reproducible installs).<\/p>\n\n<p>To rebuild the compiled assets from source:<\/p>\n\n<ol>\n<li>Install Node.js 18+ and npm.<\/li>\n<li>From the plugin directory, run <code>npm install<\/code>.<\/li>\n<li>Run <code>npm run build<\/code>. This regenerates <code>build\/admin-app.js<\/code> and\n   build\/public-app.js (and their <code>*.asset.php<\/code> dependency manifests).\nUse <code>npm start<\/code> for an unminified development watch build.<\/li>\n<\/ol>\n\n<p>Third-party libraries bundled into the compiled JavaScript (all open source,\ninstalled from the public npm registry and declared in <code>package.json<\/code>):<\/p>\n\n<ul>\n<li><code>html5-qrcode<\/code> \u2014 QR code scanner used for participant check-in (Apache-2.0)<\/li>\n<\/ul>\n\n<p>WordPress-provided packages (<code>wp-element<\/code>, <code>wp-components<\/code>, <code>wp-api-fetch<\/code>,\n    wp-i18n, <code>react<\/code>, <code>react-jsx-runtime<\/code>) are declared as externals and are NOT\nbundled \u2014 they are loaded from WordPress core at runtime.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the \"Plugins\" menu in WordPress.<\/li>\n<li>Go to \"Conference\" in the admin menu to start configuring your event.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20charge%20any%20fees%3F\"><h3>Does this plugin charge any fees?<\/h3><\/dt>\n<dd><p>No. The plugin itself is free and GPL-licensed, and nothing in it is locked, time-limited or unlocked by payment. It takes no percentage of anything you collect.<\/p><\/dd>\n<dt id=\"is%20there%20a%20paid%20version%3F\"><h3>Is there a paid version?<\/h3><\/dt>\n<dd><p>The plugin author distributes a separate Pro edition with additional features for larger conferences. It is a different plugin, sold and updated outside WordPress.org, and it is not required to use this one. No part of it is included here, and no feature of this plugin is withheld pending an upgrade. The Conference &gt; What's New screen lists what is in this plugin and what the Pro edition adds.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20support%20japanese%3F\"><h3>Does the plugin support Japanese?<\/h3><\/dt>\n<dd><p>Yes. The plugin is fully internationalized and includes Japanese translations. PDF documents use IPA fonts for proper Japanese rendering.<\/p><\/dd>\n<dt id=\"what%20are%20the%20server%20requirements%3F\"><h3>What are the server requirements?<\/h3><\/dt>\n<dd><p>WordPress 6.9 or later, PHP 8.4 or later, and MariaDB 10.5 or later (or MySQL 8.0+).<\/p><\/dd>\n<dt id=\"how%20is%20personal%20data%20protected%3F\"><h3>How is personal data protected?<\/h3><\/dt>\n<dd><p>Email addresses, phone numbers, and postal addresses are encrypted with AES-256-GCM before they are written to the database.<\/p>\n\n<p>For the strongest protection, define <code>CONF_MANAGER_ENCRYPTION_KEY<\/code> in <code>wp-config.php<\/code> before activating the plugin (it must be at least 16 characters; a shorter value is ignored and the fallback below is used instead). The key then lives outside the database, so a database-only compromise \u2014 an SQL injection, or a leaked backup \u2014 does not expose the key along with the data it protects.<\/p>\n\n<p>If that constant is not defined, the plugin generates a random key on first activation and stores it in <code>wp_options<\/code>, so that encryption works without any setup. This is the default. Note that the key then resides in the same database as the data it encrypts.<\/p>\n\n<p>Conference \u2192 Setup shows which of the two modes your site is using.<\/p>\n\n<p>Important: do not add or change the encryption key once the plugin has stored data. Decryption always uses the key currently in effect, so replacing it makes existing encrypted data permanently unreadable.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.6.13<\/h4>\n\n<ul>\n<li>Added: on-site registration after the advance deadline. Until now the plugin told people that advance registration had closed and to contact the organiser, but offered no way to register \u2014 anyone who signed up after the deadline arrived at the venue with no registration at all. Turn on \"Accept on-site registration\" for an event and visitors can still register from the public form once the deadline has passed. They are charged the on-site rate, the payment is recorded as cash received at the reception desk rather than a bank transfer, and their confirmation email tells them to pay at the desk instead of carrying bank details for money that will never arrive. The participant list marks these registrations so you can tell them apart, and marking one as paid produces a receipt in the usual way. The setting is off by default, so updating changes nothing until you turn it on for an event, and registration stops on its own once the event end date has passed.<\/li>\n<li>Fixed: registrations submitted after the registration deadline were accepted. The deadline was stored and indexed but never read, so the public form let people complete a registration for an event that had closed \u2014 and the same was true for events whose registration had not opened yet, and for events that had already finished. These are now refused, and the event stays in the list showing why instead of disappearing, so that people can still see the dates and the on-site arrangements. Sites that never set a deadline are unaffected: an empty deadline still means registration stays open.<\/li>\n<li>Fixed: the switch from advance to on-site pricing happened at the wrong time on sites outside UTC. The deadline you type is a wall-clock time on your site, but it was compared against UTC, so in Japan the advance price stayed available for nine hours after the deadline had passed. It now follows the timezone set in WordPress, which is what Setup has always said it would do. Sites on UTC were never affected.<\/li>\n<li>Fixed: the registration confirmation email kept advertising the advance deadline for the same nine hours after it had passed, so the price charged and the price described in the email disagreed. The email now stops mentioning the deadline once it has passed.<\/li>\n<li>Fixed: the event date printed on an invoice could be a day late. The date you type is a wall-clock time, but it was read as UTC and converted again for display, so on a site set to Japan an event starting at or after 15:00 was printed as the following day. On sites west of UTC an early-morning start was printed as the previous day. Sites on UTC were never affected. The payment date and the issue date on the same documents were always correct and are unchanged.<\/li>\n<\/ul>\n\n<h4>1.6.12<\/h4>\n\n<ul>\n<li>Fixed: on a site installed in a subdirectory, links between the plugin's own pages led nowhere. The link from My Page to the registration page, and the link to your terms of service, were written from the root of the domain, so a site at example.com\/conference\/ sent people to example.com\/c-registration\/ \u2014 outside the installation, where that page does not exist. Links inside emails were never affected, which is why the fault could go unnoticed. The plugin now asks WordPress for the real address of each page, so the links also follow a page that has been renamed, moved under another page, or a site using plain permalinks.<\/li>\n<li>Fixed: Setup could report that the registration page was missing when it was there and working. The check looked only for the shortcode written without any settings, so a page holding [conf_manager view=\"registration\"] was not recognised, and the screen advised creating another page \u2014 leaving some sites with two registration pages. The check now recognises the same forms of the shortcode that the pages themselves accept. If you were advised to create a second page and did so, you can delete the one you do not use: the plugin always links to whichever page was created first, so the second one is never linked to from anywhere in the plugin, and only the people you send to its address by hand ever see it.<\/li>\n<li>Fixed: when two published pages carried the My Page shortcode, the address used in emails was left to the database to pick, with nothing tying it to the page the rest of the plugin links to. The same page is now chosen every time, and it is the one the rest of the plugin links to.<\/li>\n<\/ul>\n\n<h4>1.6.11<\/h4>\n\n<ul>\n<li>Added: the payment confirmation email now says who it is from. It used to open with \"your payment has been confirmed\" and nothing else, so the participant had only the sender address to go by. The email now opens with the organiser's name, taken from a new field under Conference \u2192 Setup \u2192 notification settings. Leaving that field empty uses your site name, so the sentence appears without any setup; if the site has no name either, the sentence is left out rather than sent half-written.<\/li>\n<li>Added: when the amount received differs from the amount billed, the payment confirmation email says so. It listed the two amounts and left the reader to compare them. It now adds one line under the amount received \u2014 the refund due when too much was received, the shortfall when too little was. A shortfall also carries the bank details for the event, because this plugin has no separate reminder email: without them the participant would be told that money is missing without being told where to send it. Nothing is added when the amount received matches the amount billed, and a payment that has already been refunded in full is not treated as a difference.<\/li>\n<li>Fixed: your site name could reach participants with its punctuation written as HTML. WordPress stores the site name with characters such as &amp; and ' already escaped, and the plugin passed that stored value straight into plain-text email, so a society named \"Yamada &amp; O'Brien\" appeared as \"Yamada &amp; O&#039;Brien\" in the sender name, the reply-to name, the body of every automated email and the passkey registration prompt. The name is now restored to the way it was typed before it is used anywhere outside HTML.<\/li>\n<li>Fixed: a site name containing a comma lost part of the reply-to name. The reply-to header was assembled as text, and WordPress splits that header on commas before reading it, so \"Yamada, Inc.\" arrived as \"Inc.\" \u2014 quoting it made no difference. The name and the address are now handed over separately, and the whole name arrives. The reply-to address itself was never affected.<\/li>\n<\/ul>\n\n<h4>1.6.10<\/h4>\n\n<ul>\n<li>Changed: if the option that holds the encryption key is damaged \u2014 holding something other than text \u2014 the plugin now stops with an explanation instead of a PHP type error. Earlier versions stopped as well, but with a message that said nothing about the cause or the way back. The new message names the option, says that WP-CLI and the admin screens cannot load while the site is in that state (so the usual way of correcting an option does not work), and gives the fastest way back: adding the key to wp-config.php as CONF_MANAGER_ENCRYPTION_KEY. Restoring the option from a database backup is given as the alternative. It also says not to delete the option, because a missing row makes the plugin generate a new key, and anything encrypted with the old one can never be read again.<\/li>\n<li>Note: the rule for choosing the encryption key now lives in one place. The plugin and its activation step each kept their own copy of the same three steps \u2014 the constant in wp-config.php, then the stored option, then generating a new key \u2014 and a change to one copy could have made the two disagree about which key to use. The rule itself is unchanged: the same key is chosen in every case as before, nothing is re-encrypted, and no stored data is touched.<\/li>\n<\/ul>\n\n<h4>1.6.9<\/h4>\n\n<ul>\n<li>Fixed: the registration form showed a fee of \u00a50 for a category and participation type the event does not offer. Leaving a cell in the fee table empty means that combination is not accepted, and the server has refused it since 1.6.x, but the form still read an empty cell as free \u2014 so it showed \u00a50, and a total of \u00a50, and only said no after the registration was sent. The form now says the combination is not offered, and while it is showing that, no total is shown at all and the registration cannot be sent. An event with no fee table at all is still free, and a category priced at zero on purpose is still free; both are unchanged.<\/li>\n<li>Fixed: in English the number of staff on a group registration was printed with the label of the given-name field after it, so a group of one read \"Staff (1First Name)\". The counter and the name field shared one translation entry, which reads correctly in Japanese and wrongly in every other language. They are now separate.<\/li>\n<\/ul>\n\n<h4>1.6.8<\/h4>\n\n<ul>\n<li>Fixed: a group registration quietly left out any staff member the event could not accept. When the fee table had no price set for someone's participation type, that person was dropped while the rest of the group went through, so the registration was confirmed and numbered for fewer people than had been entered, and the amount matched the smaller number. Nothing on screen said anyone had been left out, and the people who were dropped had no registration at all. A group is now checked in full before anything is created: if one person cannot be accepted, the whole registration is refused and nothing is recorded, so it can be corrected and sent again.<\/li>\n<li>Fixed: on the group registration form the participation type could keep a value the event does not offer. The menu showed only what the event offers, but the value behind it stayed on the one chosen by default, which made the fee preview read as free and the registration refused on sending \u2014 with nothing on the form that could be changed to fix it. The form now falls back to a participation type the event offers, both for the representative and for each staff member, and follows changes to the fee category.<\/li>\n<\/ul>\n\n<h4>1.6.7<\/h4>\n\n<ul>\n<li>Fixed: cancelling a registration left its invoice sitting in the unpaid figures. Every place that counts unpaid money looks for payments marked unpaid, and cancelling a registration only changed the registration, so the invoice behind it stayed unpaid for good \u2014 it kept its place in the per-event totals, in the unpaid filter on the payments screen, and in the unpaid count and total on the dashboard, which counts every event at once. Cancelling now withdraws the unpaid invoice with it, and restoring the registration brings the invoice back. Invoices left behind by earlier versions are withdrawn when this version is installed.<\/li>\n<li>Note: a payment that has already been received is never touched by cancelling a registration. Money that has changed hands does not come back on its own, and recording it as a refund would put a refund that never happened on the books. The cancellation says so before you confirm it, and the payment is written to the audit log so it can be settled deliberately.<\/li>\n<li>Fixed: the invoice button on the payments screen appeared for every payment regardless of its state, and the server did not check either, so an invoice could be issued \u2014 and numbered \u2014 for a payment that should never have had one. Both the button and the server now go by the same list of states.<\/li>\n<li>Added: cancelling an event now asks what to do with the registrations behind it. Until this version cancelling an event left every registration and invoice untouched, so the money owed for an event that was no longer happening stayed in the unpaid figures. Cancelling now counts the registrations first and shows the number, and nothing is chosen for you \u2014 the event can be cancelled on its own, or together with its registrations. Registrations already marked as attended are counted separately and are never cancelled, and payments already received are never touched. The registrations taken with the event are written to the audit log, since they are restored one at a time.<\/li>\n<\/ul>\n\n<h4>1.6.6<\/h4>\n\n<ul>\n<li>Fixed: on invoices and receipts the name was printed above the organisation, which left the honorific attached to the organisation rather than to the person \u2014 \"University of X, School of Y \u69d8\" instead of \"University of X, School of Y\" on one line and \"Taro Yamada \u69d8\" on the next. An honorific belongs to the person, and putting one on an organisation also reads oddly next to the form used for addressing an organisation as a whole. The organisation now comes first and the honorific follows the name. Documents are drawn when they are asked for rather than stored, so invoices and receipts issued before this version read the new way as well; their numbers are unchanged, so nothing is re-issued.<\/li>\n<\/ul>\n\n<h4>1.6.5<\/h4>\n\n<ul>\n<li>Fixed: the settlement dialog opened with \"Refunded the participant\" already chosen and the difference already filled in, so a refund could be recorded by opening the dialog and pressing the button, even when no money had changed hands. On one site this left four refunds of the same amount on a single payment, and the list then asked for an amount to be collected that had never been overpaid. The dialog now opens with nothing chosen, and no amount field, method or confirm button appears until you say what the settlement is for. The purposes are grouped into ones where money moved and ones that only correct the record.<\/li>\n<li>Added: a settlement entered by mistake can now be cancelled. Until this version nothing in the plugin could remove one, so a wrong entry stayed on the payment for good and kept distorting the amount shown as received. Cancelling removes it from the history and from every total, keeps the row in the database, and writes all of its details to the audit log. A refund that also cancelled the registration cannot be cancelled this way, because the registration and the payment status went with it.<\/li>\n<li>Fixed: changing the purpose in the settlement dialog left the previous amount in the field. The field means the difference for a refund but the corrected total when correcting the record, so a difference of \u00a51,000 could be submitted as a paid amount of \u00a51,000 and overwrite what had actually been received. The amount is now replaced whenever the purpose changes, the correction shows what is currently recorded next to the field, and it asks for confirmation before overwriting.<\/li>\n<li>Fixed: the difference column was coloured by the sign of the number, which made it the opposite colour to the status beside it \u2014 a payment marked \"Refund due\" in red showed its difference in amber. The four places that show a difference now take their colour from the same table as the status, and the column explains in words which way the difference goes.<\/li>\n<\/ul>\n\n<h4>1.6.4<\/h4>\n\n<ul>\n<li>Fixed: if the record of when audit-log trimming was first set up went missing, the plugin treated the waiting period as already over and would have trimmed on its next nightly run instead of waiting. It now starts the waiting period again, so a missing record can never bring the trimming forward. In normal use the record is written when the plugin loads, so this was unlikely to be reached, but the outcome if it had been was immediate.<\/li>\n<\/ul>\n\n<h4>1.6.3<\/h4>\n\n<ul>\n<li>Trimming of the audit log now waits two weeks before it starts, and says so on this plugin's screens while it waits. Version 1.6.2 began trimming as soon as it was installed, which on a site that updates automatically meant there was no moment at which anyone could object first. Nothing had been removed yet on any site, because the plugin has only been available since June. If you need the records kept for longer, change the retention with a filter before the date shown in the notice.<\/li>\n<li>The nightly trimming now works through more rows in one night, so a site with a long history catches up in days rather than months. Each individual statement is still bounded, which is what keeps it from holding a large transaction open.<\/li>\n<\/ul>\n\n<h4>1.6.2<\/h4>\n\n<ul>\n<li>The audit log is now trimmed automatically. Until this version nothing ever removed entries from it, so on a site that had been running for a while it simply kept growing. Ordinary activity is kept for a year; entries that record sign-in attempts, rate limiting and blocked bots are kept for three years, because those are the ones you would need if you ever had to look into unauthorised access. Both periods can be changed with a filter.<\/li>\n<li>The IP address and browser recorded alongside ordinary activity are now cleared after 90 days, while the entry itself is kept. Who did what, and when, is still recorded; only the personal details are dropped. Entries kept as a security record are left untouched, since removing the address would defeat the purpose of keeping them.<\/li>\n<li>The trimming runs once a day and works through a bounded number of rows at a time, so that the first run on a site with years of history cannot time out.<\/li>\n<\/ul>\n\n<h4>1.6.1<\/h4>\n\n<ul>\n<li>The event editor now tells you, while you are still editing, when a fee category has been left in the table with no price for either participation type. Nobody can register under such a category, and until now the only warning came from a notice after the event was already published. Categories you have removed from the table with the \u00d7 button are not reported, since those are deliberately not offered.<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Added: member types can be shown with your society's short name in front of them, for example \"JXX Society_Regular Member\". Enter the name under Setup. At co-hosted events an attendee who belongs to a different society reads \"Regular Member\" as their own and registers under it; naming the society makes it clear whose category it is. Leave the field blank and member types are shown exactly as before. Only the display changes \u2014 nothing already recorded is altered, so registrations taken before and after the setting read the same way.<\/li>\n<li>Added: the fee category is now shown on My Page under the registration's participation type, and on invoices and receipts under the event name. Until now a participant had no way to see which category they had been registered under.<\/li>\n<li>Fixed: the approval status in the member list looked like a link and was being clicked. It was set in the same colour WordPress uses for links, and because the whole row opens the member for editing, anyone trying to act on the approval landed in the edit dialog instead. Approval is now shown as a plain badge, each row carries an Edit button, and the list says whether administrator approval is on. Clicking the row still opens the member, as before.<\/li>\n<li>Fixed: the event list had a \"Publish\" button sitting in the status column, which made the status itself look like something you could press to change. The four states are now badges, and Publish has moved to the actions at the end of the row alongside Edit. Clicking the row still opens the event.<\/li>\n<li>On narrow screens the buttons in both lists are now tall enough to press with a finger, and the buttons on the participant list are arranged over two rows so the invoice and receipt buttons no longer sit off the right-hand edge.<\/li>\n<li>The payment export used its own list of member type names, written in Japanese, so the same category could read differently there than elsewhere and non-Japanese sites were given Japanese words. It now uses the same names as the rest of the plugin.<\/li>\n<li>The same idea is now called \"fee category\" throughout in Japanese; the participant list previously used a different word for it than the documents did.<\/li>\n<\/ul>\n\n<h4>1.5.1<\/h4>\n\n<ul>\n<li>Fixed: the notice listing events with a category that has no price set could not be dismissed. It had a button, but pressing it did nothing, so the notice stayed on every admin screen until every event was edited.<\/li>\n<li>Fixed: that notice missed events where a category was left in the table with both its prices cleared. Such a category cannot be registered under, exactly as if the row had been removed, but the notice only looked for missing rows.<\/li>\n<li>The notice now checks every published event instead of stopping partway, so an event further down the list is no longer missed and reported as nothing to fix. It is shown on this plugin's screens only, rather than on every admin page.<\/li>\n<li>Fixed: staff could no longer be added to an existing group registration under a fee category that has no price set for it. The record kept for 1.5.0 covered individual registrations only, and group staff are held separately, so those combinations were missed. They are recorded when this version is activated, exactly as individual registrations were.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Security: invoices and receipts are no longer written to a public folder. They were saved under wp-content\/uploads with sequential file names such as INV-202608-00001.pdf, and My Page linked straight to them, so anyone who guessed a number could read a document carrying a participant's name, organisation and the amount they paid. Documents are now drawn when they are asked for and delivered through a check that the person asking is the one they belong to. Files already written are removed when this version is activated; nothing is lost, as the documents are rebuilt from your records. Updating is recommended.<\/li>\n<li>Security: a shared internet connection no longer locks everyone out of self-registration. The limit on requesting a verification code counted every request from one address together and locked that address for an hour, so on an office or campus Wi-Fi the fourth person to sign up stopped everyone behind that connection. The limit is now far higher and any lock lasts ten minutes.<\/li>\n<li>Security: once a rate limit locked an address, the lock renewed itself every time anyone tried again, so the connection never recovered on its own. A lock now expires as intended.<\/li>\n<li>Security: entering the verification code for self-registration no longer shares its limit with WordPress sign-in. One person mistyping their WordPress password could stop self-registration for everyone on the same connection, and the other way round.<\/li>\n<li>Fixed: a member whose record was deleted, or an applicant who was rejected, could never register again with the same email address. Nothing on screen said why \u2014 the form simply reported that the member could not be created. The address and membership number are now released when the record is deleted, and addresses released by earlier deletions are recovered when this version is activated.<\/li>\n<li>Fixed: importing a CSV with \"overwrite existing members\" turned on cleared the phone number, address and membership number of anyone whose row left those columns blank. A blank cell now leaves the existing value alone. To clear a value, edit that member in Member Management.<\/li>\n<li>The CSV template now contains all eleven columns the importer accepts, in the same order as the member export, so a file exported from Member Management can be edited and imported straight back. The three columns that were described but missing (membership number, phone, address) are included.<\/li>\n<li>Added: invoices and receipts can now be issued from Payments and from Participants. Until now they could only be reached from the participant's own My Page or from the payment confirmation email, so there was no way for an organiser to reissue one on request. Pressing the button twice does not create a second document under a new number.<\/li>\n<li>Added: the payment date can now be entered when confirming a payment, on both Payments and Participants. It was previously recorded as the moment you confirmed it, which is the date that appears on invoices and receipts. Enter the date the money reached your account.<\/li>\n<li>Fixed: searching members by keyword did not match the membership number, even though the field is described as searching it, so members could not be found by their number.<\/li>\n<li>Fixed: registering under a fee category or participation type with no fee set for it was accepted as free of charge and confirmed immediately, with no payment record created. Such a registration is now refused. Correcting a registration's fee category already refused this; only new registrations let it through. A fee explicitly set to 0 is unaffected, as is an event with no fee table at all. Combinations that have actually been registered free of charge until now are recorded as an explicit 0 when this version is activated, so existing arrangements keep working.<\/li>\n<li>The fee table on the event screen now says what it means. Tick \"Free\" to charge nothing, instead of typing 0 \u2014 a blank cell no longer means free, it means that participation type is not offered. Rows can be removed with \u00d7, which stops that category being offered at all; members in it are offered the categories that do have a price. A notice lists published events that still have a category with no price set.<\/li>\n<li>Added: fee categories can now be added to the on-site (day-rate) fee table, and their names edited there. Previously the table only allowed deleting, and the only way to put a category back was to copy every advance price over it.<\/li>\n<li>Verification code emails now say where to enter the code, with a link to My Page. They previously gave the code and asked you to enter it on the sign-in page without saying where that was.<\/li>\n<li>A phone number is now required when creating a member from the admin screen. Importing a CSV and editing an existing member are unaffected, so lists without phone numbers still import and members already saved without one can still be edited.<\/li>\n<li>Outgoing mail now gives up after 15 seconds instead of the five minutes the mail library allows by default, so a slow mail server no longer leaves the visitor's screen waiting. Self-registration now reports a failure to send instead of saying the message was sent.<\/li>\n<li>The \"Resend Verification Code\" button now waits a minute between presses, and both screens say that mail can take a few minutes to arrive and to check the spam folder. Each press used part of the sending allowance, so repeated presses could stop the sender, and on a shared connection everyone else.<\/li>\n<\/ul>\n\n<h4>Earlier versions<\/h4>\n\n<ul>\n<li>Changelog entries for 1.4.1 and earlier have been removed to keep this section within the length WordPress.org accepts. They remain in the plugin's version control history.<\/li>\n<\/ul>","raw_excerpt":"Academic conference management plugin \u2014 registration, payment, and document automation for scholarly events.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fr-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/299592","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fr-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fr-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fr-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=299592"}],"author":[{"embeddable":true,"href":"https:\/\/fr-be.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/creativestrategy24"}],"wp:attachment":[{"href":"https:\/\/fr-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=299592"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fr-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=299592"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fr-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=299592"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fr-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=299592"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fr-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=299592"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fr-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=299592"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}