{"id":347018,"date":"2026-10-05T11:52:18","date_gmt":"2026-10-05T11:52:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/booking-notifications-for-woobookings\/"},"modified":"2026-10-05T11:51:49","modified_gmt":"2026-10-05T11:51:49","slug":"do-it-simply-booking-notifications","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/do-it-simply-booking-notifications\/","author":14391160,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"3.1.3","stable_tag":"3.1.3","tested":"7.0.7","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Do It Simply Booking Notifications","header_author":"Do It Simply Plugins","header_description":"Send daily email lists for Woocommerce Bookings","assets_banners_color":"","last_updated":"2026-10-05 11:51:49","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/www.doitsimply.co.uk","rating":0,"author_block_rating":0,"active_installs":0,"downloads":205,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"3.1.3":{"tag":"3.1.3","author":"baperrou","date":"2026-10-05 11:51:49","revision":3728821}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["3.1.3"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Configuring a send scoped by WooCommerce product category.","2":"Configuring a send scoped by individual product, for smaller catalogues.","3":"An example booking notification email as received by staff.","4":"The booking notification email, showing the WooCommerce-styled header and full booking details table."}},"plugin_section":[],"plugin_tags":[7101,267,4906,286,145077],"plugin_category":[40,41,45],"plugin_contributors":[284484],"plugin_business_model":[],"class_list":["post-347018","plugin","type-plugin","status-publish","hentry","plugin_tags-bookings","plugin_tags-email","plugin_tags-notifications","plugin_tags-woocommerce","plugin_tags-woocommerce-bookings","plugin_category-calendar-and-events","plugin_category-communication","plugin_category-ecommerce","plugin_contributors-baperrou","plugin_committers-baperrou"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/do-it-simply-booking-notifications.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Do It Simply Booking Notifications for WooCommerce Bookings sends scheduled email lists of upcoming bookings to whoever needs to see them \u2014 guides, coaches, or office staff \u2014 without anyone needing to log in and check WooCommerce manually.<\/p>\n\n<p><strong>Requires WooCommerce and WooCommerce Bookings to be active.<\/strong> The plugin has no function without both.<\/p>\n\n<p>Each notification (\"send\") is configured from a settings screen and can have its own:<\/p>\n\n<ul>\n<li>Internal name (for your own reference \u2014 not shown to recipients)<\/li>\n<li>Timing offset (e.g. tomorrow, in 2 days, in 10 days)<\/li>\n<li>Optional day-of-week restriction (e.g. only run this one on Fridays)<\/li>\n<li>Weekend mode \u2014 a single Friday schedule that automatically covers both Saturday and Sunday bookings in one run<\/li>\n<li>Scope \u2014 either a set of WooCommerce product categories, or an explicit list of individual products (useful on smaller sites with few bookable products)<\/li>\n<li>Recipient list<\/li>\n<\/ul>\n\n<p>Sends run automatically once daily via WP-Cron. For sites where WP-Cron's page-visit-dependent timing isn't reliable enough (low traffic, full-page caching), the settings screen documents a real server-cron fallback using WP-CLI.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/do-it-simply-booking-notifications<\/code> directory, or install the plugin through the WordPress Plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Ensure WooCommerce and WooCommerce Bookings are both installed and active \u2014 this plugin has no function without them.<\/li>\n<li>Go to the \"Booking Notifications\" menu item in wp-admin to configure your first send: give it an internal name, choose a timing offset, select the product categories or products it should cover, and enter recipient email addresses.<\/li>\n<li>Save. Sends run automatically once daily via WP-Cron. For sites with low traffic or aggressive page caching, see the reliability note on the settings screen for a server-cron alternative.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20without%20woocommerce%20bookings%3F\"><h3>Does this work without WooCommerce Bookings?<\/h3><\/dt>\n<dd><p>No. This plugin only sends notifications about WooCommerce Bookings \u2014 it has no function on a site without WooCommerce and WooCommerce Bookings both active.<\/p><\/dd>\n<dt id=\"will%20my%20scheduled%20emails%20go%20out%20at%20exactly%20the%20time%20i%20set%3F\"><h3>Will my scheduled emails go out at exactly the time I set?<\/h3><\/dt>\n<dd><p>By default, sends run once daily via WP-Cron, which fires on the next site visit after the scheduled time \u2014 usually within minutes on an active site, but potentially later on very low-traffic sites or ones behind aggressive page caching. See the reliability note on the settings screen for a server-cron alternative that guarantees exact timing.<\/p><\/dd>\n<dt id=\"can%20i%20send%20weekend%20booking%20lists%20without%20setting%20up%20two%20separate%20schedules%3F\"><h3>Can I send weekend booking lists without setting up two separate schedules?<\/h3><\/dt>\n<dd><p>Yes \u2014 select \"Weekend \u2014 fires Friday, sends Sat + Sun\" as the day restriction. A single schedule will automatically send Saturday's bookings and Sunday's bookings in one Friday cron run.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>3.1.3<\/h4>\n\n<ul>\n<li>Initial public release<\/li>\n<li>Fixed: booking query used LIKE comparison for product ID matching, causing bookings \nfrom products whose IDs contain the target ID as a substring to be incorrectly \nincluded in results (e.g. product ID 20 matching IDs 200, 1120 etc).\nChanged to exact numeric match (=) for single product queries.<\/li>\n<\/ul>\n\n<h4>3.1.2<\/h4>\n\n<ul>\n<li>Fixed: inline JavaScript moved to an enqueued external file (assets\/admin.js) per WP plugin review requirements.<\/li>\n<\/ul>\n\n<h4>3.1.1<\/h4>\n\n<ul>\n<li>Fixed: removed unnecessary direct inclusion of wp-admin\/includes\/plugin.php flagged by WP plugin review.<\/li>\n<li>Fixed: recipients field now sanitized per-address using sanitize_email() rather than as a plain text string.<\/li>\n<\/ul>\n\n<h4>3.1.0<\/h4>\n\n<ul>\n<li>Added \"Weekend\" day restriction option \u2014 a single Friday schedule now covers both Saturday (+1 day) and Sunday (+2 days) bookings in one cron run, removing the need for two separate weekend schedules.<\/li>\n<li>Fixed: product category scope now correctly includes child categories (e.g. selecting a parent coaching category finds products in all sub-categories).<\/li>\n<li>Fixed: product type filter removed from category scope query \u2014 previously caused bookable products to be silently missed if their product type slug was registered differently by WooCommerce Bookings.<\/li>\n<li>Added: error logging throughout dis_be_run_sends() for easier diagnosis of missed or unexpected sends.<\/li>\n<\/ul>\n\n<h4>3.0.0<\/h4>\n\n<ul>\n<li>Major rework: replaced hardcoded per-site cron scripts and code-level email timing with a settings screen inside wp-admin.<\/li>\n<li>Added repeating \"sends\" \u2014 add, edit, or remove any number of scheduled notifications without editing code.<\/li>\n<li>Added support for scoping a send by WooCommerce product category or by an explicit product list.<\/li>\n<li>Added optional day-of-week restriction per send.<\/li>\n<li>Added WP-Cron based daily scheduling, registered on plugin activation and cleared on deactivation.<\/li>\n<li>Added an in-admin reliability note documenting the real-cron\/WP-CLI fallback for low-traffic or heavily cached sites.<\/li>\n<li>Renamed internal functions to remove site-specific naming (e.g. <code>create_wye_booking_email()<\/code> \u2192 <code>dis_be_build_and_send_email()<\/code>), in preparation for reuse across sites.<\/li>\n<li>Fixed: email subject lines showing raw HTML entities (e.g. <code>&amp;#8217;<\/code>) instead of decoded characters.<\/li>\n<li>Removed dependency on external, per-site cron script files (<code>all-bookings-list-email.php<\/code> and variants) \u2014 these are retired in favour of the built-in scheduler.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Previous version. Email timing, recipients, and product\/category scope were hardcoded in per-site cron script files, requiring a code change for any new send, schedule, or scope adjustment.<\/li>\n<\/ul>","raw_excerpt":"Send scheduled email lists of upcoming WooCommerce Bookings to staff \u2014 fully configurable, no code editing required.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/347018","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=347018"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/baperrou"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=347018"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=347018"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=347018"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=347018"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=347018"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=347018"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}