_amp_conditions = array(
'adsforwp_after_featured_image',
'adsforwp_below_the_header',
'adsforwp_below_the_footer',
'adsforwp_above_the_footer',
'adsforwp_above_the_post_content',
'adsforwp_below_the_post_content',
'adsforwp_below_the_title',
'adsforwp_above_related_post',
'adsforwp_below_author_box',
'adsforwp_ads_in_loops'
);
$this->_display_tag_list = array(
'
' => 'p_tag',
'' => 'div_tag',
'
' => 'img_tag',
);
if(!is_admin()){
add_action( 'init', array( $this, 'init' ) );
}
}
/**
* We are here calling all required hooks
*/
public function adsforwp_hooks(){
//Adsense Auto Ads hooks for amp and non amp starts here
add_filter('widget_text', 'do_shortcode');
add_action('wp_head', array($this, 'adsforwp_adblocker_detector'));
add_action('wp_head', array($this, 'adsforwp_adsense_auto_ads'));
//Background Ad
add_action('amp_post_template_head',array($this, 'adsforwp_adsense_auto_ads_amp_script'),1);
add_action('amp_post_template_footer',array($this, 'adsforwp_adsense_auto_ads_amp_tag'));
//Adsense Auto Ads hooks for amp and non amp ends here
add_filter('the_content', array($this, 'adsforwp_display_ads'));
add_shortcode('adsforwp', array($this,'adsforwp_manual_ads'));
add_shortcode('adsforwp-group', array($this, 'adsforwp_group_ads'));
add_action('wp_ajax_nopriv_adsforwp_get_groups_ad', array($this, 'adsforwp_get_groups_ad'));
add_action('wp_ajax_adsforwp_get_groups_ad', array($this, 'adsforwp_get_groups_ad'));
//Hooks for sticky ads
add_action('wp_footer', array($this, 'adsforwp_display_sticky_ads'));
add_action('amp_post_template_css',array($this, 'adsforwp_enque_amp_script'));
add_action('amp_post_template_footer',array($this, 'adsforwp_display_sticky_ads_amp'));
add_action('wp_ajax_nopriv_adsforwp_update_amp_sticky_ad_status', array($this, 'adsforwp_update_amp_sticky_ad_status'));
add_action('wp_ajax_nopriv_adsforwp_check_amp_sticky_ad_status', array($this, 'adsforwp_check_amp_sticky_ad_status'));
add_action('wp_ajax_adsforwp_update_amp_sticky_ad_status', array($this, 'adsforwp_update_amp_sticky_ad_status'));
add_action('wp_ajax_adsforwp_check_amp_sticky_ad_status', array($this, 'adsforwp_check_amp_sticky_ad_status'));
add_action('amp_post_template_css',array($this, 'adsforwp_background_ad_css'));
}
public function init(){
add_action('adsforwp_after_body', array($this, 'adsforwp_display_background_ad'));
add_action('adsforwp_before_body', array($this, 'adsforwp_display_background_before_body'));
ob_start(array($this, "adsforwp_display_custom_target_ad"));
}
public function adsforwp_display_custom_target_ad($content){
//For single ad starts here
$all_ads_id = json_decode(get_transient('adsforwp_transient_ads_ids'), true);
if(!empty($all_ads_id)){
foreach($all_ads_id as $ad_id){
$wheretodisplay = get_post_meta($ad_id,$key='wheretodisplay',true);
if($wheretodisplay == 'custom_target'){
$ad_code = $this->adsforwp_get_ad_code($ad_id, $type="AD");
$post_meta = get_post_meta($ad_id,$key='',true);
if(adsforwp_rmv_warnings($post_meta, 'adsforwp_custom_target_position', 'adsforwp_array') == 'existing_element'){
$action = adsforwp_rmv_warnings($post_meta, 'adsforwp_existing_element_action', 'adsforwp_array');
$jquery_selector = adsforwp_rmv_warnings($post_meta, 'adsforwp_jquery_selector', 'adsforwp_array');
switch ($action) {
case 'prepend_content':
$explod_elemnet ='';
if(strchr($jquery_selector, '#')){
$jquery_selector = str_replace('#', '', $jquery_selector);
$jquery_selector = str_replace('.', '', $jquery_selector);
preg_match_all('/<[^>]*id="[^"]*\b'.$jquery_selector.'\b[^"]*"[^>]*>/', $content, $matches);
$explod_elemnet = explode(' ', $matches[0][0]);
$content = str_replace($matches[0][0], $ad_code.$explod_elemnet[0].' id="'.$jquery_selector.'">', $content);
}
if(strchr($jquery_selector, '.')){
$jquery_selector = str_replace('.', '', $jquery_selector);
preg_match_all('/<[^>]*class="[^"]*\b'.$jquery_selector.'\b[^"]*"[^>]*>/', $content, $matches);
$explod_elemnet = explode(' ', $matches[0][0]);
$content = str_replace($matches[0][0], $ad_code.$explod_elemnet[0].' class="'.$jquery_selector.'">', $content);
}
break;
case 'append_content':
$explod_elemnet ='';
if(strchr($jquery_selector, '#')){
$jquery_selector = str_replace('#', '', $jquery_selector);
preg_match_all('/<[^>]*id="[^"]*\b'.$jquery_selector.'\b[^"]*"[^>]*>/', $content, $matches);
$explod_elemnet = explode(' ', $matches[0][0]);
$content = str_replace($matches[0][0], $explod_elemnet[0].' id="'.$jquery_selector.'">'.$ad_code, $content);
}
if(strchr($jquery_selector, '.')){
$jquery_selector = str_replace('.', '', $jquery_selector);
preg_match_all('/<[^>]*class="[^"]*\b'.$jquery_selector.'\b[^"]*"[^>]*>/', $content, $matches);
$explod_elemnet = explode(' ', $matches[0][0]);
$content = str_replace($matches[0][0], $explod_elemnet[0].' class="'.$jquery_selector.'">'.$ad_code, $content);
}
break;
default:
break;
}
}
if(adsforwp_rmv_warnings($post_meta, 'adsforwp_custom_target_position', 'adsforwp_array') == 'new_element'){
$new_element_div = html_entity_decode(adsforwp_rmv_warnings($post_meta, 'adsforwp_new_element', 'adsforwp_array'));
$content = str_replace($new_element_div, $ad_code, $content);
}
}
}
}
//For single ad ends here
//For group ads starts here
$all_ads_id = json_decode(get_transient('adsforwp_groups_transient_ids'), true);
if(!empty($all_ads_id)){
foreach($all_ads_id as $ad_id){
$wheretodisplay = get_post_meta($ad_id,$key='wheretodisplay',true);
if($wheretodisplay == 'custom_target'){
$widget='';
$ad_code = $this->$this->adsforwp_group_ads($atts=null, $ad_id, $widget);
$post_meta = get_post_meta($ad_id,$key='',true);
if(adsforwp_rmv_warnings($post_meta, 'adsforwp_custom_target_position', 'adsforwp_array') == 'existing_element'){
$action = adsforwp_rmv_warnings($post_meta, 'adsforwp_existing_element_action', 'adsforwp_array');
$jquery_selector = adsforwp_rmv_warnings($post_meta, 'adsforwp_jquery_selector', 'adsforwp_array');
switch ($action) {
case 'prepend_content':
$explod_elemnet ='';
if(strchr($jquery_selector, '#')){
$jquery_selector = str_replace('#', '', $jquery_selector);
$jquery_selector = str_replace('.', '', $jquery_selector);
preg_match_all('/<[^>]*id="[^"]*\b'.$jquery_selector.'\b[^"]*"[^>]*>/', $content, $matches);
$explod_elemnet = explode(' ', $matches[0][0]);
$content = str_replace($matches[0][0], $ad_code.$explod_elemnet[0].' id="'.$jquery_selector.'">', $content);
}
if(strchr($jquery_selector, '.')){
$jquery_selector = str_replace('.', '', $jquery_selector);
preg_match_all('/<[^>]*class="[^"]*\b'.$jquery_selector.'\b[^"]*"[^>]*>/', $content, $matches);
$explod_elemnet = explode(' ', $matches[0][0]);
$content = str_replace($matches[0][0], $ad_code.$explod_elemnet[0].' class="'.$jquery_selector.'">', $content);
}
break;
case 'append_content':
$explod_elemnet ='';
if(strchr($jquery_selector, '#')){
$jquery_selector = str_replace('#', '', $jquery_selector);
preg_match_all('/<[^>]*id="[^"]*\b'.$jquery_selector.'\b[^"]*"[^>]*>/', $content, $matches);
$explod_elemnet = explode(' ', $matches[0][0]);
$content = str_replace($matches[0][0], $explod_elemnet[0].' id="'.$jquery_selector.'">'.$ad_code, $content);
}
if(strchr($jquery_selector, '.')){
$jquery_selector = str_replace('.', '', $jquery_selector);
preg_match_all('/<[^>]*class="[^"]*\b'.$jquery_selector.'\b[^"]*"[^>]*>/', $content, $matches);
$explod_elemnet = explode(' ', $matches[0][0]);
$content = str_replace($matches[0][0], $explod_elemnet[0].' class="'.$jquery_selector.'">'.$ad_code, $content);
}
break;
default:
break;
}
}
if(adsforwp_rmv_warnings($post_meta, 'adsforwp_custom_target_position', 'adsforwp_array') == 'new_element'){
$new_element_div = html_entity_decode(adsforwp_rmv_warnings($post_meta, 'adsforwp_new_element', 'adsforwp_array'));
$content = str_replace($new_element_div, $ad_code, $content);
}
}
}
}
//For group ads ends here
return $content;
}
public function adsforwp_enque_amp_script(){
?>
.adsforwp-stick-ad{
padding-top:20px;
}
.afw_ad_amp_achor{
text-align:center;
}
.adsforwp-sticky-ad-close {
position: absolute;
right: 0px;
top: 0px;
padding:2px;
cursor:pointer;
color:#000;
background-color:#fff;
border: #fff;
}
.adsforwp-sticky-ad-close:after{
display: inline-block;
content: "\00d7";
}
adsforwp_check_ads_in_group($ad_id);
if(isset($_COOKIE['adsforwp-stick-ad-id7'])){
$ad_id_list = $_COOKIE['adsforwp-stick-ad-id7'];
$explod_ad_id = explode(',', $ad_id_list);
}
$wheretodisplay = get_post_meta($ad_id,$key='wheretodisplay',true);
if(get_post_type($ad_id) =='adsforwp-groups'){
if($wheretodisplay == 'sticky' && !in_array($ad_id, $explod_ad_id)){
echo json_encode(array('showNotification'=>true));
}else{
echo json_encode(array('showNotification'=>false));
}
}else{
if($wheretodisplay == 'sticky' && !in_array($ad_id, $explod_ad_id) && empty($in_group)){
echo json_encode(array('showNotification'=>true));
}else{
echo json_encode(array('showNotification'=>false));
}
}
wp_die();
}
public function adsforwp_display_sticky_ads_amp(){
//Ads stick starts here
$all_ads_id = json_decode(get_transient('adsforwp_transient_ads_ids'), true);
$nonce = wp_create_nonce('adsforwp_ajax_check_front_nonce');
if(!empty($all_ads_id)){
foreach($all_ads_id as $ad_id){
$wheretodisplay = get_post_meta($ad_id,$key='wheretodisplay',true);
if($wheretodisplay == 'sticky'){
$ad_code = $this->adsforwp_get_ad_code($ad_id, $type="AD");
if($ad_code){
$showurl = admin_url('admin-ajax.php?action=adsforwp_check_amp_sticky_ad_status×tamp='.time().'&adsforwp_front_nonce='.$nonce.'&ad_id='.$ad_id);
$dismissurl = admin_url('admin-ajax.php?action=adsforwp_update_amp_sticky_ad_status×tamp='.time().'&adsforwp_front_nonce='.$nonce.'&ad_id='.$ad_id);
echo '
'.$ad_code.'
';
}
}
}
}
//Ads stick ends here
//Group stick starts here
$all_group_post = json_decode(get_transient('adsforwp_groups_transient_ids'), true);
if(!empty($all_group_post)){
foreach($all_group_post as $ad_id){
$wheretodisplay = get_post_meta($ad_id,$key='wheretodisplay',true);
if($wheretodisplay == 'sticky'){
$widget ='';
$ad_code = $this->$this->adsforwp_group_ads($atts=null, $ad_id, $widget);
if($ad_code){
$showurl = admin_url('admin-ajax.php?action=adsforwp_check_amp_sticky_ad_status×tamp='.time().'&adsforwp_front_nonce='.$nonce.'&ad_id='.$ad_id);
$dismissurl = admin_url('admin-ajax.php?action=adsforwp_update_amp_sticky_ad_status×tamp='.time().'&adsforwp_front_nonce='.$nonce.'&ad_id='.$ad_id);
echo '
'.$ad_code.'
';
}
}
}
}
//Group stick ends here
}
public function adsforwp_display_sticky_ads(){
$explod_ad_id = array();
if(isset($_COOKIE['adsforwp-stick-ad-id7'])){
$ad_id_list = $_COOKIE['adsforwp-stick-ad-id7'];
$explod_ad_id = explode(',', $ad_id_list);
}
$common_function_obj = new adsforwp_admin_common_functions();
//Ads Sticky starts here
$ad_code ='';
$all_ads_id = json_decode(get_transient('adsforwp_transient_ads_ids'), true);
if(!empty($all_ads_id)){
foreach($all_ads_id as $ad_id){
$in_group = $common_function_obj->adsforwp_check_ads_in_group($ad_id);
$wheretodisplay = get_post_meta($ad_id,$key='wheretodisplay',true);
if($wheretodisplay == 'sticky' && !in_array($ad_id, $explod_ad_id) && empty($in_group)){
$ad_code .= $this->adsforwp_get_ad_code($ad_id, $type="AD");
}
}
}
if($ad_code){
echo '';
}
//Ads Sticky ends here
//Group Sticky starts here
$all_group_post = array();
$group_ad_code ='';
$all_group_post = json_decode(get_transient('adsforwp_groups_transient_ids'), true);
if(!empty($all_group_post)){
foreach($all_group_post as $ad_id){
$widget = '';
$wheretodisplay = get_post_meta($ad_id,$key='wheretodisplay',true);
if($wheretodisplay == 'sticky' && !in_array($ad_id, $explod_ad_id)){
$group_ad_code .= $this->adsforwp_group_ads($atts=null, $ad_id, $widget);
}
}
}
if($group_ad_code){
echo '';
}
//Group Sticky ends here
}
/**
* This function returns publisher id or data ad client id for adsense ads
* @return type
*/
public function adsforwp_get_pub_id_on_revenue_percentage(){
$settings = adsforwp_defaultSettings();
$ad_revenue_sharing = '';
$ad_owner_revenue_per = '';
$ad_author_revenue_per = '';
$display_per_in_minute = '';
$author_adsense_ids = array();
if(array_key_exists('ad_revenue_sharing', $settings)){
$ad_revenue_sharing = adsforwp_rmv_warnings($settings, 'ad_revenue_sharing', 'adsforwp_string');
$ad_owner_revenue_per = adsforwp_rmv_warnings($settings, 'ad_owner_revenue_per', 'adsforwp_string');
$ad_author_revenue_per = adsforwp_rmv_warnings($settings, 'ad_author_revenue_per', 'adsforwp_string');
$display_per_in_minute = (60*$ad_owner_revenue_per)/100;
}
$current_second = date("s");
if((!($current_second <= $display_per_in_minute)) && isset($settings['ad_revenue_sharing'])){
$author_adsense_ids['author_pub_id'] = get_the_author_meta( 'adsense_pub_id' );
$author_adsense_ids['author_ad_slot_id'] = get_the_author_meta( 'adsense_ad_slot_id' );
}
return $author_adsense_ids;
}
public function adsforwp_get_adsense_publisher_id(){
$data_ad_client ='';
$response = array();
$cc_args = array(
'posts_per_page' => -1,
'post_type' => 'adsforwp',
'meta_key' => 'adsense_type',
'meta_value' => 'adsense_auto_ads',
);
$postdata = new WP_Query($cc_args);
$auto_adsense_post = $postdata->posts;
if($postdata->post_count >0){
$data_ad_client = get_post_meta($auto_adsense_post[0]->ID,$key='data_client_id',true);
$author_adsense_ids = $this->adsforwp_get_pub_id_on_revenue_percentage();
if($author_adsense_ids){
$author_pub_id = adsforwp_rmv_warnings($author_adsense_ids, 'author_pub_id', 'adsforwp_string');
if($author_pub_id){
$data_ad_client = $author_pub_id;
}
}
$response = array('post_id' => $auto_adsense_post[0]->ID, 'data_ad_client' => $data_ad_client);
}
return $response;
}
/**
* we are here displaying background ad
*/
public function adsforwp_enque_amp_bg_ad_script(){
?>
adsforwp_get_post_conditions_status($ad_id);
$visitor_condition_status = $visitor_condition_obj->adsforwp_visitor_conditions_status($ad_id);
if (( $condition_status ===1 || $condition_status === true || $condition_status==='notset' ) && ( $visitor_condition_status ===1 || $visitor_condition_status === true || $visitor_condition_status==='notset' )) {
$after_body ='';
$media_value_meta = get_post_meta( $ad_id, 'ad_background_image_detail', true );
if ((function_exists( 'ampforwp_is_amp_endpoint' ) && ampforwp_is_amp_endpoint()) || function_exists( 'is_amp_endpoint' ) && is_amp_endpoint()) {
$this->is_amp = true;
}else{
echo '';
}
if(isset($media_value_meta)){
$redirect_url = get_post_meta( $ad_id, 'ad_background_redirect_url', true );
$after_body.=''
. '
'
. ''
. '
';
}
return $after_body;
}
}
}
}
}
public function adsforwp_display_background_before_body(){
$all_ads_id = json_decode(get_transient('adsforwp_transient_ads_ids'), true);
if($all_ads_id){
$placement_obj = new adsforwp_view_placement();
$visitor_condition_obj = new adsforwp_view_visitor_condition();
foreach ($all_ads_id as $ad_id){
$post_type = get_post_meta( $ad_id, 'select_adtype', true );
if($post_type == 'ad_background'){
$condition_status = $placement_obj->adsforwp_get_post_conditions_status($ad_id);
$visitor_condition_status = $visitor_condition_obj->adsforwp_visitor_conditions_status($ad_id);
if (( $condition_status ===1 || $condition_status === true || $condition_status==='notset' ) && ( $visitor_condition_status ===1 || $visitor_condition_status === true || $visitor_condition_status==='notset' )) {
$media_value_meta = get_post_meta( $ad_id, 'ad_background_image_detail', true );
$before_body ='';
if(isset($media_value_meta)){
$before_body.='
';
}
return $before_body;
}
}
}
}
}
public function adsforwp_background_ad_css(){
$all_ads_id = json_decode(get_transient('adsforwp_transient_ads_ids'), true);
if($all_ads_id){
$placement_obj = new adsforwp_view_placement();
$visitor_condition_obj = new adsforwp_view_visitor_condition();
foreach ($all_ads_id as $ad_id){
$post_type = get_post_meta( $ad_id, 'select_adtype', true );
if($post_type == 'ad_background'){
$condition_status = $placement_obj->adsforwp_get_post_conditions_status($ad_id);
$visitor_condition_status = $visitor_condition_obj->adsforwp_visitor_conditions_status($ad_id);
if (( $condition_status ===1 || $condition_status === true || $condition_status==='notset' ) && ( $visitor_condition_status ===1 || $visitor_condition_status === true || $visitor_condition_status==='notset' )) {
$media_value_meta = get_post_meta( $ad_id, 'ad_background_image_detail', true );
$design = ampforwp_get_setting('amp-design-selector');
if(isset($media_value_meta)){
?>
.adsforwp-bg-ad{
background-image:url();
position: fixed;
top: 0;
left: 0;
height: 100%;
width: 100%;
background-position: center;
background-repeat: no-repeat;
background-size: cover;
}
.adsforwp-bg-content{
z-index:1;
margin: auto;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
.h_m{
z-index: 1;
position: relative;
}
.content-wrapper{
position: relative;
z-index: 0;
margin: 0 16%
}
.cntr, .amp-wp-article{
background:#ffffff;
}
.footer{
background:#ffffff;
}
@media(max-width:768px){
.adsforwp-bg-ad{
position:relative;
}
.content-wrapper{
margin:0;
}
}
adsforwp_get_adsense_publisher_id();
if($result){
$post_id = adsforwp_rmv_warnings($result, 'post_id', 'adsforwp_string');
$placement_obj = new adsforwp_view_placement();
$condition_status = $placement_obj->adsforwp_get_post_conditions_status($post_id);
$visitor_condition_obj = new adsforwp_view_visitor_condition();
$visitor_condition_status = $visitor_condition_obj->adsforwp_visitor_conditions_status($post_id);
if (( $condition_status ===1 || $condition_status === true || $condition_status==='notset' ) && ( $visitor_condition_status ===1 || $visitor_condition_status === true || $visitor_condition_status==='notset' )) {
echo '';
}
}
}
/**
* we are here integrating adsense auto ads amp tag for amp posts
*/
public function adsforwp_adsense_auto_ads_amp_tag(){
$result = $this->adsforwp_get_adsense_publisher_id();
if($result){
$post_id = $result['post_id'];
$content = '
';
$this->adsforwp_adsense_auto_ads_content($content, $post_id);
}
}
/**
* we are here integrating adsense auto ads for ever non amp posts
*/
public function adsforwp_adsense_auto_ads(){
$result = $this->adsforwp_get_adsense_publisher_id();
if($result){
$post_id = adsforwp_rmv_warnings($result, 'post_id', 'adsforwp_string');
$content = '
';
$this->adsforwp_adsense_auto_ads_content($content, $post_id);
}
}
public function adsforwp_adsense_auto_ads_content($content, $post_id){
$placement_obj = new adsforwp_view_placement();
$condition_status = $placement_obj->adsforwp_get_post_conditions_status($post_id);
$visitor_condition_obj = new adsforwp_view_visitor_condition();
$visitor_condition_status = $visitor_condition_obj->adsforwp_visitor_conditions_status($post_id);
if (( $condition_status ===1 || $condition_status === true || $condition_status==='notset' ) && ( $visitor_condition_status ===1 || $visitor_condition_status === true || $visitor_condition_status==='notset' )) {
$current_post_data = get_post_meta(get_the_ID(),$key='',true);
if(isset($current_post_data['ads-for-wp-visibility'])){
$this->visibility = $current_post_data['ads-for-wp-visibility'][0];
}
if($this->visibility != 'hide') {
$post_meta_dataset = get_post_meta($post_id,$key='',true);
$current_date = date("Y-m-d");
$ad_expire_enable = adsforwp_rmv_warnings($post_meta_dataset, 'adsforwp_ad_expire_day_enable', 'adsforwp_array');
$ad_expire_from = adsforwp_rmv_warnings($post_meta_dataset, 'adsforwp_ad_expire_from', 'adsforwp_array');
$ad_expire_to = adsforwp_rmv_warnings($post_meta_dataset, 'adsforwp_ad_expire_to', 'adsforwp_array');
$ad_days_enable = adsforwp_rmv_warnings($post_meta_dataset, 'adsforwp_ad_expire_day_enable', 'adsforwp_array');
$ad_expire_days = get_post_meta($post_id,$key='adsforwp_ad_expire_days',true);
if($ad_expire_enable){
if($ad_expire_from && $ad_expire_to ) {
if($ad_expire_from <= $current_date && $ad_expire_to >=$current_date){
if($ad_days_enable){
foreach ($ad_expire_days as $days){
if(date('Y-m-d', strtotime($days))==$current_date){
echo $content;
}
}
}else{
echo $content;
}
}
}else{
echo $content;
}
}else{
if($ad_days_enable){
foreach ($ad_expire_days as $days){
if(date('Y-m-d', strtotime($days))==$current_date){
echo $content;
}
}
}else{
echo $content;
}
}
}
}
}
/**
* This hook function display content in post. we are modifying post content here
* @param type $content
* @return type string
*/
public function adsforwp_display_ads($content){
$current_post_data = get_post_meta(get_the_ID(),$key='',true);
if(isset($current_post_data['ads-for-wp-visibility'])){
$this->visibility = $current_post_data['ads-for-wp-visibility'][0];
}
if ((function_exists( 'ampforwp_is_amp_endpoint' ) && ampforwp_is_amp_endpoint()) || function_exists( 'is_amp_endpoint' ) && is_amp_endpoint()) {
$this->is_amp = true;
}
if($this->visibility != 'hide') {
//Ads positioning starts here
$all_ads_post = json_decode(get_transient('adsforwp_transient_ads_ids'), true);
if($all_ads_post){
foreach($all_ads_post as $ads){
$post_ad_id = $ads;
$common_function_obj = new adsforwp_admin_common_functions();
$in_group = $common_function_obj->adsforwp_check_ads_in_group($post_ad_id);
if(empty($in_group)){
$amp_display_condition = get_post_meta($post_ad_id,$key='wheretodisplayamp',true);
if(in_array($amp_display_condition, $this->_amp_conditions) && $this->is_amp){
return $content;
}
$where_to_display ="";
$adposition ="";
$post_meta_dataset = array();
$post_meta_dataset = get_post_meta($post_ad_id,$key='',true);
$ad_code = $this->adsforwp_get_ad_code($post_ad_id, $type="AD");
$where_to_display = adsforwp_rmv_warnings($post_meta_dataset, 'wheretodisplay', 'adsforwp_array');
$adposition = adsforwp_rmv_warnings($post_meta_dataset, 'adposition', 'adsforwp_array');
//Displays all ads according to their settings paragraphs starts here
switch ($where_to_display) {
case 'after_the_content':
$content = $content.$ad_code;
break;
case 'before_the_content':
$content = $ad_code.$content;
break;
case 'between_the_content':
if($adposition == 'number_of_paragraph'){
$entered_tag_name ='';
$display_tag_name ='';
$paragraph_id = adsforwp_rmv_warnings($post_meta_dataset, 'paragraph_number', 'adsforwp_array');
$display_tag_name = adsforwp_rmv_warnings($post_meta_dataset, 'display_tag_name', 'adsforwp_array');
$entered_tag_name = ''.adsforwp_rmv_warnings($post_meta_dataset, 'entered_tag_name', 'adsforwp_array').'>';
if($display_tag_name !=''){
if($display_tag_name == 'custom_tag'){
$closing_p = $entered_tag_name;
}else{
$closing_p = array_search($display_tag_name,$this->_display_tag_list);
}
}else{
$closing_p = '';
}
if($closing_p == '
'){
if($paragraph_id){
preg_match_all( '/
]+\>/' , $content, $match );
$adsforwp_images = array_pop($match);
$image_ad = $adsforwp_images[$paragraph_id-1].$ad_code;
$content = str_replace( $adsforwp_images[$paragraph_id-1], $image_ad, $content );
}
}else{
$paragraphs = explode( $closing_p, $content );
foreach ($paragraphs as $index => $paragraph) {
if ( trim( $paragraph ) ) {
$paragraphs[$index] .= $closing_p;
}
if ( $paragraph_id == $index + 1 ) {
$paragraphs[$index] .= $ad_code;
}
}
$content = implode( '', $paragraphs );
}
}
if($adposition == '50_of_the_content'){
$closing_p = '';
$paragraphs = explode( $closing_p, $content );
$total_paragraphs = count($paragraphs);
$paragraph_id = round($total_paragraphs /2);
foreach ($paragraphs as $index => $paragraph) {
if ( trim( $paragraph ) ) {
$paragraphs[$index] .= $closing_p;
}
if ( $paragraph_id == $index + 1 ) {
$paragraphs[$index] .= $ad_code;
}
}
$content = implode( '', $paragraphs );
}
break;
default:
break;
}
//Displays all ads according to their settings paragraphs ends here
}
}
}
//Ads positioning ends here
//Groups positioning starts here
$all_group_post = json_decode(get_transient('adsforwp_groups_transient_ids'), true);
if($all_group_post){
foreach($all_group_post as $group){
$post_group_id = $group;
$amp_display_condition = get_post_meta($post_group_id,$key='wheretodisplayamp',true);
if(in_array($amp_display_condition, $this->_amp_conditions) && $this->is_amp){
return $content;
}
$where_to_display ='';
$adposition ='';
$widget = '';
$post_meta_dataset = array();
$post_meta_dataset = get_post_meta($post_group_id,$key='',true);
$ad_code = $this->adsforwp_group_ads($atts=null, $post_group_id, $widget);
$where_to_display = adsforwp_rmv_warnings($post_meta_dataset, 'wheretodisplay', 'adsforwp_array');
$adposition = adsforwp_rmv_warnings($post_meta_dataset, 'adposition', 'adsforwp_array');
//Displays all ads according to their settings paragraphs starts here
switch ($where_to_display) {
case 'after_the_content':
$content = $content.$ad_code;
break;
case 'before_the_content':
$content = $ad_code.$content;
break;
case 'between_the_content':
if($adposition == 'number_of_paragraph'){
$paragraph_id = adsforwp_rmv_warnings($post_meta_dataset, 'paragraph_number', 'adsforwp_array');
$closing_p = '';
$paragraphs = explode( $closing_p, $content );
foreach ($paragraphs as $index => $paragraph) {
if ( trim( $paragraph ) ) {
$paragraphs[$index] .= $closing_p;
}
if ( $paragraph_id == $index + 1 ) {
$paragraphs[$index] .= $ad_code;
}
}
$content = implode( '', $paragraphs );
}
if($adposition == '50_of_the_content'){
$closing_p = '';
$paragraphs = explode( $closing_p, $content );
$total_paragraphs = count($paragraphs);
$paragraph_id = round($total_paragraphs /2);
foreach ($paragraphs as $index => $paragraph) {
if ( trim( $paragraph ) ) {
$paragraphs[$index] .= $closing_p;
}
if ( $paragraph_id == $index + 1 ) {
$paragraphs[$index] .= $ad_code;
}
}
$content = implode( '', $paragraphs );
}
break;
default:
break;
}
//Displays all ads according to their settings paragraphs ends here
}
}
//Groups positioning ends here
}
return $content;
}
/**
* we are generating html or amp code for ads which will be displayed in post content.
* @param type $post_ad_id
* @return string
*/
public function adsforwp_get_ad_code($post_ad_id, $type){
$visitor_condition_status ='';
$condition_status ='';
if($type =="AD"){
$placement_obj = new adsforwp_view_placement();
$condition_status = $placement_obj->adsforwp_get_post_conditions_status($post_ad_id);
$visitor_condition_obj = new adsforwp_view_visitor_condition();
$visitor_condition_status = $visitor_condition_obj->adsforwp_visitor_conditions_status($post_ad_id);
}
if((($condition_status ===1 || $condition_status === true || $condition_status==='notset')&& ($visitor_condition_status ===1 || $visitor_condition_status === true || $visitor_condition_status==='notset')) || $type=='GROUP' ){
if ((function_exists( 'ampforwp_is_amp_endpoint' ) && ampforwp_is_amp_endpoint()) || function_exists( 'is_amp_endpoint' ) && is_amp_endpoint()) {
$this->is_amp = true;
}
$ad_image ='';
$ad_redirect_url ='';
$ad_type ='';
$ad_code ='';
$ad_expire_to ='';
$ad_expire_from ='';
$custom_ad_code ='';
$where_to_display ='';
$amp_compatibility ='';
$ad_expire_enable ='';
$ad_days_enable ='';
$non_amp_visibility ='';
$ad_responsive ='';
$ad_margin_top = 0;
$ad_margin_bottom = 0;
$ad_margin_left = 0;
$ad_margin_right = 0;
$ad_alignment = '';
$ad_expire_days = array();
$post_meta_dataset = array();
$post_meta_dataset = get_post_meta($post_ad_id,$key='',true);
$where_to_display = adsforwp_rmv_warnings($post_meta_dataset, 'wheretodisplay', 'adsforwp_array');
if($type =="AD"){
$ad_margin_top ='';
$ad_margin_bottom ='';
$ad_margin_left ='';
$ad_margin_right ='';
$margin_post_meta = get_post_meta($post_ad_id, $key='adsforwp_ad_margin',true);
$ad_margin_top = adsforwp_rmv_warnings($margin_post_meta, 'ad_margin_top', 'adsforwp_string');
$ad_margin_bottom = adsforwp_rmv_warnings($margin_post_meta, 'ad_margin_bottom', 'adsforwp_string');
$ad_margin_left = adsforwp_rmv_warnings($margin_post_meta, 'ad_margin_left', 'adsforwp_string');
$ad_margin_right = adsforwp_rmv_warnings($margin_post_meta, 'ad_margin_right', 'adsforwp_string');
if($where_to_display !='ad_shortcode'){
$ad_alignment = adsforwp_rmv_warnings($post_meta_dataset, 'adsforwp_ad_align', 'adsforwp_array');
}
}
$ad_responsive = adsforwp_rmv_warnings($post_meta_dataset, 'adsforwp_ad_responsive', 'adsforwp_array');
$custom_ad_code = adsforwp_rmv_warnings($post_meta_dataset, 'custom_code', 'adsforwp_array');
$ad_image = adsforwp_rmv_warnings($post_meta_dataset, 'adsforwp_ad_image', 'adsforwp_array');
$ad_redirect_url = adsforwp_rmv_warnings($post_meta_dataset, 'adsforwp_ad_redirect_url', 'adsforwp_array');
$ad_type = adsforwp_rmv_warnings($post_meta_dataset, 'select_adtype', 'adsforwp_array');
$ad_expire_enable = adsforwp_rmv_warnings($post_meta_dataset, 'adsforwp_ad_expire_day_enable', 'adsforwp_array');
$ad_expire_from = adsforwp_rmv_warnings($post_meta_dataset, 'adsforwp_ad_expire_from', 'adsforwp_array');
$ad_expire_to = adsforwp_rmv_warnings($post_meta_dataset, 'adsforwp_ad_expire_to', 'adsforwp_array');
$ad_days_enable = adsforwp_rmv_warnings($post_meta_dataset, 'adsforwp_ad_expire_day_enable', 'adsforwp_array');
$non_amp_visibility = adsforwp_rmv_warnings($post_meta_dataset, 'ads_for_wp_non_amp_visibility', 'adsforwp_array');
$ad_expire_days = get_post_meta($post_ad_id,$key='adsforwp_ad_expire_days',true);
if($ad_type !=""){
$amp_compatibility = adsforwp_rmv_warnings($post_meta_dataset, 'ads-for-wp_amp_compatibilty', 'adsforwp_array');
switch ($ad_type) {
case 'custom':
if($this->is_amp){
if($amp_compatibility != 'disable'){
$ad_code = '
'.$custom_ad_code.'
';
}
}else{
if($non_amp_visibility !='hide'){
$ad_code = '
'.$custom_ad_code.'
';
}
}
break;
case 'ad_image':
$ad_img_width = adsforwp_rmv_warnings($post_meta_dataset, 'adsforwp_ad_img_width', 'adsforwp_array');
$ad_img_height = adsforwp_rmv_warnings($post_meta_dataset, 'adsforwp_ad_img_height', 'adsforwp_array');
if($this->is_amp){
if($amp_compatibility != 'disable'){
$this->amp_ads_id[] = $post_ad_id;
if($ad_responsive !='' && $ad_responsive ==1){
$ad_code = '';
}else{
$ad_code = '';
}
}
}else{
if($non_amp_visibility !='hide'){
if($ad_responsive !='' && $ad_responsive ==1){
$ad_code = '';
}else{
$ad_code = '';
}
}
}
break;
case 'contentad':
$contentad_id = adsforwp_rmv_warnings($post_meta_dataset, 'contentad_id', 'adsforwp_array');
$contentad_id_d = adsforwp_rmv_warnings($post_meta_dataset, 'contentad_id_d', 'adsforwp_array');
$contentad_widget_id = adsforwp_rmv_warnings($post_meta_dataset, 'contentad_widget_id', 'adsforwp_array');
if($this->is_amp){
$this->amp_ads_id[] = $post_ad_id;
if($amp_compatibility != 'disable'){
$ad_code = '';
}
}else{
if($non_amp_visibility !='hide'){
$ad_code = '
';
}
}
break;
case 'ad_now':
$ad_now_widget_id = adsforwp_rmv_warnings($post_meta_dataset, 'ad_now_widget_id', 'adsforwp_array');
if(!$this->is_amp){
$ad_code = '';
}
break;
case 'infolinks':
$infolinks_pid = adsforwp_rmv_warnings($post_meta_dataset, 'infolinks_pid', 'adsforwp_array');
$infolinks_wsid = adsforwp_rmv_warnings($post_meta_dataset, 'infolinks_wsid', 'adsforwp_array');
if(!$this->is_amp){
$ad_code = '
';
}
break;
//adsense ads logic code starts here
case 'adsense':
$adsense_type = '';
$author_ad_slot_id ='';
$adsense_type = adsforwp_rmv_warnings($post_meta_dataset, 'adsense_type', 'adsforwp_array');
$ad_client = adsforwp_rmv_warnings($post_meta_dataset, 'data_client_id', 'adsforwp_array');
$author_adsense_ids = $this->adsforwp_get_pub_id_on_revenue_percentage();
if($author_adsense_ids){
$author_pub_id = adsforwp_rmv_warnings($author_adsense_ids, 'author_pub_id', 'adsforwp_string');
$author_ad_slot_id = adsforwp_rmv_warnings($author_adsense_ids, 'author_ad_slot_id', 'adsforwp_string');
if($author_pub_id){
$ad_client = $author_pub_id;
}
}
switch ($adsense_type) {
case 'normal':
$ad_slot = adsforwp_rmv_warnings($post_meta_dataset, 'data_ad_slot', 'adsforwp_array');
if($author_ad_slot_id){
$ad_slot = $author_ad_slot_id;
}
$width='200';
$height='200';
$banner_size = adsforwp_rmv_warnings($post_meta_dataset, 'banner_size', 'adsforwp_array');
if($banner_size !=''){
$explode_size = explode('x', $banner_size);
$width = $explode_size[0];
$height = $explode_size[1];
}
if($this->is_amp){
$this->amp_ads_id[] = $post_ad_id;
if($amp_compatibility != 'disable'){
if(isset($ad_responsive)){
$ad_code = '';
}else{
$ad_code = '';
}
}
}else{
if($non_amp_visibility !='hide'){
if(isset($ad_responsive)){
$ad_code = '
';
}else{
$ad_code = '
';
}
}
}
break;
default:
break;
}
break;
case 'media_net':
$ad_data_cid ='';
$ad_data_crid ='';
$ad_data_cid = adsforwp_rmv_warnings($post_meta_dataset, 'data_cid', 'adsforwp_array');
$ad_data_crid = adsforwp_rmv_warnings($post_meta_dataset, 'data_crid', 'adsforwp_array');
$width='200';
$height='200';
$banner_size = adsforwp_rmv_warnings($post_meta_dataset, 'banner_size', 'adsforwp_array');
if($banner_size !=''){
$explode_size = explode('x', $banner_size);
$width = adsforwp_rmv_warnings($explode_size, 0, 'adsforwp_string');
$height = adsforwp_rmv_warnings($explode_size, 1, 'adsforwp_string');
}
if($this->is_amp){
if($amp_compatibility != 'disable'){
$this->amp_ads_id[] = $post_ad_id;
$ad_code =
'';
}
}else{
if($non_amp_visibility !='hide'){
$ad_code = '
';
}
}
break;
default:
break;
}
$amp_ads_id_json = json_encode($this->amp_ads_id);
set_transient('adsforwp_transient_amp_ids', $amp_ads_id_json);
$current_date = date("Y-m-d");
if($ad_expire_enable){
if($ad_expire_from && $ad_expire_to ) {
if($ad_expire_from <= $current_date && $ad_expire_to >=$current_date){
if($ad_days_enable){
foreach ($ad_expire_days as $days){
if(date('Y-m-d', strtotime($days))==$current_date){
return $ad_code;
}
}
}else{
return $ad_code;
}
}
}else{
return $ad_code;
}
}else{
if($ad_days_enable){
foreach ($ad_expire_days as $days){
if(date('Y-m-d', strtotime($days))==$current_date){
return $ad_code;
}
}
}else{
return $ad_code;
}
}
}
}
}
/**
* We are displaying ads as per shortcode. eg ["adsforwp id="000"]
* @param type $atts
* @return type string
*/
public function adsforwp_manual_ads($atts) {
$post_ad_id = $atts['id'];
if($post_ad_id){
$placement_obj = new adsforwp_view_placement();
$condition_status = $placement_obj->adsforwp_get_post_conditions_status($post_ad_id);
$visitor_condition_obj = new adsforwp_view_visitor_condition();
$visitor_condition_status = $visitor_condition_obj->adsforwp_visitor_conditions_status($post_ad_id);
if(($condition_status ===1 || $condition_status === true || $condition_status==='notset')&& ($visitor_condition_status ===1 || $visitor_condition_status === true || $visitor_condition_status==='notset')){
if($this->visibility != 'hide') {
$ad_code = $this->adsforwp_get_ad_code($post_ad_id, $type="AD");
return $ad_code;
}
}
}
}
/**
* We are displaying groups as per shortcode. eg [[adsforwp-group id="0000"]
* @param type $atts
* @return type string
*/
public function adsforwp_group_ads($atts, $group_id = null, $widget=null) {
if ((function_exists( 'ampforwp_is_amp_endpoint' ) && ampforwp_is_amp_endpoint()) || function_exists( 'is_amp_endpoint' ) && is_amp_endpoint()) {
$this->is_amp = true;
}
$post_group_id = adsforwp_rmv_warnings($atts, 'id', 'adsforwp_string');
if($group_id){
$post_group_id = $group_id;
}
$placement_obj = new adsforwp_view_placement();
$condition_status = $placement_obj->adsforwp_get_post_conditions_status($post_group_id);
$visitor_condition_obj = new adsforwp_view_visitor_condition();
$visitor_condition_status = $visitor_condition_obj->adsforwp_visitor_conditions_status($post_group_id);
if((($condition_status ===1 || $condition_status === true || $condition_status==='notset') && ($visitor_condition_status ===1 || $visitor_condition_status === true || $visitor_condition_status==='notset') ) || $widget =='widget'){
if($this->visibility != 'hide') {
$ad_alignment = '';
$wheretodisplay = '';
$amp_compatibility = '';
$non_amp_visibility = '';
$ad_margin_top = 0;
$ad_margin_bottom = 0;
$ad_margin_left = 0;
$ad_margin_right = 0;
$post_group_data = get_post_meta($post_group_id,$key='adsforwp_ads',true);
$post_group_meta = get_post_meta($post_group_id,$key='',true);
$margin_post_meta = get_post_meta($post_group_id, $key='adsforwp_ad_margin',true);
$ad_margin_top = adsforwp_rmv_warnings($margin_post_meta, 'ad_margin_top', 'adsforwp_string');
$ad_margin_bottom = adsforwp_rmv_warnings($margin_post_meta, 'ad_margin_bottom', 'adsforwp_string');
$ad_margin_left = adsforwp_rmv_warnings($margin_post_meta, 'ad_margin_left', 'adsforwp_string');
$ad_margin_right = adsforwp_rmv_warnings($margin_post_meta, 'ad_margin_right', 'adsforwp_string');
$wheretodisplay = adsforwp_rmv_warnings($post_group_meta, 'wheretodisplay', 'adsforwp_array');
$non_amp_visibility = adsforwp_rmv_warnings($post_group_meta, 'ads_for_wp_non_amp_visibility', 'adsforwp_array');
$amp_compatibility = adsforwp_rmv_warnings($post_group_meta, 'ads-for-wp_amp_compatibilty', 'adsforwp_array');
if($wheretodisplay !='ad_shortcode' && isset($post_group_meta['adsforwp_ad_align'])){
$ad_alignment = $post_group_meta['adsforwp_ad_align'][0];
}
$ad_code ="";
$group_ad_code ="";
$filter_group_ids = array();
if($this->is_amp){
if($amp_compatibility != 'disable'){
if($post_group_data){
foreach ($post_group_data as $group_id=>$value){
if(get_post_status($group_id) == 'publish'){
$filter_group_ids[$group_id] = $value;
}
}
$ad_code = $this->adsforwp_get_ad_code(array_rand($filter_group_ids), $type="GROUP");
}
}
}else{
if($non_amp_visibility !='hide'){
$post_data = get_post_meta($post_group_id,$key='',true);
if($post_group_data){
$adsresultset = array();
$response = array();
foreach($post_group_data as $post_ad_id => $post){
$select_ad_type = '';
$data_cid = '';
$data_crid = '';
$ad_detail = get_post_meta($post_ad_id,$key='',true);
$select_ad_type = adsforwp_rmv_warnings($ad_detail, 'select_adtype', 'adsforwp_array');
$data_cid = adsforwp_rmv_warnings($ad_detail, 'data_cid', 'adsforwp_array');
$data_crid = adsforwp_rmv_warnings($ad_detail, 'data_crid', 'adsforwp_array');
if(!empty($ad_detail) && $select_ad_type !='' && get_post_status($post_ad_id) == 'publish'){
$adsresultset[] = array(
'ad_id' => $post_ad_id,
'ad_type' => adsforwp_rmv_warnings($ad_detail, 'select_adtype', 'adsforwp_array'),
'ad_adsense_type' => adsforwp_rmv_warnings($ad_detail, 'adsense_type', 'adsforwp_array'),
'ad_custom_code' => adsforwp_rmv_warnings($ad_detail, 'custom_code', 'adsforwp_array'),
'ad_data_client_id' => adsforwp_rmv_warnings($ad_detail, 'data_client_id', 'adsforwp_array'),
'ad_data_ad_slot' => adsforwp_rmv_warnings($ad_detail, 'data_ad_slot', 'adsforwp_array'),
'ad_data_cid' => $data_cid,
'ad_data_crid' => $data_crid,
'ad_banner_size' => adsforwp_rmv_warnings($ad_detail, 'banner_size', 'adsforwp_array'),
'ad_image' => adsforwp_rmv_warnings($ad_detail, 'adsforwp_ad_image', 'adsforwp_array'),
'ad_redirect_url' => adsforwp_rmv_warnings($ad_detail, 'adsforwp_ad_redirect_url', 'adsforwp_array'),
'ad_img_height' => adsforwp_rmv_warnings($ad_detail, 'adsforwp_ad_img_height', 'adsforwp_array'),
'ad_img_width' => adsforwp_rmv_warnings($ad_detail, 'adsforwp_ad_img_width', 'adsforwp_array'),
) ;
}
}
$response['afw_group_id'] = $post_group_id;
$response['adsforwp_refresh_type'] = adsforwp_rmv_warnings($post_data, 'adsforwp_refresh_type', 'adsforwp_array');
$response['adsforwp_group_ref_interval_sec'] = adsforwp_rmv_warnings($post_data, 'adsforwp_group_ref_interval_sec', 'adsforwp_array');
$response['adsforwp_group_type'] = adsforwp_rmv_warnings($post_data, 'adsforwp_group_type', 'adsforwp_array');
$response['ads'] = $adsresultset;
if($response['adsforwp_refresh_type'] == 'on_interval'){
$ad_code ='';
$ad_code .='
';
$ad_code .='';
}else{
$post_group_data = get_post_meta($post_group_id,$key='adsforwp_ads',true);
foreach ($post_group_data as $group_id=>$value){
if(get_post_status($group_id) == 'publish'){
$filter_group_ids[$group_id] = $value;
}
}
$ad_code = $this->adsforwp_get_ad_code(array_rand($filter_group_ids), $type="GROUP");
}
}
}
}
$group_ad_code = '';
$group_ad_code .= $ad_code;
$group_ad_code .='
';
return $group_ad_code;
}
}
}
/**
* This is a ajax handler function for ads groups.
* @return type json string
*/
public function adsforwp_get_groups_ad(){
$ad_id = sanitize_text_field($_GET['ad_id']);
$ads_group_id = sanitize_text_field($_GET['ads_group_id']);
$ads_group_type = sanitize_text_field($_GET['ads_group_type']);
$ads_group_data = get_post_meta($ads_group_id,$key='adsforwp_ads',true);
switch ($ads_group_type) {
case 'rand':
$ad_code = $this->adsforwp_get_ad_code(array_rand($ads_group_data), $type="GROUP");
break;
case 'ordered':
$ad_code = $this->adsforwp_get_ad_code($ad_id, $type="GROUP");
break;
default:
break;
}
if($ad_code){
echo json_encode(array('status'=> 't','ad_code'=> $ad_code));
}else{
echo json_encode(array('status'=> 'f','ad_code'=> 'group code not available'));
}
wp_die();
}
public function adsforwp_adblocker_detector(){
?>
adsforwp_hooks();
}