Bookings: Action and Filter reference

Actions and filters listed on this page are specific to WooCommerce Bookings.

Note: This is a Developer level doc. If you are unfamiliar with code/templates and resolving potential conflicts, select a WooExpert or Developer for assistance. We are unable to provide support for customizations under our Support Policy.

Actions Available For Bookings

↑ Back to top

The following table includes actions that you can use with WooCommerce Bookings.

ActionArgsDescription
wc_bookings_updated Fires after a new plugin version is installed.
woocommerce_admin_booking_data_after_booking_detailsInt: Booking IDFires after customer select box when viewing/editing a booking in admin.
woocommerce_admin_process_booking_objectObj: Booking objectFires after data is processed when saving booking through admin, but before data is saved to the database.
woocommerce_after_add_to_cart_button Fires after the add-to-cart button in the single product add-to-cart template.
woocommerce_after_add_to_cart_form Fires after the booking form in the single product add-to-cart template.
woocommerce_before_add_to_cart_button Fires before the add-to-cart button in the single product add-to-cart template.
woocommerce_before_booking_form Fires before the booking form in the single product add-to-cart template.
woocommerce_before_booking_object_saveObj: Booking object, Obj: Data storeFires just before saving to the database, allows for adjusting object properties before save.
woocommerce_booking_{ status }Int: Booking ID, Obj: Booking objectFires when a booking is changed to { status }.
woocommerce_booking_{ status_from }_to_{ status_to }Int: Booking ID, Obj: Booking objectFires when a booking is changed from { status_from } to { status_to }.
woocommerce_booking_process_metaInt: Booking IDFires after data is processed when saving booking through admin, and after data has been saved to the database.
woocommerce_bookings_after_booking_base_costInt: Product IDFires after base cost of product in admin.
woocommerce_bookings_after_booking_block_costInt: Product IDFires after block cost of product in admin.
woocommerce_bookings_after_booking_pricing_base_costArr: Pricing for product, Int: Product IDFires after base cost modifier in pricing rules for product in admin. Remains in table cell.
woocommerce_bookings_after_booking_pricing_costArr: Pricing for product, Int: Product IDFires after block cost modifier in pricing rules for product in admin. Remains in table cell.
woocommerce_bookings_after_bookings_pricingInt: Product IDFired after pricing rules are rendered for product in admin. Outside of table body.
woocommerce_bookings_after_create_booking_page Fires after options, but before Next button when creating a booking through admin. Remains in table.
woocommerce_bookings_after_display_costInt: Product IDFires after display cost of product in admin.
woocommerce_bookings_after_person_block_costInt: Person type IDFires after the person type block cost is output in admin. Remains in table cell.
woocommerce_bookings_after_person_block_cost_columnInt: Person type IDFires after the person type costs are output in admin. Remains in table row.
woocommerce_bookings_after_person_costInt: Person type IDFires after the person type base cost is output in admin. Remains in table cell.
woocommerce_bookings_after_person_max_columnInt: Person type IDFires after the person type min/max fields in admin. Remains in table row.
woocommerce_bookings_after_resource_block_costInt: Resource ID, Int: Product IDFires after product’s resource block cost is output in admin. Remains in table cell.
woocommerce_bookings_after_resource_costInt: Resource ID, Int: Product IDFires after product’s resource base cost is output in admin. Remains in table cell.
woocommerce_bookings_before_delete_global_availability Fires before a global availability entry is deleted.
woocommerce_bookings_cancelled_bookingInt: Booking IDFires after a booking is cancelled.
woocommerce_bookings_create_booking_page_add_order_itemInt: Order IDFires after order is created when manually creating a booking with an order through the admin.
woocommerce_bookings_pricing_fieldsArr: Pricing for productFired after pricing rules are rendered for product in admin. Remains in table body.
woocommerce_delete_bookingInt: Booking IDFires when a booking is deleted/removed from trash.
woocommerce_new_bookingInt: Booking IDFires when a booking is created and added to the database. Such as when a booking is added to cart.
woocommerce_trash_bookingInt: Booking IDFires when a booking is moved to the trash.
woocommerce_bookings_update_google_clientGoogle_Client: Google API Client ObjectFires before any Google API request is made so a custom client ID and secret can be set.

Filters Available For Bookings

↑ Back to top

The following table includes filters that you can use with WooCommerce Bookings.

