function __construct()
 {
     $CTA_Load_Extensions = CTA_Load_Extensions();
     $wp_cta_data = $CTA_Load_Extensions->template_definitions;
     $final_data = array();
     foreach ($wp_cta_data as $key => $data) {
         $array_core_templates = array('auto-focus', 'breathing', 'clean-cta', 'blank-template', 'call-out-box', 'cta-one', 'demo', 'flat-cta', 'peek-a-boo', 'popup-ebook', 'facebook-like-button', 'facebook-like-to-download', 'feedburner-subscribe-to-download', 'linkedin-share-to-download', 'tweet-to-download', 'follow-to-download', 'ebook-call-out');
         if ($key == 'wp-cta' || substr($key, 0, 4) == 'ext-') {
             continue;
         }
         if (isset($data['info']['data_type']) && $data['info']['data_type'] == 'metabox') {
             continue;
         }
         if (in_array($key, $array_core_templates)) {
             continue;
         }
         //if (stristr($data['category'],'Theme Integrated'))
         //continue;
         //echo "<br>";
         if (isset($_POST['s']) && !empty($_POST['s'])) {
             if (!stristr($data['info']['label'], $_POST['s'])) {
                 continue;
             }
         }
         if (isset($data['thumbnail'])) {
             $thumbnail = $data['thumbnail'];
         } else {
             if ($key == 'default') {
                 $thumbnail = get_bloginfo('template_directory') . "/screenshot.png";
             } else {
                 $thumbnail = WP_CTA_UPLOADS_URLPATH . $key . "/thumbnail.png";
             }
         }
         //echo $thumbnail;
         $this_data['ID'] = $key;
         $this_data['template'] = $key;
         array_key_exists('info', $data) ? $this_data['name'] = $data['info']['label'] : ($this_data['name'] = $data['label']);
         array_key_exists('info', $data) ? $this_data['category'] = $data['info']['category'] : ($this_data['category'] = $data['category']);
         array_key_exists('info', $data) ? $this_data['description'] = $data['info']['description'] : ($this_data['description'] = $data['description']);
         $this_data['thumbnail'] = $thumbnail;
         if (isset($data['version']) && !empty($data['info']['version'])) {
             $this_data['version'] = $data['info']['version'];
         } else {
             $this_data['version'] = "1.0.1";
         }
         $final_data[] = $this_data;
     }
     //print_r($this_data);exit;
     $this->template_data = $final_data;
     //$this->_args = array();
     $this->singular = 'ID';
     $this->plural = 'ID';
     $args = $this->_args;
     //print_r($args);exit;
     $args['plural'] = sanitize_key('');
     $args['singular'] = sanitize_key('');
     $this->_args = $args;
 }
