Actions and Filters
WooCommerce Restaurant Ordering has a number of hooks and filters which allow you to customize its behavior. This article is aimed at developers and if you need any help then you can use our plugin customization service.
Filters
wc_restaurant_ordering_navigation_scroll_offset
The amount of 'scroll offset' to apply when a category in the restaurant order form navigation menu is clicked.
The order form will scroll to the selected category, but the position after scrolling can sometimes be incorrect if your website site has a fixed or sticky menu. Use this filter to set an offset, to account for your site's fixed menu. For example, if your sticky menu is 50 pixels high, set this filter to 50
.
Arguments / return
int
- The amount of scroll offset in pixels. Default: 0
wc_restaurant_ordering_script_params
Filter to modify the parameters passed the to the front-end javascript. The array includes the following keys, with defaults shown on the right.
show_cart_notice
- set in plugin settingscart_notice_timeout
- 2800show_stock_in_modal
- set in plugin settingsnav_scroll_offset
- 0refresh_cart
- trueprice_currency_format
- WooCommerce defaultprice_currency_symbol
- WooCommerce defaultprice_num_decimals
- WooCommerce defaultprice_decimal_sep
- WooCommerce defaultprice_thousand_sep
- WooCommerce defaultmessages
- an array of messages (see below)
The messages
key contains a sub-array with the following messages used in the restaurant order form:
item_cannot_be_loaded
- Sorry, this item cannot be loaded.item_out_of_stock
- Sorry, this item is out of stock.item_not_available
- Sorry, this item is not available.error_adding_item
- Sorry, there was a problem ordering this item.enter_quantity_greater_than_0
- Please enter a quantity greater than 0.select_all_required_options
- Please select all required options.address_copied
- Copied!
Arguments / return
array
- The script parameters.
wc_restaurant_ordering_load_frontend_scripts
Whether to load the frontend scripts and stylesheets used by the plugin. Set this to false
if you have custom requirements for loading or optimizing your site's assets.
Arguments / return
bool
- Whether to load the front-end scripts and styles. Default: true
wc_restaurant_ordering_menu_default_options
Filter to modify the default options for a restaurant order form. The array keys are the same as those provided to the restaurant shortcode.
Arguments / return
array
- The default menu options.
wc_restaurant_ordering_menu_output
Use this filter to modify the complete restaurant order form HTML.
Arguments
string
- The restaurant order form HTML.
Barn2\Plugin\WC_Restaurant_Ordering\Menu\Menu_Options
- The menu options object.
WC_Product[]
- The list of products displayed in this menu.
Return
string
wc_restaurant_ordering_wc_get_products_args
The arguments passed to wc_get_products
to fetch the products for the order form.
Arguments / return
array
- The arguments passed to wc_get_products
wc_restaurant_ordering_menu_products
Use this filter to modify the products used in a restaurant order form. See also wc_restaurant_ordering_wc_get_products_args
.
Arguments
WC_Product[]
- The list of products to display in this order form.
Barn2\Plugin\WC_Restaurant_Ordering\Menu\Menu_Options
- The menu options object.
Return
WC_Product[]
wc_restaurant_ordering_product_limit
The maximum number of products allowed in a restaurant order form.
Arguments / return
int
- The maximum number of products. Default: 250
wc_restaurant_ordering_allowed_product_types
The product types to be included in the restaurant order form.
Arguments / return
array
- The product types allowed in the order form. Default:[ 'simple', 'variable' ]
wc_restaurant_ordering_show_hidden_products
Whether to show hidden products in the restaurant order form. Hidden products are those which have a catalogue visibility set to hidden.
Arguments / return
bool
- Whether to show hidden products in the order form. Default: false
wc_restaurant_ordering_category_title
Filter the title for a category in the restaurant order form.
Arguments / return
string
- The category title.
wc_restaurant_ordering_category_description
Filter the description for a category in the restaurant order form.
Arguments / return
string
- The category description.
wc_restaurant_ordering_category_products
Filter the list of products for a category in the restaurant order form.
Arguments / return
array
- The array of WC_Product
objects for the category.
wc_restaurant_ordering_menu_default_product_elements
Modifies the default product details displayed in the restaurant order form. The plugin settings and shortcode options (if used) control the display of the product image, description and buy button.
Arguments / return
array
- The default product elements. Default: [ 'name', 'price' ]
wc_restaurant_ordering_use_short_description
Whether to use the product short description in the order form. If false, or if the product has no short description, the product long description is used. Set this filter to false
to force the display of the long description regardless of the short description.
Arguments
bool
- Whether to use the short description. Default: true
WC_Product
- The current product object.
Return
bool
wc_restaurant_ordering_use_long_description
Whether to use the product long description in the order form. Only applicable if the product has no short description or if the above filter is set to false. You could set this to false
to prevent the long description being used in the order form, even when there's no short description.
Arguments
bool
- Whether to use the long description. Default: true
WC_Product
- The current product object.
Return
bool
wc_restaurant_ordering_allow_shortcodes_in_description
Whether to allow shortcodes in the order form product description. If you set this to true, you may need to override the description (see filter below) to prevent HTML tags being stripped from the description.
Arguments
bool
- Whether to allow shortcodes in the description. Default: false
WC_Product
- The current product object.
Return
bool
wc_restaurant_ordering_product_description_before_formatting
The product description before any shortcodes are rendered.
Arguments
string
- The product description before formatting.
WC_Product
- The current product object.
Return
string
wc_restaurant_ordering_product_description_before_trim
The product description before it is processed by the trimming functions to display in the order form.
Arguments
string
- The product description.
WC_Product
- The current product object.
Return
string
wc_restaurant_ordering_product_description_words_per_column
An array of columns mapped to the number of words permitted for each product in the order form for that number of columns.
Arguments / return
array
- The words to use for each layout option, in the form: [ number of columns => words ]
.
wc_restaurant_ordering_product_description_length
The maximum length of the product description (number of words). When showing the full product description, this will be set to 0. If showing a limited description, it will be the maximum number of words permitted.
Arguments
int
- The product description length.
WC_Product
- The current product object.
Menu_Options
- The menu options.
Return
int
wc_restaurant_ordering_strip_tags_from_description
Whether to strip tags from the description. Note: if the description length is greater than 0, this will happen automatically as part of the trimming functions.
Arguments
bool
- Whether to strip HTML tags from the description. Default: true
WC_Product
- The current product object.
Return
bool
wc_restuarant_ordering_product_name
The name of the product displayed in the order form.
Arguments
string
- The product name.
WC_Product
- The current product object.
Return
string
wc_restaurant_ordering_product_description
The final product description (after trimming, shortcode removal, etc) to display in the order form.
Arguments
string
- The product description.
WC_Product
- The current product object.
Return
string
wc_restaurant_ordering_product_image
The URL for the product image used in the order form.
Arguments
string
- The product image URL.
WC_Product
- The current product object.
Return
string
wc_restaurant_ordering_product_price
The price shown for the product in the order form.
Arguments
string
- The product price.
WC_Product
- The current product object.
Return
string
wc_restaurant_ordering_show_price_range
The price format to use for a variable product when the product has variations with different prices. This filter applies to the restaurant order form only. Possible values are:
short
- Show the range with a "+" after the price, e.g. $3.00+true
- Show the full range, e.g. $3.00 - $5.00false
- Show the lowest price only, e.g. $3.00
Arguments / return
bool|string
- The price range format to use for variable products. Default: short
wc_restaurant_ordering_show_sale_price
Whether to show the "regular" price as well as the current sale price, when the product is on sale. This filter applies to the restaurant order form only.
Arguments / return
bool
- Whether to show sale prices. Default: false
(only show the sale price)
wc_restaurant_ordering_product_order_type
Filter to override the product order type when the order form is first displayed.
Arguments
string
- The product order type: lightbox
, quick
or check
.
WC_Product
- The current product object.
Menu_Options
- The menu options.
Return
string
wc_restaurant_ordering_product_order_type_checked
The determined order type for a product. This filter is called if the initial order type was check
when the menu was initially loaded. The checked order type will be one of these two values:
lightbox
- Use the lightbox to order this product (select options, quantity, etc).quick
- Add 1 of this product instantly without opening the lightbox.
Arguments
string
- The checked order type: lightbox
or quick
.
WC_Product
- The current product object.
Return
string
wc_restaurant_ordering_image_size
Override the product image size used in the restaurant order form. This filter should return an array with exactly two values, of the form: [width, height]
.
Arguments
array
- The image size for the restaurant order form. Default: image size option on settings page (used for both width and height).
WC_Product
- The current product object.
Return
array
wc_restaurant_ordering_modal_data
Filter all of the product data used to display the product lightbox.
Arguments
array
- The array of modal data.
WC_Product
- The current product object.
Return
array
wc_restaurant_ordering_product_is_purchasable
Set this to determine whether the product in the lightbox is purchasable. Default: $product->is_purchasable()
and $product->is_in_stock()
and the restaurant is currently taking orders.
Arguments
bool
- is the product purchasable?
WC_Product
- The product object.
Return
bool
wc_restaurant_ordering_modal_product_name
Filter the product name displayed in the product modal lightbox.
Arguments
string
- The product name in the lightbox
WC_Product
- The product object.
Return
string
wc_restaurant_ordering_modal_product_price
Filter the product price displayed in the product modal lightbox.
Arguments
string
- The product price in the lightbox (normally inside the buy button)
WC_Product
- The product object.
Return
string
wc_restaurant_ordering_product_quantity_args
Filters the quantity arguments used for the quantity picker in the modal lightbox.
Arguments
array
- The product quantity args - min
, max
, step
and value
WC_Product
- The product object.
Return
array
wc_restaurant_ordering_modal_use_long_description
Whether to use the product long description in the product lightbox.
Arguments
bool
- Whether to use the long description in the product lightbox. Default: true
WC_Product
- The current product object.
Return
bool
wc_restaurant_ordering_modal_use_short_description
Whether to use the product short description in the product lightbox. This filter is only applicable if there is no long description for the product, or if the above filter is set to false.
Arguments
bool
- Whether to use the short description in the product lightbox. Default: true
WC_Product
- The current product object.
Return
bool
wc_restaurant_ordering_modal_description_before_formatting
Filter the product description displayed in the lightbox before any formatting is applied. This is run before the_content
filters are applied, so before any shortcodes are proccessed.
Arguments
string
- The product description before formatting.
WC_Product
- The product object.
Return
string
wc_restaurant_ordering_modal_description
Filter the product description displayed in the lightbox after the_content
filters are applied.
Arguments
string
- The formatted product description.
WC_Product
- The product object.
Return
string
wc_restaurant_ordering_modal_image
Filter the product image URL for the image in the lightbox.
Arguments
string
- The product modal image URL.
WC_Product
- The current product object.
Return
string
wc_restaurant_ordering_modal_image_size
Set the product image size used in the product lightbox. Expects an array with exactly two elements, of the form: [width, height]
.
Arguments
array
- The lightbox image size. Default: [500, 300]
WC_Product
- The current product object.
Return
array
wc_restaurant_ordering_modal_stock_status
Filters the product stock status in the lightbox.
Arguments
string
- The stock status.
WC_Product
- The product object.
Return
string
wc_restaurant_ordering_modal_cache_time
The product lightbox is cached to improve load times. Use this filter to adjust to the cache time or set it to 0
to remove caching altogether.
Arguments / return
int
- The cache time in seconds. Default: 1800
(30 minutes)
wc_restaurant_ordering_modal_cache_time_adjusted
The cache time (in seconds) when the next restaurant open or close time is within the next 60 minutes. The cache time is reduced in this case to prevent incorrect data being shown to customers.
Arguments / return
int
- The adjusted cache time in seconds. Default: various values depending how close the next open or close time is.
wc_restaurant_ordering_show_cart_notice
Whether to show the cart notice at the top of the page, after a product is successfully added to the cart. Using this filter will override the 'Show cart confirmation' option on the settings page.
Arguments / return
bool
- Whether to show the cart notice. Default: true
wc_restaurat_ordering_cart_message_include_quantities
Whether to display the quantity added in the cart notice displayed after a product is added to the cart.
Arguments / return
bool
- Whether to include quantities in the "add to cart" notice. Default: true
wc_restaurat_ordering_cart_message_product_name_in_quotes
Whether to display the product name in quotes in the cart notice displayed after a product is added to the cart.
Arguments / return
bool
- Whether to display the product name in quotes in the "add to cart" notice. Default: true
wc_restaurant_ordering_show_all_cart_errors
Whether to show all cart errors when adding to the cart, if there is more than one error found.
Arguments / return
bool
- Whether to show all cart errors. Default: false
wc_restaurant_ordering_refresh_cart_fragments
Whether to refresh the 'cart fragments' after a product is added to the cart. The value of this hook is passed to the plugin's javascript. If true an event is triggered when a product is added to the cart. Most themes respond to this event and update any cart elements on the page (e.g. cart widgets in the sidebar or cart icons in the header).
Arguments / return
bool
- Whether to refresh the cart fragments. Default: true
wc_restaurant_ordering_rest_validate_cart_params
Filter the validated parameters during the REST request to add the product to the cart.
Arguments
array
- The product parameters after validation (array keys are: product_id
, product
, quantity
, variations
, and variation_id
).
WC_Product
- The current product object.
Return
array
wc_restaurant_ordering_handle_cart_validation
Whether to handle cart validation during checkout. If true
the plugin will check the contents of the cart, and if any "restaurant" products are found, it will then check the open/close state of the restaurant.
Set this filter to false to prevent any cart validation during checkout.
Arguments / return
bool
- Whether to validate the cart on checkout. Default: true
wc_restaurant_ordering_navigation_minimum_categories_to_display
Filter the minimum number of categories required for the menu navigation to display.
Arguments / return
int
- The minimum number of categories. Default: 2
wc_restaurant_ordering_is_restaurant_open
Use this filter to decide whether the restaurant is open or closed. The default value is based on the restaurant opening hours and the current time of day. Use this filter to manually override the open/close state.
Arguments / return
bool
- Whether the restaurant is currently open.
wc_restaurant_ordering_allow_orders_when_closed
Whether to allow orders when the restaurant is closed. By default, if the restaurant is closed, the user will be prevented from placing an order, and an error message will be shown on checkout. Use this filter to allow orders when the restaurant is closed.
Arguments / return
bool
- Whether to allow orders when closed. Default: false
wc_restaurant_ordering_default_availability_options
Filter the default availability options object used by the plugin. The default object will contain the options set on the settings page, so use this filter if you want to modify the availability settings (e.g. open notice, closed notice) in certain parts of your site, without modifying the central plugin settings.
Arguments / return
Barn2\Plugin\WC_Restaurant_Ordering\Info\Availability_Options
- The availability options object.
wc_restaurant_ordering_availability_closed_error
Filters the message shown on the checkout and product lightbox when the restaurant is closed.
Arguments / return
string
- The error message. Default: Sorry, the restaurant is now closed.
wc_restaurant_ordering_availability_open_notice
Filters the message shown above the order form when the restaurant is open.
Arguments / return
string
- The availability message. Default: option on settings page.
wc_restaurant_ordering_availability_closed_notice
Filters the message shown above the order form when the restaurant is closed.
Arguments / return
string
- The availability message. Default: option on settings page.
wc_restaurant_ordering_info_show_availability_notice
Whether to show the availability notice above the order form. This is the open or closed message, depending on the current restaurant state.
Arguments / return
bool
- Whether to show the availability notice. Default: true
if opening hours are defined on the settings page.
wc_restaurant_ordering_availability_text_replacements
The text replacements to apply to the open or close time messages. The supported tags are {open_time}
and {close_time}
. Use this filter to add extra tags.
Arguments
array
- The text replacements. Each key should correspond to a tag you want to replace without the curly brackets. The default keys are 'open_time'
and 'close_time'
.
Barn2\Plugin\WC_Restaurant_Ordering\Info\Opening_Hours
- The current restaurant opening hours.
Barn2\Plugin\WC_Restaurant_Ordering\Info\Availability_Options
- The availability options object.
Return
array
wc_restaurant_ordering_availability_open_time_include_day
If the restaurant is closed, this filter sets whether to include the day of the week in the next opening time for the restaurant.
Arguments / return
bool
- Whether to include the day in the next opening time. Default: true
wc_restaurant_ordering_opening_hours_time_with_day_format
Sets the format for the next opening time when the day of the week is included. Expects a PHP date/time format string.
Arguments / return
string
- The date/time format. Default: the WordPress time format with , l
appended, e.g. g:ia, l
.
wc_restaurant_ordering_opening_hours_time_format
Sets the format for open and close times displayed in the plugin. Expects a PHP time format string.
Arguments / return
string
- The time format. Default: the WordPress time format (General -> Settings).
wc_restaurant_ordering_opening_hours_start_week_on_sunday
By default, the opening hours start on Monday. Use this filter to start the week on a Sunday. This will affect the display of the opening hours in the 'More' box above the restaurant order form.
Arguments / return
bool
- Whether to start the week on a Sunday. Default: false
wc_restaurant_ordering_opening_hours_days_of_week
The days of the week to use for the restaurant opening hours. Use this filter to remove specific days if you don't want them to appear.
Arguments / return
array
- The days of the week to use. Default: [ 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday' ]
wc_restaurant_ordering_timezone
The timezone (DateTimeZone
object) to use for open and close time calculations for the restaurant. This is used when determining the status of the restaurant for the current user.
Arguments / return
DateTimeZone
- the timezone object. Default: wp_timezone()
wc_restaurant_ordering_default_information_options
Filter the default information options object used by the plugin. The default object will contain the options set on the settings page, so use this filter if you want to modify the information settings (e.g. restaurant name, address, etc) in certain parts of your site, without modifying the central plugin settings.
Arguments / return
Barn2\Plugin\WC_Restaurant_Ordering\Info\Information_Options
- The information options object.
wc_restaurant_ordering_info_restaurant_name
Filters the restaurant name shown above the order form.
Arguments / return
string
- The restaurant name. Default: option on settings page.
wc_restaurant_ordering_info_restaurant_address
Filters the restaurant address shown above the order form.
Arguments / return
string
- The address. Default: option on settings page.
wc_restaurant_ordering_info_delivery_notice
Filters the delivery notice shown above the order form when the restaurant is open.
Arguments / return
string
- The delivery notice. Default: option on settings page.
wc_restaurant_ordering_info_show_delivery_notice
Whether to show the delivery notice above the order form.
Arguments / return
bool
- Whether to show the delivery notice. Default: true
if restaurant is open, false
otherwise.
wc_restaurant_ordering_info_show_more_link
Whether to show the "More" link above the order form, to show the restaurant information and opening times.
Arguments / return
bool
- Whether to show the "More" link notice. Default: true
if opening hours are set.
wc_restaurant_ordering_override_woocommerce_shop_page
Whether to override the WooCommerce Shop page with the restaurant order form. This filter only applies on the Shop page and when no product search is applied.
It allows you to override the default behavior of the plugin, which is to display the shop page only when the Restaurant Order page is set to the main shop page, and the shop display option is set to 'Products' or 'Products and Categories'.
Arguments / return
bool
- Whether to display the restaurant order form on the Shop page.
wc_restaurant_ordering_woocommerce_shop_page_options
Filter the list of order form options (i.e. the shortcode options) used when the restaurant order form is displayed on the Shop page.
Arguments / return
array
- The array of shortcode options. Default: options on settings page.
wc_restaurant_ordering_override_woocommerce_category_page
Whether to override the WooCommerce category pages with the restaurant order form. This filter only applies on category archive pages.
Arguments / return
bool
- Whether to display the restaurant order form on WooCommerce category pages. Default: option on settings page.
wc_restaurant_ordering_woocommerce_category_page_options
Filter the list of order form options (i.e. the shortcode options) used when the restaurant order form is displayed on a WooCommerce category page.
Arguments / return
array
- The array of shortcode options. Default: options on settings page, except categories
which is set to the current category, and restaurant_info
which is set to false
.
Actions
wc_restaurant_ordering_load_scripts
Fired immediately after the scripts and styles for the plugin have been queued.
wc_restaurant_ordering_before_menu
Fired in the main restaurant order form template, before the restaurant menu is displayed.
wc_restaurant_ordering_before_restaurant_info
Fired in the main restaurant order form template, before the restaurant information is displayed.
wc_restaurant_ordering_before_menu_navigation
Fired in the main restaurant order form template, before the menu category navigation is displayed.
wc_restaurant_ordering_before_menu_items
Fired in the main restaurant order form template, just before the list of food items (products) are displayed.
wc_restaurant_ordering_after_menu_items
Fired in the main restaurant order form template, just after the list of food items (products) are displayed.
wc_restaurant_ordering_after_menu
Fired in the main restaurant order form template, just after the restaurant menu is displayed.
wc_restaurant_ordering_before_menu_section
Fired in the restaurant order form category template, before the HTML for the category section (including title and products) is displayed.
wc_restaurant_ordering_after_menu_section
Fired in the restaurant order form category template, after the HTML for the category section (including title and products) is displayed.
wc_restaurant_ordering_before_menu_section_title
Fired in the restaurant order form category template, before the category title and description are displayed.
wc_restaurant_ordering_before_menu_section_description
Fired in the restaurant order form category template, before the category description is displayed.
wc_restaurant_ordering_after_menu_section_title
Fired in the restaurant order form category template, after the category title and description are displayed.
wc_restaurant_ordering_before_menu_section_products
Fired in the restaurant order form category template, before the HTML for the products for this category are displayed.
wc_restaurant_ordering_after_menu_section_products
Fired in the restaurant order form category template, after the HTML for the products for this category are displayed.
wc_restaurant_ordering_before_menu_product
Fired in the restaurant order form product template, before the product is displayed.
wc_restaurant_ordering_after_menu_product
Fired in the restaurant order form product template, after the product is displayed.
wc_restaurant_ordering_before_add_to_cart
Fired during the 'add to cart' action, just before the call to WC()->cart->add_to_cart()
. Use this hook if you need to do some custom add to cart logic for a specific product .
Arguments
array
- The list of cart params - product_id
, quantity
, variation_id
and variations
wc_restaurant_ordering_after_add_to_cart
Fired during the 'add to cart' action, just after the call to WC()->cart->add_to_cart()
. Use this hook if you need to do some custom add to cart logic for a specific product .
Arguments
array
- The list of cart params - product_id
, quantity
, variation_id
and variations