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' );
$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' );
$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' );
$anOptionModalBxtext = $an_option->getOption( 'an_option_modal_bxtext' );
$anOptionModalCustomCSS = $an_option->getOption( 'an_option_modal_custom_css' );
$anOptionModalShowAfter = $an_option->getOption( 'an_option_modal_after_pages' );
$anPageMD5 = '';
$anSiteID = 0;
if ( ! $anOptionModalShowAfter ) {
$anOptionModalShowAfter = 0;
} else {
$anOptionModalShowAfter = intval( $anOptionModalShowAfter );
$anPageMD5 = md5( $_SERVER['REQUEST_URI'] );
$anSiteID = an_is_pro() && is_multisite() ? get_current_blog_id() : 0;
if ( ! an_is_pro() && is_multisite() ) {
// if only free is active on a multsite, disable modal per X pages behavior
$anOptionModalShowAfter = 0;
}
}
// 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( an_get_option( 'adblocker_notify_selectors' ) );
// DOM and Json
if ( false == $anOptionSelectors ) {
$output .= '
getOption( 'an_option_modal_width' );
if ( ! empty( $anOptionModalBxWidth ) ) {
$output .= 'max-width:' . $anOptionModalBxWidth . 'px;';
}
$modalHTML = apply_filters( 'an_get_modal_html', null, $an_option );
$output .= '">
';
$output .= '';
// NO JS Redirect
if ( ! empty( $anPageNojsActivation ) && ! $_COOKIE[ AN_COOKIE ] ) {
// redirect URL with NO JS
$anNojsPermalink = an_url_redirect( $anPageNojsRedirect );
if ( 'undefined' != $anNojsPermalink ) {
$output .= '';
}
}
$output .= '';
$output = apply_filters( 'an_prepare', $output );
if ( false == $anScripts['temp-path'] && true == $an_option->getOption( 'an_option_selectors' ) ) {
$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( an_get_option( 'adblocker_notify_options' ) );
$anOptionCookie = $an_option['an_option_cookie'];
$anOptionCookieLife = $an_option['an_option_cookie_life'];
if ( isset( $an_option['an_page_nojs_activation'] ) ) {
$anPageNojsActivation = $an_option['an_page_nojs_activation'];
} else {
$anPageNojsActivation = '';
}
if ( isset( $an_option['an_page_nojs_redirect'] ) ) {
$anPageNojsRedirect = $an_option['an_page_nojs_redirect'];
} else {
$anPageNojsRedirect = '';
}
if ( ! empty( $anPageNojsActivation ) && isset( $_COOKIE[ AN_COOKIE ] ) && ! $_COOKIE[ AN_COOKIE ] ) {
// redirect URL with NO JS
$anNojsPermalink = an_url_redirect( $anPageNojsRedirect );
if ( 'undefined' != $anNojsPermalink ) {
// 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 ] ) && 2 == $anOptionCookie ) || ( isset( $_COOKIE[ AN_COOKIE ] ) && '2' == $anOptionCookie ) ) {
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.
';
}
/**
* Reset statistics
*/
function an_reset_stats() {
$prefix = an_is_pro() && is_multisite() ? '-network' : '';
$screen = get_current_screen();
if ( 'toplevel_page_' . AN_ID . $prefix != $screen->id ) {
return;
}
if ( isset( $_GET['an-reset'] ) && 'true' == $_GET['an-reset'] ) {
an_an_delete_option( 'adblocker_notify_counter' );
add_action( 'admin_notices', 'an_stats_notice' );
}
}
add_filter( 'admin_head', 'an_reset_stats' );
/**
* Get option/site option
*/
function an_get_option( $key ) {
if ( ! an_check_key( $key ) ) {
return null;
}
return apply_filters( 'an_get_option_' . $key, apply_filters( 'an_get_option', $key ) );
}
/**
* Get option
*/
function an_get_option_free( $key ) {
return get_option( $key );
}
add_filter( 'an_get_option', 'an_get_option_free', 10, 1 );
/**
* Update option/site option
*/
function an_update_option( $key, $value ) {
if ( ! an_check_key( $key ) ) {
return null;
}
return apply_filters( 'an_update_option_' . $key, apply_filters( 'an_update_option', $key, $value ) );
}
/**
* Update option
*/
function an_update_option_free( $key, $value ) {
return update_option( $key, $value );
}
add_filter( 'an_update_option', 'an_update_option_free', 10, 2 );
/**
* Delete option/site option
*/
function an_delete_option( $key ) {
if ( ! an_check_key( $key ) ) {
return null;
}
return apply_filters( 'an_delete_option_' . $key, apply_filters( 'an_delete_option', $key ) );
}
/**
* Delete option
*/
function an_delete_option_free( $key ) {
return delete_option( $key );
}
add_filter( 'an_delete_option', 'an_delete_option_free', 10, 1 );
/**
* Check if key exists
*/
function an_check_key( $key ) {
$all_keys = array(
'adblocker_notify_options',
'adblocker_notify_selectors',
'adblocker_notify_counter',
'adblocker_upgrade_200',
);
return in_array( $key, $all_keys );
}
/**
* Check if pro is activated
*/
function an_is_pro() {
return apply_filters( 'an_pro_activated', false );
}
/**
* Check if last plan is active
*/
function an_is_bussiness() {
$plan = apply_filters( 'an_pro_current_plan',1 );
return ($plan == 3) && is_multisite() && an_is_pro();
}
add_filter( 'an_get_modal_html', 'an_get_modal_html', 10, 2 );
/**
* Create the modal html
*/
function an_get_modal_html( $html, $an_option ) {
return apply_filters( 'an_build_selected_template', null );
}
add_action( 'tf_admin_page_before_adblocker_notify', 'an_add_header_panel' );
/**
*
* Show the header of the option panel
*/
function an_add_header_panel() {
?>
build( $dir . AN_TEMPLATES_DIRECTORY . $selected_template . '.php' );
return ob_get_clean();
}
add_action( 'an_upgrade_routine','an_upgrade_routine_200' );
/**
* Upgrade routine from version <= 2.0.1
*/
function an_upgrade_routine_200() {
if ( version_compare( AN_VERSION,'2.0.1' ) < 1 ) {
$upgrade = an_get_option( 'adblocker_upgrade_200','no' );
if ( $upgrade != 'yes' ) {
$anTempDir = unserialize( an_get_option( 'adblocker_notify_selectors' ) );
if ( isset( $anTempDir['temp-path'] ) ) {
an_delete_temp_folder( $anTempDir['temp-path'] );
an_save_setting_random_selectors( true );
an_update_option( 'adblocker_upgrade_200','yes' );
}
}
}
}