Exemple #2
0
 public static function instance()
 {
     if (!isset(self::$instance) && !self::$instance instanceof CTA_Render) {
         self::$instance = new CTA_Render();
         /* Load CSS Template Parser */
         require_once WP_CTA_PATH . 'lib/Sabberworm/load-css-parse.php';
         /* load cta template data */
         $CTA_Load_Extensions = CTA_Load_Extensions();
         self::$instance->cta_templates = $CTA_Load_Extensions->template_definitions;
         /* load cta(s) */
         self::$instance->hooks();
     }
     return self::$instance;
 }
 /**
  *  Enqueues scripts and styles related to wp-call-to-action post type and cta settings pages
  */
 public static function backend_cta_enqueues($hook)
 {
     global $post;
     $CTAExtensions = CTA_Load_Extensions();
     $screen = get_current_screen();
     if (isset($screen) && $screen->post_type != 'wp-call-to-action') {
         return;
     }
     /* Enqueue dependancies */
     wp_enqueue_script(array('jquery', 'jqueryui', 'editor', 'thickbox', 'media-upload'));
     /* Enqueue jpicker for color selectors  */
     wp_enqueue_script('jpicker', WP_CTA_URLPATH . 'js/libraries/jpicker/jpicker-1.1.6.min.js');
     wp_localize_script('jpicker', 'jpicker', array('thispath' => WP_CTA_URLPATH . 'js/libraries/jpicker/images/'));
     wp_enqueue_style('jpicker-css', WP_CTA_URLPATH . 'js/libraries/jpicker/css/jPicker-1.1.6.min.css');
     /* Enqueue qtip support */
     wp_dequeue_script('jquery-qtip');
     wp_enqueue_script('jquery-qtip', WP_CTA_URLPATH . 'js/libraries/jquery-qtip/jquery.qtip.min.js');
     wp_enqueue_script('load-qtip', WP_CTA_URLPATH . 'js/libraries/jquery-qtip/load.qtip.js', array('jquery-qtip'));
     wp_enqueue_style('qtip-css', WP_CTA_URLPATH . 'css/jquery.qtip.min.css');
     /* Enqueue datepicker support */
     wp_enqueue_script('jquery-datepicker', WP_CTA_URLPATH . 'js/libraries/jquery-datepicker/jquery.timepicker.min.js');
     wp_enqueue_script('jquery-datepicker-functions', WP_CTA_URLPATH . 'js/libraries/jquery-datepicker/picker_functions.js');
     wp_enqueue_script('jquery-datepicker-base', WP_CTA_URLPATH . 'js/libraries/jquery-datepicker/lib/base.js');
     wp_enqueue_script('jquery-datepicker-datepair', WP_CTA_URLPATH . 'js/libraries/jquery-datepicker/lib/datepair.js');
     wp_localize_script('jquery-datepicker', 'jquery_datepicker', array('thispath' => WP_CTA_URLPATH . 'js/libraries/jquery-datepicker/'));
     /* Enqueue timepicker support */
     wp_enqueue_style('jquery-timepicker-css', WP_CTA_URLPATH . 'js/libraries/jquery-datepicker/jquery.timepicker.css');
     wp_enqueue_style('jquery-datepicker-base.css', WP_CTA_URLPATH . 'js/libraries/jquery-datepicker/lib/base.css');
     /* Enqueue CSS rules for wp-call-to-action post type */
     wp_enqueue_style('wp-cta-only-cpt-admin-css', WP_CTA_URLPATH . 'css/admin-wp-cta-cpt-only-style.css');
     /* Enqueues support for clear stat buttons */
     wp_enqueue_script('wp-cta-admin-clear-stats-ajax-request', WP_CTA_URLPATH . 'js/ajax.clearstats.js', array('jquery'));
     wp_localize_script('wp-cta-admin-clear-stats-ajax-request', 'ajaxadmin', array('ajaxurl' => admin_url('admin-ajax.php'), 'wp_call_to_action_clear_nonce' => wp_create_nonce('wp-call-to-action-clear-nonce')));
     /*  Enqueue supporting js for Global Settings page */
     if (isset($_GET['page']) && $_GET['page'] === 'wp_cta_global_settings') {
         wp_enqueue_script('cta-settings-js', WP_CTA_URLPATH . 'js/admin/admin.global-settings.js');
     }
     /* enqueue scripts and styles for CTA listing page */
     if ($screen->id == 'edit-wp-call-to-action') {
         wp_enqueue_script('wp-call-to-action-list', WP_CTA_URLPATH . 'js/admin/admin.wp-call-to-action-list.js');
         wp_enqueue_style('wp-call-to-action-list-css', WP_CTA_URLPATH . 'css/admin-wp-call-to-action-list.css');
         wp_admin_css('thickbox');
         add_thickbox();
     }
     /* Enqueue scripts required on create cta page and edit cta page */
     if (isset($hooks) && $hook == 'post-new.php' || $hook == 'post.php') {
         /* Set the default editor mode */
         add_filter('wp_default_editor', array(__CLASS__, 'set_default_editor_mode'));
         /* force visual editor to open in text mode */
         /* Enqueue UI assisting js */
         wp_enqueue_script('wp-cta-post-edit-ui', WP_CTA_URLPATH . 'js/admin/admin.post-edit.js');
         wp_localize_script('wp-cta-post-edit-ui', 'wp_cta_post_edit_ui', array('ajaxurl' => admin_url('admin-ajax.php'), 'post_id' => $post->ID, 'wp_call_to_action_meta_nonce' => wp_create_nonce('wp-call-to-action-meta-nonce'), 'wp_call_to_action_template_nonce' => wp_create_nonce('wp-cta-nonce')));
         /* Enqueue supportive js for template switching */
         wp_enqueue_script('wp-cta-js-metaboxes', WP_CTA_URLPATH . 'js/admin/admin.metaboxes.js');
         $template_data = $CTAExtensions->definitions;
         $template_data = json_encode($template_data);
         $template = get_post_meta($post->ID, 'wp-cta-selected-template', true);
         $template = apply_filters('wp_cta_selected_template', $template);
         $template = strtolower($template);
         $params = array('selected_template' => $template, 'templates' => $template_data);
         wp_localize_script('wp-cta-js-metaboxes', 'data', $params);
     }
     /* Enqueue scripts & styles for cta edit page alone */
     if ($hook == 'post.php') {
         wp_enqueue_style('admin-post-edit-css', WP_CTA_URLPATH . 'css/admin-post-edit.css');
     }
     /* Enqueue scripts & styles for cta creation page alone */
     if ($hook == 'post-new.php') {
         wp_enqueue_script('wp-cta-js-create-new', WP_CTA_URLPATH . 'js/admin/admin.post-new.js', array('jquery'), '1.0', true);
         wp_enqueue_style('wp-cta-css-post-new', WP_CTA_URLPATH . 'css/admin-post-new.css');
     }
 }
 function wp_cta_admin_enqueue($hook)
 {
     global $post;
     $CTAExtensions = CTA_Load_Extensions();
     $screen = get_current_screen();
     global $wp_scripts;
     /* dequeue third party scripts */
     if (!empty($wp_scripts->queue)) {
         $store = $wp_scripts->queue;
         // store the scripts
         foreach ($wp_scripts->queue as $handle) {
             wp_dequeue_script($handle);
         }
     }
     wp_enqueue_style('wp-cta-admin-css', WP_CTA_URLPATH . 'css/admin-style.css');
     // Frontend Editor
     if (isset($_GET['page']) == 'wp-cta-frontend-editor') {
     }
     //easyXDM - for store rendering
     if (isset($_GET['page']) && ($_GET['page'] == 'wp_cta_store' || $_GET['page'] == 'wp_cta_addons')) {
         wp_dequeue_script('easyXDM');
         wp_enqueue_script('easyXDM', WP_CTA_URLPATH . 'js/libraries/easyXDM.debug.js');
         //wp_enqueue_script('wp-cta-js-store', WP_CTA_URLPATH . 'js/admin/admin.store.js');
     }
     // Admin enqueue - Landing Page CPT only
     if (isset($post) && 'wp-call-to-action' == $post->post_type || isset($_GET['post_type']) && $_GET['post_type'] == 'wp-call-to-action') {
         wp_enqueue_script(array('jquery', 'editor', 'thickbox', 'media-upload'));
         wp_enqueue_script('jpicker', WP_CTA_URLPATH . 'js/libraries/jpicker/jpicker-1.1.6.min.js');
         wp_localize_script('jpicker', 'jpicker', array('thispath' => WP_CTA_URLPATH . 'js/libraries/jpicker/images/'));
         wp_enqueue_style('jpicker-css', WP_CTA_URLPATH . 'js/libraries/jpicker/css/jPicker-1.1.6.min.css');
         wp_dequeue_script('jquery-qtip');
         wp_enqueue_script('jquery-qtip', WP_CTA_URLPATH . 'js/libraries/jquery-qtip/jquery.qtip.min.js');
         wp_enqueue_script('load-qtip', WP_CTA_URLPATH . 'js/libraries/jquery-qtip/load.qtip.js', array('jquery-qtip'));
         wp_enqueue_style('qtip-css', WP_CTA_URLPATH . 'css/jquery.qtip.min.css');
         wp_enqueue_style('wp-cta-only-cpt-admin-css', WP_CTA_URLPATH . 'css/admin-wp-cta-cpt-only-style.css');
         wp_enqueue_script('wp-cta-admin-clear-stats-ajax-request', WP_CTA_URLPATH . 'js/ajax.clearstats.js', array('jquery'));
         wp_localize_script('wp-cta-admin-clear-stats-ajax-request', 'ajaxadmin', array('ajaxurl' => admin_url('admin-ajax.php'), 'wp_call_to_action_clear_nonce' => wp_create_nonce('wp-call-to-action-clear-nonce')));
         // Add New and Edit Screens
         if ($hook == 'post-new.php' || $hook == 'post.php') {
             //echo wp_create_nonce('wp-cta-nonce');exit;
             add_filter('wp_default_editor', 'wp_cta_ab_testing_force_default_editor');
             /* force visual editor to open in text mode */
             wp_enqueue_script('wp-cta-post-edit-ui', WP_CTA_URLPATH . 'js/admin/admin.post-edit.js');
             wp_localize_script('wp-cta-post-edit-ui', 'wp_cta_post_edit_ui', array('ajaxurl' => admin_url('admin-ajax.php'), 'post_id' => $post->ID, 'wp_call_to_action_meta_nonce' => wp_create_nonce('wp-call-to-action-meta-nonce'), 'wp_call_to_action_template_nonce' => wp_create_nonce('wp-cta-nonce')));
             //admin.metaboxes.js - Template Selector - Media Uploader
             wp_enqueue_script('wp-cta-js-metaboxes', WP_CTA_URLPATH . 'js/admin/admin.metaboxes.js');
             $template_data = $CTAExtensions->definitions;
             $template_data = json_encode($template_data);
             $template = get_post_meta($post->ID, 'wp-cta-selected-template', true);
             $template = apply_filters('wp_cta_selected_template', $template);
             $template = strtolower($template);
             $params = array('selected_template' => $template, 'templates' => $template_data);
             wp_localize_script('wp-cta-js-metaboxes', 'data', $params);
             // Conditional TINYMCE for landing pages
             //wp_dequeue_script('jquery-tinymce');
             //wp_enqueue_script('jquery-tinymce', WP_CTA_URLPATH . 'js/libraries/tiny_mce/jquery.tinymce.js');
         }
         // Edit Screen
         if ($hook == 'post.php') {
             wp_enqueue_style('admin-post-edit-css', WP_CTA_URLPATH . 'css/admin-post-edit.css');
             if (isset($_GET['frontend']) && $_GET['frontend'] === 'true') {
                 //show_admin_bar( false ); // doesnt work
                 wp_enqueue_style('new-customizer-admin', WP_CTA_URLPATH . 'css/new-customizer-admin.css');
                 wp_enqueue_script('new-customizer-admin', WP_CTA_URLPATH . 'js/admin/new-customizer-admin.js');
             }
             wp_enqueue_script('jquery-datepicker', WP_CTA_URLPATH . 'js/libraries/jquery-datepicker/jquery.timepicker.min.js');
             wp_enqueue_script('jquery-datepicker-functions', WP_CTA_URLPATH . 'js/libraries/jquery-datepicker/picker_functions.js');
             wp_enqueue_script('jquery-datepicker-base', WP_CTA_URLPATH . 'js/libraries/jquery-datepicker/lib/base.js');
             wp_enqueue_script('jquery-datepicker-datepair', WP_CTA_URLPATH . 'js/libraries/jquery-datepicker/lib/datepair.js');
             wp_localize_script('jquery-datepicker', 'jquery_datepicker', array('thispath' => WP_CTA_URLPATH . 'js/libraries/jquery-datepicker/'));
             wp_enqueue_style('jquery-timepicker-css', WP_CTA_URLPATH . 'js/libraries/jquery-datepicker/jquery.timepicker.css');
             wp_enqueue_style('jquery-datepicker-base.css', WP_CTA_URLPATH . 'js/libraries/jquery-datepicker/lib/base.css');
             /**
             				wp_enqueue_script('jquery-intro', WP_CTA_URLPATH . 'js/admin/intro.js', array( 'jquery' ));
             				wp_enqueue_style('intro-css', WP_CTA_URLPATH . 'css/admin-tour.css'); */
         }
         if (isset($_GET['page']) && $_GET['page'] === 'wp_cta_global_settings') {
             wp_enqueue_script('cta-settings-js', WP_CTA_URLPATH . 'js/admin/admin.global-settings.js');
         }
         // Add New Screen
         if ($hook == 'post-new.php') {
             wp_enqueue_script('wp-cta-js-create-new', WP_CTA_URLPATH . 'js/admin/admin.post-new.js', array('jquery'), '1.0', true);
             wp_enqueue_style('wp-cta-css-post-new', WP_CTA_URLPATH . 'css/admin-post-new.css');
         }
         // List Screen
         if ($screen->id == 'edit-wp-call-to-action') {
             wp_enqueue_script('wp-call-to-action-list', WP_CTA_URLPATH . 'js/admin/admin.wp-call-to-action-list.js');
             wp_enqueue_style('wp-call-to-action-list-css', WP_CTA_URLPATH . 'css/admin-wp-call-to-action-list.css');
             wp_enqueue_script('jqueryui');
             wp_admin_css('thickbox');
             add_thickbox();
         }
     }
     /* Requeue third party scripts */
     if (is_array($store)) {
         foreach ($store as $handle) {
             wp_enqueue_script($handle);
         }
     }
 }
 /**
  *  Saves related metadata
  */
 public static function save_data($post_id)
 {
     global $post;
     if (!isset($post)) {
         return;
     }
     if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
         return;
     }
     $exclude = self::get_excluded_post_types();
     if (in_array($post->post_type, $exclude)) {
         return;
     }
     $CTAExtensions = CTA_Load_Extensions();
     $extension_data = $CTAExtensions->definitions;
     foreach ($extension_data['wp-cta-controller']['settings'] as $key => $field) {
         isset($field['global']) && $field['global'] ? $field['id'] : ($field['id'] = $field['id']);
         if ($field['type'] == 'tax_select') {
             continue;
         }
         $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);
         }
     }
     if (isset($_POST['cta_display_list'])) {
         update_post_meta($post_id, "cta_display_list", $_POST['cta_display_list']);
     } else {
         delete_post_meta($post_id, "cta_display_list");
         // remove empty checkboxes
     }
     if (isset($_POST['cta_alignment'])) {
         // if we get new data
         update_post_meta($post_id, "cta_alignment", $_POST['cta_alignment']);
     } else {
         delete_post_meta($post_id, "cta_alignment");
     }
 }
 /**
  *  Deletes a 3rd party call to action template
  *  @param STRING $dir
  *  @param STRING $slug
  */
 public static function delete_template($dir, $slug)
 {
     if (!file_exists($dir)) {
         return true;
     }
     $CTA_Load_Extensions = CTA_Load_Extensions();
     $data = $CTA_Load_Extensions->template_definitions;
     if (!is_dir($dir) || is_link($dir)) {
         return unlink($dir);
     }
     foreach (scandir($dir) as $item) {
         if ($item == '.' || $item == '..') {
             continue;
         }
         if (!self::delete_template($dir . "/" . $item, $slug)) {
             chmod($dir . "/" . $item, 0777);
             if (!self::delete_template($dir . "/" . $item, $slug)) {
                 return false;
             }
         }
     }
     rmdir($dir);
     echo '<div class="updated"><p>' . $data['label'] . ' deleted successfully!</div>';
 }
        /**
         * How to display the widget on the screen.
         */
        function widget($args, $instance)
        {
            global $wp_query;
            global $post;
            if (!isset($instance['cta_ids'])) {
                return;
            }
            /* get enviroment object id if available */
            $obj_id = $wp_query->get_queried_object_id();
            $CTA_Load_Extensions = CTA_Load_Extensions();
            $this->cta_templates = $CTA_Load_Extensions->template_definitions;
            $CTA_Render = CTA_Render();
            $selected_ctas = $instance['cta_ids'];
            if (!is_array($selected_ctas)) {
                return;
            }
            $cta_ids = implode(",", $selected_ctas);
            $count = count($selected_ctas);
            $rand_key = array_rand($selected_ctas, 1);
            $cta_id = $selected_ctas[$rand_key];
            $this->cta_id = $cta_id;
            $selected_cta = $CTA_Render->prepare_cta_dataset(array($cta_id));
            if (!isset($selected_cta['templates'])) {
                return;
            }
            /* Import Correct CSS & JS from Assets folder and Enqueue */
            $loaded = array();
            foreach ($selected_cta['templates'] as $template) {
                if (in_array($template['slug'], $loaded)) {
                    continue;
                }
                $loaded[] = $template['slug'];
                $assets = $CTA_Render->get_assets($template);
                $localized_template_id = str_replace('-', '_', $template['slug']);
                foreach ($assets as $type => $file) {
                    switch ($type) {
                        case 'js':
                            foreach ($file as $js) {
                                wp_enqueue_script(md5($js), $js, array('jquery'));
                                wp_localize_script(md5($js), $localized_template_id, array('ajaxurl' => admin_url('admin-ajax.php'), 'post_id' => $obj_id));
                            }
                            break;
                        case 'css':
                            foreach ($file as $css) {
                                wp_enqueue_style(md5($css), $css);
                            }
                            break;
                    }
                }
            }
            /* Load CTA CSS Templates & Load Custom CSS & Custom JS */
            foreach ($selected_cta['meta'] as $vid => $cta) {
                $vid < 1 ? $suffix = '' : ($suffix = '-' . $vid);
                $template_slug = $selected_cta['meta'][$vid]['wp-cta-selected-template-' . $vid];
                $custom_css = get_post_meta($cta_id, 'wp-cta-custom-css' . $suffix, true);
                //echo $template_slug;
                //print_r($this->cta_templates);exit;
                $dynamic_css = $this->cta_templates[$template_slug]['css-template'];
                $dynamic_css = $CTA_Render->replace_template_variables($selected_cta, $dynamic_css, $vid);
                $css_id_preface = "#wp_cta_" . $cta_id . "_variation_" . $vid;
                $dynamic_css = $CTA_Render->parse_css_template($dynamic_css, $css_id_preface);
                $css_styleblock_class = apply_filters('wp_cta_styleblock_class', '', $cta_id, $vid);
                if (!stristr($custom_css, '<style')) {
                    $custom_css = strip_tags($custom_css);
                }
                /* Print Cusom CSS */
                echo '<style type="text/css" id="wp_cta_css_custom_' . $cta_id . '_' . $vid . '" class="wp_cta_css_' . $cta_id . ' ' . $css_styleblock_class . '">' . $custom_css . ' ' . $dynamic_css . '</style>';
                $custom_js = get_post_meta($cta_id, 'wp-cta-custom-js' . $suffix, true);
                if (!stristr($custom_css, '<script') && $custom_css) {
                    echo '<script type="text/javascript" id="wp_cta_js_custom">jQuery(document).ready(function($) {
					' . $custom_js . ' });</script>';
                } else {
                    if ($custom_js) {
                        echo $custom_js;
                    }
                }
            }
            /* get supporting widget settings */
            $selected_cta['margin-top'] = $instance['cta_margin_top'];
            $selected_cta['margin-bottom'] = $instance['cta_margin_bottom'];
            $cta_template = $CTA_Render->build_cta_content($selected_cta);
            $cta_template = do_shortcode($cta_template);
            echo $cta_template;
            $this->load_variation();
            //add_action('wp_footer', array($this,'load_variation'));
        }
