Developer

This document is developer level. You’ll need to understand PHP to extend Availability Search for WooCommerce Bookings.

Access the search data via PHP

Use our aswb_before_processing_search_request hook to access the search from each Availability Search request. The below function is a starter example that shows you how to access each piece of information. This code will run every time someone runs the availability search.

/** * Function to access the search date for each ASWB search request. * * @param [type] $raw_request * @return void */ function custom_aswb_before_processing_search_request( $raw_request ) { // Uncomment to view request structure in your error log. // error_log( print_r( $raw_request, true ) ); $shortcode_settings = $raw_request['attributes']; // These are the settings of the shortcode. $start_time = $raw_request['start_formatted_time']; // 2020-11-20 0:00 $end_time = $raw_request['end_formatted_time']; // 2020-11-20 0:00 $keyword = ! empty( $raw_request['keyword'] ) ? $raw_request['keyword'] : false; // error_log( print_r( $keyword, true ) ); // Requested Page. You might not want to track page 2++. $paged = ( isset( $query_data['paged'] ) ) ? intval( $query_data['paged'] ) : 1; // Custom taxonomies by their name and find the terms ids. if ( ! empty( $raw_request['taxonomies'] ) ) { foreach ( $raw_request['taxonomies'] as $key => $value ) { $tax_name = explode( 'aswb-taxonomy-', $key ); $tax_name = $tax_name[1]; // eg product_cat. // error_log( print_r( $tax_name, true ) ); $term_ids = $value; // ids as array. // error_log( print_r( $term_ids, true ) ); } } // Do something with the data... } add_action( 'aswb_before_processing_search_request', 'custom_aswb_before_processing_search_request', 10, 1 );
Code language: PHP (php)

It’s completely up to you what you want to with the data.
If you are looking to send search data to Google Analytics Event tracking via PHP – have a look at this example https://gist.github.com/chrisblakley/e1f3d79b6cecb463dd8a

Changing the default search configuration

You can change parts of the default search configuration using the below filter. In the example only the search_on_date_change is disabled to prevent the datepicker from automatically searching when dates are changed. Users will have to click on the dedicated “Search” button after selecting their dates.

/** * Disable the automatic search on date changes. */ function custom_aswb_change_search_config( $config ) { $config['search_on_date_change'] = false; return $config; } add_filter( 'aswb_filter_default_search_configuration', 'custom_aswb_change_search_config' );
Code language: PHP (php)
Was this page helpful?