active) {
echo iconv('cp1252', 'UTF-8', 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 iconv('cp1252', 'UTF-8', 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'));
}
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 '';
foreach($tabs as $tab => $name) {
$class = ($tab == $current) ? ' nav-tab-active' : '';
echo "$name";
}
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';
}
?>
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-scripts/tracking-scripts.php&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;
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;
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-scripts/tracking-scripts.php&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() {
}
}
?>