function wp_cta_display_meta_save($post_id)
{
    global $post;
    if (!isset($post)) {
        return;
    }
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
        return;
    }
    $exclude[] = 'attachment';
    $exclude[] = 'revisions';
    $exclude[] = 'nav_menu_item';
    $exclude[] = 'wp-lead';
    $exclude[] = 'automation';
    $exclude[] = 'rule';
    $exclude[] = 'list';
    $exclude[] = 'wp-call-to-action';
    $exclude[] = 'tracking-event';
    $exclude[] = 'inbound-forms';
    if (in_array($post->post_type, $exclude)) {
        return;
    }
    // add filter
    $CTAExtensions = CTA_Load_Extensions();
    $extension_data = $CTAExtensions->definitions;
    foreach ($extension_data['wp-cta-controller']['settings'] as $key => $field) {
        isset($field['global']) && $field['global'] ? $field['id'] : ($field['id'] = $field['id']);
        if ($field['type'] == 'tax_select') {
            continue;
        }
        $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);
        }
    }
    if (isset($_POST['cta_display_list'])) {
        update_post_meta($post_id, "cta_display_list", $_POST['cta_display_list']);
    } else {
        delete_post_meta($post_id, "cta_display_list");
        // remove empty checkboxes
    }
    if (isset($_POST['cta_alignment'])) {
        // if we get new data
        update_post_meta($post_id, "cta_alignment", $_POST['cta_alignment']);
    } else {
        delete_post_meta($post_id, "cta_alignment");
    }
}
 public static function show_advanced_settings()
 {
     global $post;
     $CTAExtensions = CTA_Load_Extensions();
     $extension_data = $CTAExtensions->definitions;
     // Use nonce for verification
     //echo '<input type="hidden" name="custom_wp_cta_metaboxes_nonce" value="'.wp_create_nonce(basename(__FILE__)).'" />';
     wp_nonce_field('save-custom-wp-cta-boxes', 'custom_wp_cta_metaboxes_nonce');
     // Begin the field table and loop
     echo '<div class="form-table">';
     echo '<div class="cta-description-box"><span class="calc button-secondary">' . __('Calculate height/width', 'cta') . '</span></div>';
     foreach ($extension_data['wp-cta']['settings'] as $key => $field) {
         if (isset($field['region']) && $field['region'] == 'advanced') {
             if (!isset($field['global']) || !$field['global']) {
                 $field['id'] = apply_filters('wp_cta_prepare_input_id', $field['id']);
             }
             $field['id'] = "wp-cta-" . $field['id'];
             CTA_Metaboxes_Global::render_setting($field);
         }
     }
     do_action("wordpress_cta_add_meta");
     // Action for adding extra meta boxes/options
     echo '</div>';
     // end table
 }
