Actions & Filters
Log Test Activity
Fires on the visitors initial visit of a test and on conversion.
add_action('log_experiment_activity', 'custom_experiment_activity_handler', 10, 4); // $eid, $variation, $type ('visit' or 'conversion'), $location (page id)
Here’s example code where we take this data and log it
function custom_experiment_activity_handler($eid, $variation, $type, $location) {
// Custom code to handle the experiment activity data
// You can perform any necessary actions based on the data, like send events to GA, FB etc.
// Example: Logging the activity to a file
// $log = "Experiment Activity: Test ID=$eid, Variation=$variation, Type=$type, Location=$location, Visitor IP" . $_SERVER['REMOTE_ADDR'];
// my_log_function( $log );
}
add_action('log_experiment_activity', 'custom_experiment_activity_handler', 10, 4);
Disable Reporting Shortcode
add_filter( 'bt_ab_shortcode', '__return_false');
Disable Cache Clearing
As of the latest update, AB Split Test includes a built-in setting to disable automatic cache clearing from the WordPress dashboard → Settings → AB Split Test → Cache Clearing.
By default, the plugin will automatically clear all caches when a test or post is updated to ensure your variations are properly loaded and not affected by cached content.
To make sure ABST conversions and goals works across all pages we clear the cache after updating a page or tests. To disable this add the filter below:
add_filter(‘abst_clear_caches’, ‘__return_false’); // DO NOT CLEAR WEBSITE CAHCE AFTER UPDATES
Hardcode License Key
add_filter('bb_bt_ab_licence_key',function(){
return 'yourlicencekey';
});
Is user tracking allowed
This filter defines if the current user can be tested on.
NOTE: this filter will run on every page load if you do not have website caching on. This can cause significant server load if incorrectly managed.
function my_custom_split_test_logic($is_allowed, $eid) {
$user_is_eu = false; // you would have logic here
if ($eid == '1234' && $user_is_eu) {
return false; // don't allow testing on people from the EU
}
return $is_allowed; // In all other cases, defer to the default behavior
}
add_filter('abst_is_tracking_allowed', 'my_custom_split_test_logic', 10, 2);
Allow cross domain ajax requests
Useful for if you have multisite domain mapping and are getting ajax errors with visits and conversions.
add_filter( 'abst_allow_cors', '__return_true' );
Change required confidence for test winner calculation
By default, we wait for a 95% confidence interval before calling a test winner. Change it with this filter.
add_filter('ab_complete_confidence',function(){ return 98; }); // change to 98% confidence