Viewing documentation for the Availability Search WooCommerce Bookings Plugin
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)