Description
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.
You describe what you offer as services, who delivers them as staff, and where as locations. 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.
What you can set up:
- Services with their own duration, price, buffer time and assigned staff
- Staff with their own working hours and days off, overriding the site-wide schedule
- Locations, so the same service can be offered in several places
- Site-wide opening hours, an optional break, and slot length
- How far ahead a booking must be made, and how far ahead it may be made
- How many bookings one slot accepts
- Whether guests can book, or an account is required
- Whether bookings confirm themselves or wait for you
- Whether customers may cancel, and until how long before the appointment
- Reminder emails, a chosen number of hours before the appointment
- What the three things are called on your site — “Service”, “Staff” and “Location” are only the defaults
Three shortcodes place it on the front end:
[aumreserva_services]— the list of what you offer, each with its own booking button[aumreserva_booking_button]— a single booking button, for a page you built yourself[aumreserva_my_bookings]— a logged-in visitor’s own bookings, with cancelling
WooCommerce is optional. 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.
Email templates can be overridden from your theme, in an aumreserva/emails/ folder.
More from AumCreate
How availability is worked out from your services, practitioners and opening hours: aumcreate.com/plugins/aumreserva
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: aumcreate.com/plugins
Installation
- Upload the
aumreservafolder to/wp-content/plugins/, or install the zip from Plugins > Add New - Activate the plugin through the Plugins screen
- Visit Settings > Permalinks and save, so the service and staff URLs work
- Open AumReserva > Settings and set your opening hours, slot length and currency
- Add your first service under AumReserva > Services, and your staff under AumReserva > Staff
- Put
[aumreserva_services]on a page
FAQ
-
Does it need WooCommerce?
-
No. WooCommerce is only used when you ask for a deposit on a booking — then AumReserva creates the order for that deposit. Everything else works without it.
-
Can one member of staff work different hours from the rest?
-
Yes. Each staff member can carry their own weekly hours and days off, which replace the site-wide schedule for them.
-
Where do bookings go?
-
Into their own database table, and onto the AumReserva > Bookings screen. They are not posts, so they never appear in your content lists or feeds.
-
Are reminder emails sent even if nobody visits the site?
-
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
wp-cron.php. -
What happens to my bookings if I delete the plugin?
-
Deleting it drops the bookings table, the plugin’s options, its staff role and its user meta. Deactivating it leaves everything in place.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“AumReserva” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “AumReserva” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
The full history, including older releases, is in changelog.txt inside the plugin folder.
1.6.4
- Fixed: a staff member’s page listed none of the services assigned to them. The list came from
a meta query asking for rows LIKE"12", which is how the string “12” is serialized, while
the plugin stores the assignment as an array of integers — so the query matched nothing on any
site. The membership test now runs in PHP against the unserialized value. - Fixed: six union return types (
int|false). That is PHP 8.0 syntax, and this plugin supports
PHP 7.4, where it is a parse error, so on 7.4 those files never compiled and the plugin could
not activate. The declarations are removed and the return types are documented with@return
tags instead. The same family was addressed in 1.6.3 formatchexpressions; the check that
found those cases listed individual constructs rather than the whole feature set, so these were
not reported. That check now runs PHPCompatibility against the version in the plugin header. - Changed: the meta-field stylesheet and the two admin scripts are no longer printed inline.
They are enqueued fromadmin/css/aumreserva-meta-fields.css,admin/js/aumreserva-meta-fields.js
andadmin/js/aumreserva-settings.js, on the screens that use them only. The nonces and
translated strings they need arrive throughwp_localize_script(). - Changed: the three JavaScript configuration objects are renamed
aumreservaAdmin,
aumreservaCalendar andaumreservaConfig. The previous names began with a three-character
segment; wordpress.org asks for at least four. - Changed: the REST namespace is
aumreserva/v1, for the same reason. Routes that were under
/wp-json/arb/v1/ are now under/wp-json/aumreserva/v1/. - Changed:
fputcsv()in the booking export is called with an explicit$escapeargument. The
default changes in PHP 8.4, and an empty string is the RFC 4180 behaviour. - Changed: the three front-end templates and
uninstall.phpprefix every variable they define.
WordPress includes a template returned throughtemplate_includeat global scope, so each of
those assignments was a global — forty-four of them. Four more overwrote variables WordPress
itself uses:$term,$catand$status. Plugin Check reports the unprefixed names; it does
not runWordPress.WP.GlobalVariablesOverride, so the four overwrites were found by running
that sniff over the plugin directly.
1.6.3
- Fixed: two match expressions. That is PHP 8.0 syntax, and this plugin supports PHP 7.4, where
it is a parse error — one of the two sits in the staff meta-box save path and the other in the
settings screen, so on 7.4 the file never compiled and the plugin could not load. Replaced with
equivalent strict comparisons. - Changed: removed a three-letter accessor function from the global namespace. WordPress.org asks
that anything declared globally carry the plugin prefix, with at least four characters in its
first segment. Nothing called it but the bootstrap line below its own declaration, so it is
gone rather than renamed. Code that needs the instance callsAumReserva_Plugin::instance(). - Changed: the source comments are now in one language throughout, and the note about re-skinning
the booking UI describes the mechanism —--arb-*custom properties with fallbacks, which any
later stylesheet can set — without implying anything else has to be installed. - Changed: the four reads of staff-link form fields carry a per-line sniff exemption naming the
caller that verifies their nonce. The verification was always there; a per-file linter cannot
see across the call.
1.6.2
- Added: a “Manual” link on the Plugins screen, pointing at the manual in the administrator’s own
language (English, Simplified Chinese, Traditional Chinese, Japanese). Until now this plugin
shipped only inside a template kit, where the manual arrived through that channel; installed
from the directory there was nothing in the admin saying where to find it. - Changed: the changelog in this file now carries only recent releases. wordpress.org truncates
that section at 5000 bytes without saying so. All of it is kept inchangelog.txt.
1.6.1
-
The admin page slugs, script and style handles and the WooCommerce account endpoint still used
the three-characterarb-form, which 1.6.0 changed only for the underscore spellings. They are
nowaumreserva-:admin pages page=arb-booking -> page=aumreserva-booking
page=arb-bookings-list -> page=aumreserva-bookings-list
page=arb-settings -> page=aumreserva-settings
page=arb-my-bookings -> page=aumreserva-my-bookings
handles arb-admin arb-calendar arb-public -> aumreserva-…
account tab /my-account/arb-bookings/ -> /my-account/aumreserva-bookings/A bookmarked admin URL or a link to the account tab needs the new address. CSS class names are
unchanged apart from two that doubled as a handle or a page slug (arb-calendarand
arb-my-bookings); their stylesheet, markup and script moved together.






