private function _get_saved_ab_module_id($test_id, $client_id)
 {
     if (!empty($this->ab_tests_saved_id[$test_id])) {
         return $this->ab_tests_saved_id[$test_id];
     }
     $saved_module_id = et_pb_ab_get_saved_ab_module_id($test_id, $client_id);
     if (false !== $saved_module_id) {
         // cache the retrieved value
         $this->ab_tests_saved_id[$test_id] = $saved_module_id;
     }
     return $saved_module_id;
 }
Example #2
0
function et_pb_ab_get_subject_id()
{
    if (isset($_POST['et_frontend_nonce']) && !wp_verify_nonce($_POST['et_frontend_nonce'], 'et_frontend_nonce')) {
        die(-1);
    }
    $test_id = intval($_POST['et_pb_ab_test_id']);
    $user_unique_id = et_pb_get_visitor_id();
    $saved_module_id = et_pb_ab_get_saved_ab_module_id($test_id, $user_unique_id);
    $current_ab_module_id = et_pb_ab_get_current_ab_module_id($test_id, $saved_module_id);
    $current_ab_module_id = intval($current_ab_module_id);
    if (false === $saved_module_id) {
        // log the view_page event
        et_pb_add_stats_record(array('test_id' => $test_id, 'subject_id' => $current_ab_module_id, 'record_type' => 'view_page'));
        // increment the module id for the next time
        et_pb_ab_increment_current_ab_module_id($test_id, $user_unique_id);
    }
    // retrieve the cached subjects HTML
    $subjects_cache = get_post_meta($test_id, 'et_pb_subjects_cache', true);
    $result = array('id' => $current_ab_module_id, 'content' => isset($subjects_cache[$current_ab_module_id]) ? $subjects_cache[$current_ab_module_id] : '');
    die(json_encode($result));
}