FilterPassedArgsDescription
woocommerce_bookings_calculated_booking_costInt: Booking CostObj: Product, Arr: Posted dataAllows booking cost modification before return from calculate_booking_cost(), which returns the calculated cost of a booking.
booking_form_fieldsArr: Field Arrays Can be used to edit the fields (duration, persons, resources, date) that are used on the booking form.
booking_form_paramsArr: Parameter strings (translated) Strings that are used for JavaScript notices to the user when using the calendar.
bookings_cancel_booking_urlStr: URL to cancel Allows modification of the cancellation URL for a customer to cancel their booking.
get_booking_products_argsArr: get_posts args Used in get_bookable_product_ids which uses get_posts to query all bookable products.
get_booking_resources_argsArr: get_posts args Used in get_bookable_product_resource_ids which uses get_posts to query all bookable resources.
wc_bookings_calendar_default_to_current_dateBool: true By default the calendar will default to ‘today’. If false is returned, calendar will default to first available booking date.
wc_bookings_get_time_slots_htmlStr: HTML time blocksArr: Available blocks, Arr: BlocksFilters the returned HTML of `wc_bookings_get_time_slots_html`.
wc_bookings_summary_list_dateStr: Booking dateInt: Starting timestamp, Int: Ending timestampCan be used to format the date in the bookings summary for orders and emails.
woocommerce_admin_bookable_resource_actionsArr: ActionsObj: ResourceActions shown in the admin list view.
woocommerce_admin_booking_actionsArr: ActionsObj: BookingActions shown in admin list view.
woocommerce_booking_cancelled_noticeStr: “Your booking was cancelled.” (translated)Str: Notice TypeMessage is displayed when user cancels their booking through My Account.
woocommerce_booking_form_get_posted_dataArr: Mixed dataObj: Product, Int: Duration LengthAll of the data posted to the Booking Form in a processed clean array.
woocommerce_booking_get_availability_rulesArr: Array of availability rulesInt: Resource rules apply to, Obj: Bookable productThe availability rules configured for a particular resource ID, if resource is 0, then for the product itself.
woocommerce_booking_has_statusBoolObj: Booking, Str: StatusUsed when checking if a booking has a set status.
woocommerce_booking_is_booked_on_dayBoolObj: Booking, Int: Start timestamp, Int: End timestampFilter the booking object’s is_booked_on_day method return result.
woocommerce_booking_json_search_order_numberStr: Search term The order number being searched for when editing a booking.
woocommerce_booking_requires_confirmationBoolObj: Bookable productWhether the bookable product is set to require confirmation or not.
woocommerce_booking_single_add_to_cart_textStr: “Book Now” (translated) Allows updates to add to cart button.
woocommerce_booking_single_check_availability_textStr: “Check Availability” (translated) Allows updates to add to cart button when booking requires confirmation.
woocommerce_booking_user_can_cancelBoolObj: Bookable productWhether the bookable product allows customer cancellations or not.
woocommerce_bookings_account_endpointStr: “bookings” Default endpoint for bookings in the My Account page.
woocommerce_bookings_account_tablesArr: Arrays of user’s bookings Tabular data being passed to the `myaccount/bookings.php` template to display a user’s bookings.
woocommerce_bookings_booked_day_blocksArr: Array of booked blocksObj: Bookable productArray of days that are fully or partially booked being returned to the calendar for display.
woocommerce_bookings_booking_cost_stringStr: “Booking cost” (translated)Obj: ProductText shown before the price when customer chooses date/time on the calendar.
woocommerce_bookings_data_labelsArr: Array of strings (translated) Labels used for bookings in places such as the cart.
woocommerce_bookings_date_formatStr: Date format from wc_date_format() Allows to change date format for everything Bookings.
woocommerce_bookings_date_picker_end_labelStr: “End” (translated) End label on a product’s calendar.
woocommerce_bookings_date_picker_start_labelStr: “Start” (translated) Start label on a product’s calendar.
woocommerce_bookings_email_actionsArr: Actions Array of actions used for triggering emails.
woocommerce_bookings_emails_icsArr: Email IDs Email IDs to attach ics (calendar) files to.
woocommerce_bookings_for_user_statusesArr: Array of statuses Array of statuses as `status => Status Name` (translated), used for statuses for bookings that are displayed in My Account > Bookings.
woocommerce_bookings_fully_booked_statusesArr: Array of statuses Array of statuses as `status => Status Name` (translated), used for statuses for bookings that block off time on the calendar.
woocommerce_bookings_get_duration_unitStr: Duration unitObj: Bookable productThe duration unit set for the bookable product.
woocommerce_bookings_get_end_date_with_timeStr: Date/time stringObj: BookingPasses formatted date/time string passed through date_i18n().
woocommerce_bookings_get_person_types_idsArr: get_posts args Used in get_person_types_ids which uses get_posts to query all bookable persons.
woocommerce_bookings_get_start_date_with_timeStr: Date/time stringObj: BookingPasses formatted date/time string passed through date_i18n().
woocommerce_bookings_in_date_range_queryArr: Booking IDs Booking IDs being returned after a date range query.
woocommerce_bookings_max_date_unitStrInt: ID of Bookable productThe unit/amount used for max date that a bookable product can be booked into the future.
woocommerce_bookings_max_date_valueIntInt: ID of Bookable productThe numeric value for max date that a bookable product can be booked into the future.
woocommerce_bookings_mdy_formatBool: true If switched to `false`, date format in calendar will be dd/mm/yyyy, else it’s mm/dd/yyyy.
woocommerce_bookings_min_date_unitStrInt: ID of Bookable productThe unit/amount used for min date that a bookable product can be booked into the future.
woocommerce_bookings_min_date_valueIntInt: ID of Bookable productThe numeric value for min date that a bookable product can be booked into the future.
woocommerce_bookings_override_form_default_datenullObj: Booking FormReturn value should be valid unix timestamp, which will default the calendar to the date specified.
woocommerce_bookings_process_cost_rules_base_costFloat|Str: Base Cost set in product Cost rulesArr: Fields for rule, Str: Key/ID for ruleThe base cost set for a cost rule under a product.
woocommerce_bookings_process_cost_rules_costFloat|Str: Block Cost set in product Cost rulesArr: Fields for rule, Str: Key/ID for ruleThe block cost set for a cost rule under a product.
woocommerce_bookings_process_cost_rules_override_blockBoolArr: Fields for rule, Str: Key/ID for ruleDeprecated
woocommerce_bookings_product_typesArr Single element array is passed. Used for testing if a product is a bookable product.
woocommerce_bookings_remind_before_daysInt: 1 Provides ability to increase the amount of days before a booking that a reminder email is sent.
woocommerce_bookings_remove_inactive_cart_timeInt: 60 Bookings are created when added to cart and are scheduled for deletion in 60 minutes if not purchased. Value can be changed to increase/decrease schedule.
woocommerce_bookings_resource_additional_cost_stringStr: Additional costObj: ResourceResource select boxes in the calendar contain additional cost if there is any, allows editing of the additional cost string.
woocommerce_bookings_scheduled_statusesArr: Array of statuses Array of statuses as `status => Status Name` (translated), used to determine if the booking should have events scheduled, such as reminder emails.
woocommerce_bookings_time_formatStr: return of wc_time_format() Allows to change time format for everything Bookings.
woocommerce_email_attachmentsArr: Attachments to emailsStr: The ID of the email, Obj: The email objectWooCommerce core filter for email attachments.
woocommerce_email_heading_{ email_id }Str: Email headingObj: Email objectWooCommerce core filter for email headings.
woocommerce_email_subject_{ email_id }Str: Email subjectObj: Email objectWooCommerce core filter for email subjects.
woocommerce_my_account_bookings_titleStr: “My Bookings” (translated) Page title for My Account > Bookings. (deprecated)
woocommerce_new_booking_dataArr: Data for new post Used when creating a new booking, if defaults needed to be changed.
woocommerce_new_product_dataArr: Data for new post Used when creating a new bookable product, if defaults needed to be changed.
woocommerce_register_post_type_bookable_personArr: Data for new post type Arguments passed when creating the `bookable_person` custom post type.
woocommerce_register_post_type_bookable_resourceArr: Data for new post type Arguments passed when creating the `bookable_resource` custom post type.
woocommerce_register_post_type_wc_bookingArr: Data for new post type Arguments passed when creating the `wc_booking` custom post type.
woocommerce_valid_booking_statuses_for_cancelArr: Array of statuses Array of statuses as `status => Status Name` (translated), used to determine if a booking is in a status that can be cancelled.
woocommerce_bookings_calculated_booking_cost_success_outputStr: Output string Provides the ability to modify the string being shown to the user for the cost (useful for low inventory or fee structure type outputs)
woocommerce_bookings_my_bookings_past_order_byStr: Order by field for past bookings query. Allows modification of past bookings list order for My Account > Bookings view.
woocommerce_bookings_my_bookings_past_query_argsArr: filters for past Bookings query. Allows modification of query for bookings displayed for past on My Account > Bookings view.
woocommerce_bookings_my_bookings_today_order_byStr: Order by field for today bookings query. Allows modification of today’s bookings list order for My Account > Bookings view.
woocommerce_bookings_my_bookings_today_query_args


Arr: filters for today’s bookings query.


Arr: filters for today’s bookings query.Allows modification of query for bookings displayed for today on My Account > Bookings view.
woocommerce_bookings_my_bookings_upcoming_order_byStr: Order by field for upcoming bookings query. Allows modification of upcoming bookings list order for My Account > Bookings view.
woocommerce_bookings_my_bookings_upcoming_query_argsArr: filters for upcoming bookings query. Allows modification of query for bookings displayed for upcoming on My Account > Bookings view.
Use of your personal data
We and our partners process your personal data (such as browsing data, IP Addresses, cookie information, and other unique identifiers) based on your consent and/or our legitimate interest to optimize our website, marketing activities, and your user experience.