active) { echo html_entity_decode(esc_attr($script->script_code), ENT_QUOTES, 'cp1252'); } } } } public static function find_footer_tracking_codes() { $footer_scripts = unserialize(get_option(WP_FOOTER_TRACKING_SCRIPT)); if($footer_scripts) { foreach($footer_scripts as $script) { if($script->active) { echo html_entity_decode(esc_attr($script->script_code), ENT_QUOTES, 'cp1252'); } } } } /************************************************* * Admin Area **************************************************/ public static function tracking_scripts_create_menu() { add_menu_page('Tracking Scripts', 'Tracking Scripts', 'administrator', __FILE__, array(__CLASS__, 'tracking_options'), ''); add_action('admin_init', array(__CLASS__, 'register_tracking_scripts_settings')); add_action('admin_enqueue_scripts', array(__CLASS__, 'tracking_scripts_admin_scripts')); } public static function register_tracking_scripts_settings() { register_setting( WP_TRACKING_SCRIPTS_OPTION_GROUP, WP_HEADER_TRACKING_SCRIPT, 'esc_textarea' ); register_setting( WP_TRACKING_SCRIPTS_OPTION_GROUP, WP_FOOTER_TRACKING_SCRIPT, 'esc_textarea' ); } public static function tracking_scripts_admin_tabs( $current = 'add_new' ) { $tabs = array('add_new' => 'Add New', 'existing' => 'Existing'); echo '

'; echo '

Tracking Scripts

'; echo ''; } public static function tracking_options() { global $pagenow; $settings = get_option('tracking_scripts_settings'); if(isset($_GET['tab'])) { self::tracking_scripts_admin_tabs($_GET['tab']); $pagenow = $_GET['tab']; } else { self::tracking_scripts_admin_tabs('add_new'); $pagenow = 'add_new'; } ?>

Header Scripts

Footer Scripts

Header Scripts

Footer Scripts

script_name = sanitize_text_field($_POST['new_header_script_name']); $tracking->script_code = stripslashes(esc_textarea($_POST[WP_NEW_HEADER_TRACKING_SCRIPT])); $tracking->active = true; $tracking->order = count($header_scripts); $header_scripts[] = $tracking; update_option(WP_HEADER_TRACKING_SCRIPT, serialize($header_scripts)); } if($_POST['new_footer_script_name']) { $tracking = new Tracking_Script(); $tracking->script_name = sanitize_text_field($_POST['new_footer_script_name']); $tracking->script_code = stripslashes(esc_textarea($_POST[WP_NEW_FOOTER_TRACKING_SCRIPT])); $tracking->active = true; $tracking->order = count($footer_scripts); $footer_scripts[] = $tracking; update_option(WP_FOOTER_TRACKING_SCRIPT, serialize($footer_scripts)); } wp_redirect(get_admin_url().'admin.php?page='.TRACKING_SCRIPT_BASENAME.'&tab=existing'); exit(); } function update_tracking_codes() { $header_scripts = unserialize(get_option(WP_HEADER_TRACKING_SCRIPT)); $footer_scripts = unserialize(get_option(WP_FOOTER_TRACKING_SCRIPT)); $i = 1; if($header_scripts) { foreach($header_scripts as $script) { if($_POST['header_script_'.$i.'_name']) { $script->script_name = sanitize_text_field($_POST['header_script_'.$i.'_name']); } if($_POST['header_script_'.$i.'_code']) { $script->script_code = stripslashes(esc_textarea($_POST['header_script_'.$i.'_code'])); } if($_POST['header_script_'.$i.'_active']) { if($_POST['header_script_'.$i.'_active'] === 'false') { $script->active = false; } else { $script->active = true; } } if($_POST['header_script_'.$i.'_order']) { $order = filter_input(INPUT_POST, 'header_script_'.$i.'_order', FILTER_VALIDATE_INT); if(is_int($order)) { $script->order = $order; } } if($_POST['header_script_'.$i.'_exists']) { if($_POST['header_script_'.$i.'_exists'] === 'false') { unset($header_scripts[$i-1]); } } $i++; } } $i = 1; if($footer_scripts) { foreach($footer_scripts as $script) { if($_POST['footer_script_'.$i.'_name']) { $script->script_name = sanitize_text_field($_POST['footer_script_'.$i.'_name']); } if($_POST['footer_script_'.$i.'_code']) { $script->script_code = stripslashes(esc_textarea($_POST['footer_script_'.$i.'_code'])); } if($_POST['footer_script_'.$i.'_active']) { if($_POST['footer_script_'.$i.'_active'] === 'false') { $script->active = false; } else { $script->active = true; } } if($_POST['footer_script_'.$i.'_order']) { $order = filter_input(INPUT_POST, 'footer_script_'.$i.'_order', FILTER_VALIDATE_INT); if(is_int($order)) { $script->order = $order; } } if($_POST['footer_script_'.$i.'_exists']) { if($_POST['footer_script_'.$i.'_exists'] === 'false') { unset($footer_scripts[$i-1]); } } $i++; } } usort($header_scripts, array(__CLASS__, 'compare_order')); usort($footer_scripts, array(__CLASS__, 'compare_order')); update_option(WP_HEADER_TRACKING_SCRIPT, serialize($header_scripts)); update_option(WP_FOOTER_TRACKING_SCRIPT, serialize($footer_scripts)); wp_redirect(get_admin_url().'admin.php?page='.TRACKING_SCRIPT_BASENAME.'&tab=existing'); exit(); } public static function compare_order($a, $b) { return ($a->order < $b->order) ? -1 : 1; } } $class['Tracking_Scripts'] = new Tracking_Scripts(); } class Tracking_Script { public $script_name; public $script_code; public $active; public $order; function __construct() { } } ?>