public static function instance() { if (!isset(self::$instance) && !self::$instance instanceof CallsToAction) { self::$instance = new CallsToAction(); /* Load CSS Template Parser */ require_once WP_CTA_PATH . 'lib/Sabberworm/load-css-parse.php'; /* load cta template data */ $CTALoadExtensions = CTALoadExtensions(); self::$instance->cta_templates = $CTALoadExtensions->template_definitions; /* load cta(s) */ self::$instance->hooks(); } return self::$instance; }
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)); } }