{"id":12,"date":"2026-10-05T20:21:24","date_gmt":"2026-10-06T00:21:24","guid":{"rendered":"https:\/\/demo.doctorx.ca\/booking\/for-developers\/"},"modified":"2026-10-05T20:21:24","modified_gmt":"2026-10-06T00:21:24","slug":"for-developers","status":"publish","type":"page","link":"https:\/\/demo.doctorx.ca\/booking\/for-developers\/","title":{"rendered":"For developers"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">What developers can build on: hooks, shortcodes, blocks, REST routes and WP-CLI commands, taken from each plugin&#8217;s own readme and from what this site has registered.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">DoctorX Booking<\/h2>\n\n\n\n<ul class=\"drx-dev-facts\"><li><strong>Shortcodes:<\/strong> <code>&#91;doctorx_booking&#93;<\/code><\/li><\/ul>\n\n\n\n<h3>Hooks for developers<\/h3>\n<ul>\n<li>Filters: <code>doctorx_booking_types<\/code>, <code>doctorx_booking_prefill<\/code>, <code>doctorx_booking_is_spam<\/code> (return true to drop a booking quietly, for example after asking Akismet), <code>doctorx_booking_shop_email<\/code>, <code>doctorx_booking_customer_email<\/code>, <code>doctorx_booking_update_email<\/code>, <code>doctorx_booking_reminder_email<\/code>, <code>doctorx_booking_shop_reminder_email<\/code>, <code>doctorx_booking_customer_action_email<\/code> (change or stop an email; each gets to, subject, html, text, headers and ics, the booking, and for reminders the minutes before the start; a customer&#039;s reminder always goes to the booking&#039;s address only), <code>doctorx_booking_ics_lines<\/code>, <code>doctorx_booking_crm_lead<\/code>, <code>doctorx_booking_crm_task<\/code> (the origin, external id and &quot;no automatic follow-up&quot; flag are always kept), <code>doctorx_booking_pre_geocode<\/code> (answer location look-ups yourself), <code>doctorx_booking_client_ip<\/code>, <code>doctorx_booking_capability<\/code>, <code>doctorx_booking_tries_per_10_minutes<\/code>.<\/li>\n<li>Actions: <code>doctorx_booking_created<\/code> (after a booking is saved and emailed), <code>doctorx_booking_status_changed<\/code>, <code>doctorx_booking_reminder_sent<\/code>, <code>doctorx_booking_customer_cancelled<\/code> and <code>doctorx_booking_change_requested<\/code>.<\/li>\n<\/ul>\n\n\n","protected":false},"excerpt":{"rendered":"<p>What developers can build on: hooks, shortcodes, blocks, REST routes and WP-CLI commands, taken from each plugin&#8217;s own readme and from what this site has registered. DoctorX Booking Shortcodes: &#91;doctorx_booking&#93; Hooks for developers Filters: doctorx_booking_types, doctorx_booking_prefill, doctorx_booking_is_spam (return true to drop a booking quietly, for example after asking Akismet), doctorx_booking_shop_email, doctorx_booking_customer_email, doctorx_booking_update_email, doctorx_booking_reminder_email, doctorx_booking_shop_reminder_email, doctorx_booking_customer_action_email [&hellip;]<\/p>\n","protected":false},"author":0,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-12","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/demo.doctorx.ca\/booking\/wp-json\/wp\/v2\/pages\/12","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demo.doctorx.ca\/booking\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/demo.doctorx.ca\/booking\/wp-json\/wp\/v2\/types\/page"}],"replies":[{"embeddable":true,"href":"https:\/\/demo.doctorx.ca\/booking\/wp-json\/wp\/v2\/comments?post=12"}],"version-history":[{"count":2,"href":"https:\/\/demo.doctorx.ca\/booking\/wp-json\/wp\/v2\/pages\/12\/revisions"}],"predecessor-version":[{"id":18,"href":"https:\/\/demo.doctorx.ca\/booking\/wp-json\/wp\/v2\/pages\/12\/revisions\/18"}],"wp:attachment":[{"href":"https:\/\/demo.doctorx.ca\/booking\/wp-json\/wp\/v2\/media?parent=12"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}