getOption( 'an_option_choice' ); $anOptionStats = $an_option->getOption( 'an_option_stats' ); $anOptionSelectors = $an_option->getOption( 'an_option_selectors' ); $anOptionAdsSelectors = $an_option->getOption( 'an_option_ads_selectors' ); $anOptionCookie = $an_option->getOption( 'an_option_cookie' ); $anOptionCookieLife = $an_option->getOption( 'an_option_cookie_life' ); $anModalTitle = $an_option->getOption( 'an_modal_title' ); $anModalText = $an_option->getOption( 'an_modal_text' ); $anPageRedirect = $an_option->getOption( 'an_page_redirect' ); $anPageNojsActivation = $an_option->getOption( 'an_page_nojs_activation' ); $anPageNojsRedirect = $an_option->getOption( 'an_page_nojs_redirect' ); //Modal Options $anOptionModalEffect = $an_option->getOption( 'an_option_modal_effect' ); $anOptionModalSpeed = $an_option->getOption( 'an_option_modal_speed' ); $anOptionModalCross = $an_option->getOption( 'an_option_modal_cross' ); $anOptionModalClose = $an_option->getOption( 'an_option_modal_close' ); $anOptionModalBgcolor = $an_option->getOption( 'an_option_modal_bgcolor' ); $anOptionModalBgopacity = $an_option->getOption( 'an_option_modal_bgopacity' ); $anOptionModalBxcolor = $an_option->getOption( 'an_option_modal_bxcolor' ); $anOptionModalBxtitle = $an_option->getOption( 'an_option_modal_bxtitle' ); $anOptionModalBxtext = $an_option->getOption( 'an_option_modal_bxtext' ); $anOptionModalCustomCSS = $an_option->getOption( 'an_option_modal_custom_css' ); //Modal Options $anAlternativeActivation = $an_option->getOption( 'an_alternative_activation' ); $anAlternativeElement = $an_option->getOption( 'an_alternative_elements' ); $anAlternativeText = $an_option->getOption( 'an_alternative_text' ); $anAlternativeClone = $an_option->getOption( 'an_alternative_clone' ); $anAlternativeProperties = $an_option->getOption( 'an_alternative_properties' ); $anAlternativeCss = $an_option->getOption( 'an_alternative_custom_css' ); //redirect URL with JS $anPermalink = an_url_redirect($anPageRedirect); //Modal box effect $anOptionModalEffect = an_modal_parameter($anOptionModalEffect); //Modal box close $anOptionModalClose = an_modal_close($anOptionModalClose); //Style construct //Overlay RGA color $anOptionModalOverlay = an_hex2rgba($anOptionModalBgcolor, $anOptionModalBgopacity / 100); //Load random selectors $anScripts = unserialize(get_option( 'adblocker_notify_selectors' )); //DOM and Json if ( $anOptionSelectors == false ) { $output .= '
$anOptionChoice, 'anOptionStats' => $anOptionStats, 'anOptionAdsSelectors' => preg_replace('/\s+/', '', $anOptionAdsSelectors), 'anOptionCookie' => $anOptionCookie, 'anOptionCookieLife' => $anOptionCookieLife, 'anModalTitle' => $anModalTitle, 'anModalText' => do_shortcode( $anModalText ), 'anPageRedirect' => $anPageRedirect, 'anPermalink' => $anPermalink, 'anOptionModalEffect' => $anOptionModalEffect, 'anOptionModalspeed' => $anOptionModalSpeed, 'anOptionModalCross' => $anOptionModalCross, 'anOptionModalclose' => $anOptionModalClose, 'anOptionModalOverlay' => $anOptionModalOverlay, 'anOptionModalBxtitle' => $anOptionModalBxtitle, 'anAlternativeActivation' => $anAlternativeActivation, 'anAlternativeElement' => $anAlternativeElement, 'anAlternativeText' => do_shortcode( $anAlternativeText ), 'anAlternativeClone' => $anAlternativeClone, 'anAlternativeProperties' => $anAlternativeProperties, )); $output .= '/* ]]> */'; $output .= ''; //NO JS Redirect if (!empty($anPageNojsActivation) && !$_COOKIE[AN_COOKIE]) { //redirect URL with NO JS $anNojsPermalink = an_url_redirect($anPageNojsRedirect); if ($anNojsPermalink != "undefined") { $output .= ''; } } $output .= ''; $output = apply_filters( 'an_prepare', $output); if ( $anScripts[ 'temp-path' ] == false && $an_option->getOption( 'an_option_selectors' ) == true ) $output .= an_print_change_files_css_selectors($an_option, $anScripts); echo $output; } add_action( 'wp_footer', 'an_prepare' ); /*************************************************************** * Dealing with cookies before page load to * prevent Header already sent notice ***************************************************************/ function an_cookies_init() { $an_option = unserialize(get_option( 'adblocker_notify_options' )); $anOptionCookie = $an_option[ 'an_option_cookie' ]; $anPageNojsActivation = $an_option[ 'an_page_nojs_activation' ]; $anPageNojsRedirect = $an_option[ 'an_page_nojs_redirect' ]; $anOptionCookieLife = $an_option[ 'an_option_cookie_life' ]; if (!empty($anPageNojsActivation) && !$_COOKIE[AN_COOKIE]) { //redirect URL with NO JS $anNojsPermalink = an_url_redirect($anPageNojsRedirect); if ($anNojsPermalink != "undefined") { //Set new cookie value an_nojs_cookie($anOptionCookieLife); } } //remove cookie if deactivate an_remove_cookie($anOptionCookie); } add_action( 'init', 'an_cookies_init' ); /*************************************************************** * Generate redirection URL with page ID ***************************************************************/ function an_url_redirect($pageId) { if (is_main_query()) { $currentPage = get_queried_object_id(); } else { global $wp; $current_url = add_query_arg($wp->query_string, '', home_url($wp->request)); $currentPage = url_to_postid($current_url); } if (!empty($pageId) && $pageId != $currentPage) { $anPermalink = get_permalink($pageId); } else { $anPermalink = "undefined"; } return $anPermalink; } /*************************************************************** * Remove cookie when option is disabled ***************************************************************/ function an_remove_cookie($anOptionCookie) { if (( isset($_COOKIE[AN_COOKIE]) && $anOptionCookie == 2 ) || ( isset($_COOKIE[AN_COOKIE]) && $anOptionCookie == '2' )) { unset($_COOKIE[AN_COOKIE]); setcookie(AN_COOKIE, null, -1, '/' ); } } /*************************************************************** * Set cookie for No JS redirection. ***************************************************************/ function an_nojs_cookie($expiration) { $expiration = time() + ($expiration * 24 * 60 * 60); if (!isset($_COOKIE[AN_COOKIE])) { setcookie(AN_COOKIE, true, $expiration, '/' ); } } /*************************************************************** * Modal Box effect parameter ***************************************************************/ function an_modal_parameter($key) { switch ($key) { case '': case 1: $key = 'fadeAndPop'; break; case 2: $key = 'fade'; break; case 3: $key = 'none'; break; default : $key = 'fadeAndPop'; break; } return $key; } /*************************************************************** * Modal Boxe closing option ***************************************************************/ function an_modal_close($key) { switch ($key) { case '': case 1: $key = true; break; case 2: $key = false; break; default : $key = true; break; } return $key; } /*************************************************************** * Convert hexdec color string to rgb(a) string * Src: http://mekshq.com/how-to-convert-hexadecimal-color-code-to-rgb-or-rgba-using-php/ ***************************************************************/ function an_hex2rgba($color, $opacity = false) { $default = 'rgb(0,0,0)'; //Return default if no color provided if (empty($color)) return $default; //Sanitize $color if "#" is provided if ($color[0] == '#' ) { $color = substr($color, 1); } //Check if color has 6 or 3 characters and get values if (strlen($color) == 6) { $hex = array($color[0] . $color[1], $color[2] . $color[3], $color[4] . $color[5]); } elseif (strlen($color) == 3) { $hex = array($color[0] . $color[0], $color[1] . $color[1], $color[2] . $color[2]); } else { return $default; } //Convert hexadec to rgb $rgb = array_map( 'hexdec', $hex); //Check if opacity is set(rgba or rgb) if ($opacity) { if (abs($opacity) > 1) $opacity = 1.0; $output = 'rgba( ' . implode(",", $rgb) . ',' . $opacity . ' )'; } else { $output = 'rgb( ' . implode(",", $rgb) . ' )'; } //Return rgb(a) color string return $output; } /*************************************************************** * Reset plugin options ***************************************************************/ function an_stats_notice() { echo '

Adblock Notify stats have been successfully cleared.

'; } function an_reset_stats() { $screen = get_current_screen(); if ( $screen->id != 'toplevel_page_'. AN_ID ) return; if( isset( $_GET[ 'an-reset' ] ) && $_GET[ 'an-reset' ] == 'true' ){ delete_option( 'adblocker_notify_counter' ); add_action( 'admin_notices', 'an_stats_notice' ); } } add_filter( 'admin_head', 'an_reset_stats' );