function inbound_template_metabox_render($plugin, $key, $custom_fields, $post)
{
    switch ($plugin) {
        case "cta":
            $prefix = 'wp_cta';
            $prefix_dash = 'wp-cta';
            $CTAExtensions = CTA_Load_Extensions();
            $extension_data = $CTAExtensions->definitions;
            break;
    }
    // Use nonce for verification
    echo "<input type='hidden' name='{$prefix}_{$key}_custom_fields_nonce' value='" . wp_create_nonce('' . $prefix_dash . '-nonce') . "' />";
    // Begin the field table and loop
    echo '<div class="form-table" id="inbound-meta">';
    //print_r($custom_fields);exit;
    $current_var = wp_cta_ab_testing_get_current_variation_id();
    foreach ($custom_fields as $field) {
        $field_id = $key . "-" . $field['id'];
        $label_class = $field['id'] . "-label";
        $type_class = " inbound-" . $field['type'];
        $type_class_row = " inbound-" . $field['type'] . "-row";
        $type_class_option = " inbound-" . $field['type'] . "-option";
        $option_class = isset($field['class']) ? $field['class'] : '';
        $meta = get_post_meta($post->ID, $field_id, true);
        //print_r($field);
        if (!metadata_exists('post', $post->ID, $field_id)) {
            $meta = $field['default'];
        }
        // Remove prefixes on global => true template options
        if (isset($field['global']) && $field['global'] === true) {
            $field_id = $field['id'];
            $meta = get_post_meta($post->ID, $field['id'], true);
        }
        // begin a table row with
        echo '<div class="' . $field['id'] . $type_class_row . ' div-' . $option_class . ' wp-call-to-action-option-row inbound-meta-box-row">';
        if ($field['type'] != "description-block" && $field['type'] != "custom-css") {
            echo '<div id="inbound-' . $field_id . '" data-actual="' . $field_id . '" class="inbound-meta-box-label wp-call-to-action-table-header ' . $label_class . $type_class . '"><label for="' . $field_id . '">' . $field['label'] . '</label></div>';
        }
        echo '<div class="wp-call-to-action-option-td inbound-meta-box-option ' . $type_class_option . '" data-field-type="' . $field['type'] . '">';
        switch ($field['type']) {
            // default content for the_content
            case 'default-content':
                echo '<span id="overwrite-content" class="button-secondary">Insert Default Content into main Content area</span><div style="display:none;"><textarea name="' . $field_id . '" id="' . $field_id . '" class="default-content" cols="106" rows="6" style="width: 75%; display:hidden;">' . $meta . '</textarea></div>';
                break;
            case 'description-block':
                echo '<div id="' . $field_id . '" class="description-block">' . $field['description'] . '</div>';
                break;
            case 'custom-css':
                echo '<style type="text/css">' . $field['default'] . '</style>';
                break;
                // text
            // text
            case 'colorpicker':
                if (!$meta) {
                    $meta = $field['default'];
                }
                $var_id = isset($_GET['new_meta_key']) ? "-" . $_GET['new_meta_key'] : '';
                echo '<input type="text" class="jpicker" style="background-color:#' . $meta . '" name="' . $field_id . '" id="' . $field_id . '" value="' . $meta . '" size="5" /><span class="button-primary new-save-wp-cta" data-field-type="text" id="' . $field_id . $var_id . '" style="margin-left:10px; display:none;">Update</span>
								<div class="wp_cta_tooltip tool_color" title="' . $field['description'] . '"></div>';
                break;
            case 'datepicker':
                echo '<div class="jquery-date-picker inbound-datepicker" id="date-picking" data-field-type="text">
						<span class="datepair" data-language="javascript">
									Date: <input type="text" id="date-picker-' . $key . '" class="date start" /></span>
									Time: <input id="time-picker-' . $key . '" type="text" class="time time-picker" />
									<input type="hidden" name="' . $field_id . '" id="' . $field_id . '" value="' . $meta . '" class="new-date" value="" >
									<p class="description">' . $field['description'] . '</p>
							</div>';
                break;
            case 'text':
                echo '<input type="text" class="' . $option_class . '" name="' . $field_id . '" id="' . $field_id . '" value="' . $meta . '" size="30" />
								<div class="wp_cta_tooltip" title="' . $field['description'] . '"></div>';
                break;
            case 'number':
                echo '<input type="number" class="' . $option_class . '" name="' . $field_id . '" id="' . $field_id . '" value="' . $meta . '" size="30" />
								<div class="wp_cta_tooltip" title="' . $field['description'] . '"></div>';
                break;
                // textarea
            // textarea
            case 'textarea':
                echo '<textarea name="' . $field_id . '" id="' . $field_id . '" cols="106" rows="6" style="width: 75%;">' . $meta . '</textarea>
								<div class="wp_cta_tooltip tool_textarea" title="' . $field['description'] . '"></div>';
                break;
                // wysiwyg
            // wysiwyg
            case 'wysiwyg':
                echo "<div class='iframe-options iframe-options-" . $field_id . "' id='" . $field['id'] . "'>";
                wp_editor($meta, $field_id, $settings = array('editor_class' => $field['id']));
                echo '<p class="description">' . $field['description'] . '</p></div>';
                break;
                // media
            // media
            case 'media':
                //echo 1; exit;
                echo '<label for="upload_image" data-field-type="text">';
                echo '<input name="' . $field_id . '"  id="' . $field_id . '" type="text" size="36" name="upload_image" value="' . $meta . '" />';
                echo '<input class="upload_image_button" id="uploader_' . $field_id . '" type="button" value="Upload Image" />';
                echo '<p class="description">' . $field['description'] . '</p>';
                break;
                // checkbox
            // checkbox
            case 'checkbox':
                $i = 1;
                echo "<table class='wp_cta_check_box_table'>";
                if (!isset($meta)) {
                    $meta = array();
                } elseif (!is_array($meta)) {
                    $meta = array($meta);
                }
                foreach ($field['options'] as $value => $label) {
                    if ($i == 5 || $i == 1) {
                        echo "<tr>";
                        $i = 1;
                    }
                    echo '<td data-field-type="checkbox"><input type="checkbox" name="' . $field_id . '[]" id="' . $field_id . '" value="' . $value . '" ', in_array($value, $meta) ? ' checked="checked"' : '', '/>';
                    echo '<label for="' . $value . '">&nbsp;&nbsp;' . $label . '</label></td>';
                    if ($i == 4) {
                        echo "</tr>";
                    }
                    $i++;
                }
                echo "</table>";
                echo '<div class="wp_cta_tooltip tool_checkbox" title="' . $field['description'] . '"></div>';
                break;
                // radio
            // radio
            case 'radio':
                foreach ($field['options'] as $value => $label) {
                    //echo $meta.":".$field_id;
                    //echo "<br>";
                    echo '<input type="radio" name="' . $field_id . '" id="' . $field_id . '" value="' . $value . '" ', $meta == $value ? ' checked="checked"' : '', '/>';
                    echo '<label for="' . $value . '">&nbsp;&nbsp;' . $label . '</label> &nbsp;&nbsp;&nbsp;&nbsp;';
                }
                echo '<div class="wp_cta_tooltip" title="' . $field['description'] . '"></div>';
                break;
                // select
            // select
            case 'dropdown':
                echo '<select name="' . $field_id . '" id="' . $field_id . '" class="' . $field['id'] . '">';
                foreach ($field['options'] as $value => $label) {
                    echo '<option', $meta == $value ? ' selected="selected"' : '', ' value="' . $value . '">' . $label . '</option>';
                }
                echo '</select><div class="wp_cta_tooltip" title="' . $field['description'] . '"></div>';
                break;
            case 'image-select':
                echo '<select name="' . $field_id . '" id="' . $field_id . '" class="image-picker">';
                foreach ($field['options'] as $value => $label) {
                    echo '<option', $meta == $value ? ' selected="selected"' : '', ' value="' . $value . '" data-img-src="' . $extension_data[$key]['info']['urlpath'] . 'assets/img/' . $value . '.' . $field['image_type'] . '" >' . $label . '</option>';
                }
                echo '</select><div class="wp-cta-image-container" style="display:inline;min-height:200px;margin-top:10px;"></div><div class="wp_cta_tooltip" title="' . $field['description'] . '"></div>';
                break;
        }
        //end switch
        echo '</div></div>';
    }
    // end foreach
    echo '</div>';
    // end table
    //exit;
}