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?