function wp_cta_ab_stats_metabox() { global $post; $variations = get_post_meta($post->ID, 'cta_ab_variations', true); $variations = explode(',', $variations); $variations = array_filter($variations, 'is_numeric'); ?> <div> <style type="text/css"> </style> <div class="inside" id="a-b-testing"> <div id="bab-stat-box"> <?php if (isset($_GET['new_meta_key'])) { ?> <script type="text/javascript"> jQuery(document).ready(function($) { // This fixes meta data saves for cloned pages function isNumber (o) { return ! isNaN (o-0) && o !== null && o !== "" && o !== false; } var new_meta_key = "<?php echo $_GET['new_meta_key']; ?> "; jQuery('#template-display-options input[type=text], #template-display-options select, #template-display-options input[type=radio], #template-display-options textarea').each(function(){ var this_id = jQuery(this).attr("id"); var final_number = this_id.match(/[^-]+$/g); var new_id = this_id.replace(/[^-]+$/g, new_meta_key); var is_number = isNumber(final_number); console.log(final_number); console.log(is_number); if (is_number === false) { jQuery(this).attr("id", this_id + "-" + new_meta_key); jQuery(this).attr("name", this_id + "-" + new_meta_key); } else { jQuery(this).attr("id", new_id); jQuery(this).attr("name", new_id); } }); }); </script> <?php } ?> <?php $howmany = count($variations); foreach ($variations as $key => $vid) { if (!is_numeric($vid) && $key == 0) { $vid = 0; } $variation_status = wp_cta_ab_get_wp_cta_active_status($post, $vid); $variation_status_class = $variation_status > 0 || $variation_status == "" ? "variation-on" : 'variation-off'; $variation_status_class = apply_filters('wp_cta_variation_status_class', $variation_status_class, $vid); $variation_notes = apply_filters('wp_cta_edit_variation_notes', '', $vid); $permalink = get_permalink($post->ID); if (strstr($permalink, '?wp-cta-variation-id')) { $permalink = explode('?', $permalink); $permalink = $permalink[0]; } $permalink = add_query_arg(array('wp-cta-variation-id' => $vid), $permalink); $impressions = get_post_meta($post->ID, 'wp-cta-ab-variation-impressions-' . $vid, true); $conversions = get_post_meta($post->ID, 'wp-cta-ab-variation-conversions-' . $vid, true); is_numeric($impressions) ? $impressions = $impressions : ($impressions = 0); is_numeric($conversions) ? $conversions = $conversions : ($conversions = 0); if ($impressions > 0) { $conversion_rate = $conversions / $impressions; $conversion_rate_number = $conversion_rate * 100; $conversion_rate_number = round($conversion_rate_number, 2); $conversion_rate_number === 0 ? $sign = "" : ($sign = "%"); $conversion_rate = $conversion_rate_number . $sign; } else { $conversion_rate = 0; } if ($key == 0) { $title = get_post_meta($post->ID, 'wp-cta-main-headline', true); } else { $title = get_post_meta($post->ID, 'wp-cta-main-headline-' . $vid, true); } //determine letter from key ?> <div id="wp-cta-variation-<?php echo wp_cta_ab_key_to_letter($key); ?> " class="bab-variation-row <?php echo $variation_status_class; ?> " > <div class='bab-varation-header'> <span class='bab-variation-name'>Variation <span class='bab-stat-letter'><?php echo wp_cta_ab_key_to_letter($key); ?> </span> <?php if ($variation_status_class == 'variation-off') { ?> <span class='is-paused'><?php _e('(Paused)', 'cta'); ?> </span> <?php } do_action('wp_cta_print_variation_status_note', $variation_status); ?> </span> <span class="wp-cta-delete-var-stats" data-letter='<?php echo wp_cta_ab_key_to_letter($vid); ?> ' data-vid='<?php echo $vid; ?> ' rel='<?php echo $post->ID; ?> ' title="Delete this variations stats">Clear Stats</span> </div> <div class="bab-variation-notes"> <?php echo $variation_notes; ?> </div> <div class="bab-stat-row"> <div class='bab-stat-stats' colspan='2'> <div class='bab-stat-container-impressions bab-number-box'> <span class='bab-stat-span-impressions'><?php echo $impressions; ?> </span> <span class="bab-stat-id"><?php _e('Views', 'cta'); ?> </span> </div> <div class='bab-stat-container-conversions bab-number-box'> <span class='bab-stat-span-conversions'><?php echo $conversions; ?> </span> <span class="bab-stat-id"><?php _e('Conversions', 'cta'); ?> </span></span> </div> <div class='bab-stat-container-conversion_rate bab-number-box'> <span class='bab-stat-span-conversion_rate'><?php echo $conversion_rate; ?> </span> <span class="bab-stat-id bab-rate"><?php _e('Conversion Rate', 'cta'); ?> </span> </div> <div class='bab-stat-control-container'> <span class='bab-stat-control-pause'><a title="Pause this variation" href='?post=<?php echo $post->ID; ?> &action=edit&wp-cta-variation-id=<?php echo $vid; ?> &ab-action=pause-variation'><?php _e('Pause', 'cta'); ?> </a></span> <span class='bab-stat-seperator pause-sep'>|</span> <span class='bab-stat-control-play'><a title="Turn this variation on" href='?post=<?php echo $post->ID; ?> &action=edit&wp-cta-variation-id=<?php echo $vid; ?> &ab-action=play-variation'><?php _e('Play', 'cta'); ?> </a></span> <span class='bab-stat-seperator play-sep'>|</span> <span class='bab-stat-menu-edit'><a title="Edit this variation" href='?post=<?php echo $post->ID; ?> &action=edit&wp-cta-variation-id=<?php echo $vid; ?> '><?php _e('Edit', 'cta'); ?> </a></span> <span class='bab-stat-seperator'>|</span> <span class='bab-stat-menu-preview'><a title="Preview this variation" class='thickbox' href='<?php echo $permalink; ?> &wp_cta_iframe_window=on&post_id=<?php echo $post->ID; ?> &TB_iframe=true&width=1503&height=467' target='_blank'><?php _e('Preview', 'cta'); ?> </a></span> <span class='bab-stat-seperator'>|</span> <span class='bab-stat-menu-clone'><a title="Clone this variation" href='?post=<?php echo $post->ID; ?> &action=edit&new-variation=1&clone=<?php echo $vid; ?> &new_meta_key=<?php echo $howmany; ?> '><?php _e('Clone', 'cta'); ?> </a></span> <span class='bab-stat-seperator'>|</span> <span class='bab-stat-control-delete'><a title="Delete this variation" href='?post=<?php echo $post->ID; ?> &action=edit&wp-cta-variation-id=<?php echo $vid; ?> &ab-action=delete-variation'><?php _e('Delete', 'cta'); ?> </a></span> </div> </div> </div> <div class="bab-stat-row"> <div class='bab-stat-menu-container'> <?php do_action('wp_cta_ab_testing_stats_menu_post'); ?> </div> </div> </div> <?php } ?> </div> </div> </div> <?php }
function wp_cta_save_meta($post_id) { global $post; $CTAExtensions = CTALoadExtensions(); $extension_data = $CTAExtensions->definitions; if (!isset($post)) { return; } if ($post->post_type == 'revision') { return; } if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE || isset($_POST['post_type']) && $_POST['post_type'] == 'revision') { return; } if ($post->post_type == 'wp-call-to-action') { unset($extension_data['wp-cta-controller']); foreach ($extension_data as $key => $data) { foreach ($extension_data[$key]['settings'] as $field) { isset($field['global']) && $field['global'] ? $field['id'] : ($field['id'] = $key . "-" . $field['id']); if ($field['type'] == 'tax_select') { continue; } $field['id'] = apply_filters('wp_cta_ab_field_id', $field['id']); $old = get_post_meta($post_id, $field['id'], true); isset($_POST[$field['id']]) ? $new = $_POST[$field['id']] : ($new = null); /* echo $field['id'].' old:'.$old.'<br>'; echo $field['id'].' new:'.$new.'<br>'; */ if (isset($new) && $new != $old) { update_post_meta($post_id, $field['id'], $new); } elseif ('' == $new && $old) { delete_post_meta($post_id, $field['id'], $old); } } } /* Save Live Variations into Meta Pair */ $variations = get_post_meta($post_id, 'cta_ab_variations', true); $variations = explode(',', $variations); $live_variations = array(); foreach ($variations as $key => $vid) { $status = wp_cta_ab_get_wp_cta_active_status($post, $vid); if ($status > 0 || !is_numeric($status)) { $live_variations[] = $vid; } } update_post_meta($post_id, 'wp_cta_live_variations', json_encode($live_variations)); } }