{"id":403366,"date":"2026-11-09T14:32:32","date_gmt":"2026-11-09T14:32:32","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/aumreserva\/"},"modified":"2026-11-09T14:32:17","modified_gmt":"2026-11-09T14:32:17","slug":"aumreserva","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/aumreserva\/","author":23467794,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.6.4","stable_tag":"1.6.4","tested":"7.1.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"AumReserva","header_author":"AumCreate","header_description":"A professional service appointment booking system for WordPress & WooCommerce.","assets_banners_color":"361c11","last_updated":"2026-11-09 14:32:17","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/aumcreate.com\/plugins\/aum-reserva-booking","header_author_uri":"https:\/\/aumcreate.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":33,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.6.4":{"tag":"1.6.4","author":"aumcreate","date":"2026-11-09 14:32:17","revision":3792650}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3792646,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3792646,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3792646,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3792646,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.6.4"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3792646,"resolution":"1","location":"assets","locale":"","width":1440,"height":1100},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3792646,"resolution":"2","location":"assets","locale":"","width":1440,"height":1100},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3792646,"resolution":"3","location":"assets","locale":"","width":1440,"height":1100},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3792646,"resolution":"4","location":"assets","locale":"","width":1440,"height":1100},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3792646,"resolution":"5","location":"assets","locale":"","width":1440,"height":1100},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3792646,"resolution":"6","location":"assets","locale":"","width":1440,"height":1100}},"screenshots":[]},"plugin_section":[],"plugin_tags":[8132,269,416,1475,268],"plugin_category":[40],"plugin_contributors":[278530],"plugin_business_model":[],"class_list":["post-403366","plugin","type-plugin","status-publish","hentry","plugin_tags-appointments","plugin_tags-booking","plugin_tags-calendar","plugin_tags-reservations","plugin_tags-scheduling","plugin_category-calendar-and-events","plugin_contributors-aumcreate","plugin_committers-aumcreate"],"banners":{"banner":"https:\/\/ps.w.org\/aumreserva\/assets\/banner-772x250.png?rev=3792646","banner_2x":"https:\/\/ps.w.org\/aumreserva\/assets\/banner-1544x500.png?rev=3792646","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/aumreserva\/assets\/icon-128x128.png?rev=3792646","icon_2x":"https:\/\/ps.w.org\/aumreserva\/assets\/icon-256x256.png?rev=3792646","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/aumreserva\/assets\/screenshot-1.png?rev=3792646","caption":""},{"src":"https:\/\/ps.w.org\/aumreserva\/assets\/screenshot-2.png?rev=3792646","caption":""},{"src":"https:\/\/ps.w.org\/aumreserva\/assets\/screenshot-3.png?rev=3792646","caption":""},{"src":"https:\/\/ps.w.org\/aumreserva\/assets\/screenshot-4.png?rev=3792646","caption":""},{"src":"https:\/\/ps.w.org\/aumreserva\/assets\/screenshot-5.png?rev=3792646","caption":""},{"src":"https:\/\/ps.w.org\/aumreserva\/assets\/screenshot-6.png?rev=3792646","caption":""}],"raw_content":"<!--section=description-->\n<p>AumReserva turns a WordPress site into a booking system for anything that is booked as \"a person, at a time\": lessons, treatments, consultations, viewings, repairs.<\/p>\n\n<p>You describe what you offer as <strong>services<\/strong>, who delivers them as <strong>staff<\/strong>, and where as <strong>locations<\/strong>. Visitors pick a service, a member of staff, a day and a free slot, and leave their details. The booking lands in a table in the admin, and everyone who needs to know gets an email.<\/p>\n\n<p>What you can set up:<\/p>\n\n<ul>\n<li>Services with their own duration, price, buffer time and assigned staff<\/li>\n<li>Staff with their own working hours and days off, overriding the site-wide schedule<\/li>\n<li>Locations, so the same service can be offered in several places<\/li>\n<li>Site-wide opening hours, an optional break, and slot length<\/li>\n<li>How far ahead a booking must be made, and how far ahead it may be made<\/li>\n<li>How many bookings one slot accepts<\/li>\n<li>Whether guests can book, or an account is required<\/li>\n<li>Whether bookings confirm themselves or wait for you<\/li>\n<li>Whether customers may cancel, and until how long before the appointment<\/li>\n<li>Reminder emails, a chosen number of hours before the appointment<\/li>\n<li>What the three things are called on your site \u2014 \"Service\", \"Staff\" and \"Location\" are only the defaults<\/li>\n<\/ul>\n\n<p>Three shortcodes place it on the front end:<\/p>\n\n<ul>\n<li><code>[aumreserva_services]<\/code> \u2014 the list of what you offer, each with its own booking button<\/li>\n<li><code>[aumreserva_booking_button]<\/code> \u2014 a single booking button, for a page you built yourself<\/li>\n<li><code>[aumreserva_my_bookings]<\/code> \u2014 a logged-in visitor's own bookings, with cancelling<\/li>\n<\/ul>\n\n<p><strong>WooCommerce is optional.<\/strong> With it active, a booking can require a deposit and AumReserva creates the order for it. Without it, everything else works unchanged and no payment is asked for.<\/p>\n\n<p>Email templates can be overridden from your theme, in an <code>aumreserva\/emails\/<\/code> folder.<\/p>\n\n<h4>More from AumCreate<\/h4>\n\n<p>How availability is worked out from your services, practitioners and opening hours: <a href=\"https:\/\/aumcreate.com\/plugins\/aumreserva\">aumcreate.com\/plugins\/aumreserva<\/a><\/p>\n\n<p>Also free from AumCreate: llms.txt and schema for AI search, AI crawler control, AI translation for WordPress, digital-goods checkout for WooCommerce, and a hosted chat widget: <a href=\"https:\/\/aumcreate.com\/plugins\">aumcreate.com\/plugins<\/a><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>aumreserva<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the zip from Plugins &gt; Add New<\/li>\n<li>Activate the plugin through the Plugins screen<\/li>\n<li>Visit Settings &gt; Permalinks and save, so the service and staff URLs work<\/li>\n<li>Open AumReserva &gt; Settings and set your opening hours, slot length and currency<\/li>\n<li>Add your first service under AumReserva &gt; Services, and your staff under AumReserva &gt; Staff<\/li>\n<li>Put <code>[aumreserva_services]<\/code> on a page<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20need%20woocommerce%3F\"><h3>Does it need WooCommerce?<\/h3><\/dt>\n<dd><p>No. WooCommerce is only used when you ask for a deposit on a booking \u2014 then AumReserva creates the order for that deposit. Everything else works without it.<\/p><\/dd>\n<dt id=\"can%20one%20member%20of%20staff%20work%20different%20hours%20from%20the%20rest%3F\"><h3>Can one member of staff work different hours from the rest?<\/h3><\/dt>\n<dd><p>Yes. Each staff member can carry their own weekly hours and days off, which replace the site-wide schedule for them.<\/p><\/dd>\n<dt id=\"where%20do%20bookings%20go%3F\"><h3>Where do bookings go?<\/h3><\/dt>\n<dd><p>Into their own database table, and onto the AumReserva &gt; Bookings screen. They are not posts, so they never appear in your content lists or feeds.<\/p><\/dd>\n<dt id=\"are%20reminder%20emails%20sent%20even%20if%20nobody%20visits%20the%20site%3F\"><h3>Are reminder emails sent even if nobody visits the site?<\/h3><\/dt>\n<dd><p>They are sent by WordPress's scheduled tasks, which run on site traffic. On a quiet site you may want a real system cron calling <code>wp-cron.php<\/code>.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20bookings%20if%20i%20delete%20the%20plugin%3F\"><h3>What happens to my bookings if I delete the plugin?<\/h3><\/dt>\n<dd><p>Deleting it drops the bookings table, the plugin's options, its staff role and its user meta. Deactivating it leaves everything in place.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<p>The full history, including older releases, is in <code>changelog.txt<\/code> inside the plugin folder.<\/p>\n\n<h4>1.6.4<\/h4>\n\n<ul>\n<li>Fixed: a staff member's page listed none of the services assigned to them. The list came from\na meta query asking for rows LIKE <code>\"12\"<\/code>, which is how the <em>string<\/em> \"12\" is serialized, while\nthe plugin stores the assignment as an array of integers \u2014 so the query matched nothing on any\nsite. The membership test now runs in PHP against the unserialized value.<\/li>\n<li>Fixed: six union return types (<code>int|false<\/code>). That is PHP 8.0 syntax, and this plugin supports\nPHP 7.4, where it is a parse error, so on 7.4 those files never compiled and the plugin could\nnot activate. The declarations are removed and the return types are documented with <code>@return<\/code>\ntags instead. The same family was addressed in 1.6.3 for <code>match<\/code> expressions; the check that\nfound those cases listed individual constructs rather than the whole feature set, so these were\nnot reported. That check now runs PHPCompatibility against the version in the plugin header.<\/li>\n<li>Changed: the meta-field stylesheet and the two admin scripts are no longer printed inline.\nThey are enqueued from <code>admin\/css\/aumreserva-meta-fields.css<\/code>, <code>admin\/js\/aumreserva-meta-fields.js<\/code>\nand <code>admin\/js\/aumreserva-settings.js<\/code>, on the screens that use them only. The nonces and\ntranslated strings they need arrive through <code>wp_localize_script()<\/code>.<\/li>\n<li>Changed: the three JavaScript configuration objects are renamed <code>aumreservaAdmin<\/code>,\n  aumreservaCalendar and <code>aumreservaConfig<\/code>. The previous names began with a three-character\nsegment; wordpress.org asks for at least four.<\/li>\n<li>Changed: the REST namespace is <code>aumreserva\/v1<\/code>, for the same reason. Routes that were under\n  \/wp-json\/arb\/v1\/ are now under <code>\/wp-json\/aumreserva\/v1\/<\/code>.<\/li>\n<li>Changed: <code>fputcsv()<\/code> in the booking export is called with an explicit <code>$escape<\/code> argument. The\ndefault changes in PHP 8.4, and an empty string is the RFC 4180 behaviour.<\/li>\n<li>Changed: the three front-end templates and <code>uninstall.php<\/code> prefix every variable they define.\nWordPress includes a template returned through <code>template_include<\/code> at global scope, so each of\nthose assignments was a global \u2014 forty-four of them. Four more overwrote variables WordPress\nitself uses: <code>$term<\/code>, <code>$cat<\/code> and <code>$status<\/code>. Plugin Check reports the unprefixed names; it does\nnot run <code>WordPress.WP.GlobalVariablesOverride<\/code>, so the four overwrites were found by running\nthat sniff over the plugin directly.<\/li>\n<\/ul>\n\n<h4>1.6.3<\/h4>\n\n<ul>\n<li>Fixed: two match expressions. That is PHP 8.0 syntax, and this plugin supports PHP 7.4, where\nit is a parse error \u2014 one of the two sits in the staff meta-box save path and the other in the\nsettings screen, so on 7.4 the file never compiled and the plugin could not load. Replaced with\nequivalent strict comparisons.<\/li>\n<li>Changed: removed a three-letter accessor function from the global namespace. WordPress.org asks\nthat anything declared globally carry the plugin prefix, with at least four characters in its\nfirst segment. Nothing called it but the bootstrap line below its own declaration, so it is\ngone rather than renamed. Code that needs the instance calls <code>AumReserva_Plugin::instance()<\/code>.<\/li>\n<li>Changed: the source comments are now in one language throughout, and the note about re-skinning\nthe booking UI describes the mechanism \u2014 <code>--arb-*<\/code> custom properties with fallbacks, which any\nlater stylesheet can set \u2014 without implying anything else has to be installed.<\/li>\n<li>Changed: the four reads of staff-link form fields carry a per-line sniff exemption naming the\ncaller that verifies their nonce. The verification was always there; a per-file linter cannot\nsee across the call.<\/li>\n<\/ul>\n\n<h4>1.6.2<\/h4>\n\n<ul>\n<li>Added: a \"Manual\" link on the Plugins screen, pointing at the manual in the administrator's own\nlanguage (English, Simplified Chinese, Traditional Chinese, Japanese). Until now this plugin\nshipped only inside a template kit, where the manual arrived through that channel; installed\nfrom the directory there was nothing in the admin saying where to find it.<\/li>\n<li>Changed: the changelog in this file now carries only recent releases. wordpress.org truncates\nthat section at 5000 bytes without saying so. All of it is kept in <code>changelog.txt<\/code>.<\/li>\n<\/ul>\n\n<h4>1.6.1<\/h4>\n\n<ul>\n<li><p>The admin page slugs, script and style handles and the WooCommerce account endpoint still used\nthe three-character <code>arb-<\/code> form, which 1.6.0 changed only for the underscore spellings. They are\nnow <code>aumreserva-<\/code>:<\/p>\n\n<p>admin pages    page=arb-booking        -&gt; page=aumreserva-booking\n                 page=arb-bookings-list  -&gt; page=aumreserva-bookings-list\n                 page=arb-settings       -&gt; page=aumreserva-settings\n                 page=arb-my-bookings    -&gt; page=aumreserva-my-bookings\n  handles        arb-admin arb-calendar arb-public -&gt; aumreserva-\u2026\n  account tab    \/my-account\/arb-bookings\/ -&gt; \/my-account\/aumreserva-bookings\/<\/p>\n\n<p>A bookmarked admin URL or a link to the account tab needs the new address. CSS class names are\nunchanged apart from two that doubled as a handle or a page slug (<code>arb-calendar<\/code> and\n  arb-my-bookings); their stylesheet, markup and script moved together.<\/p><\/li>\n<\/ul>","raw_excerpt":"Appointment booking for services and staff: availability rules, time slots, email notifications and optional WooCommerce deposits.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/403366","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=403366"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/aumcreate"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=403366"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=403366"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=403366"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=403366"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=403366"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=403366"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}