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; }
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 . '"> ' . $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 . '"> ' . $label . '</label> '; } 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; }