post_content;
foreach($amp_ads_id as $ad_id){
$post_meta_dataset = array();
$post_meta_dataset = get_post_meta($ad_id,$key='',true);
$where_to_display = adsforwp_rmv_warnings($post_meta_dataset, 'wheretodisplay', 'adsforwp_array');
$jquery_selector = adsforwp_rmv_warnings($post_meta_dataset, 'adsforwp_jquery_selector', 'adsforwp_array');
$custom_target_position = adsforwp_rmv_warnings($post_meta_dataset, 'adsforwp_custom_target_position', 'adsforwp_array');
$new_element = adsforwp_rmv_warnings($post_meta_dataset, 'adsforwp_new_element', 'adsforwp_array');
if( $where_to_display == 'ad_shortcode'){
if(!has_shortcode( $content, 'adsforwp' )){
continue;
}else{
if(!preg_match('/\[adsforwp(.*?)id=\"'.$ad_id.'\"\]/', $content, $matches)){
continue;
}
}
}elseif($where_to_display == 'custom_target'){
if( $custom_target_position == 'existing_element' && !empty($jquery_selector)){
$idselector = ltrim($jquery_selector,'#');
$classselector = ltrim($jquery_selector,'.');
if( strpos($jquery_selector, '#') !== false){
if(!preg_match('/id=\"'.$idselector.'\"/', $content, $matches)){
continue;
}
}elseif( strpos($jquery_selector, '.') !== false ){
if(!preg_match('/class=\"'.$classselector.'\"/', $content, $matches) ){
continue;
}
}
}elseif( $custom_target_position == 'new_element' && !empty($new_element)){
$new_element = html_entity_decode($new_element);
preg_match('/
/', $new_element, $matches);
if($matches){
if(!preg_match('/'.$matches[1].'/', $content, $match)){
continue;
}
}else{
continue;
}
}
}
$ad_impression_script .= '
';
$ad_clicks_script .='
';
}
}
echo $ad_impression_script;
echo $ad_clicks_script;
}
}
}
/**
* Function to insert ad impression for both (AMP and NON AMP)
* @global type $wpdb
* @param type $ad_id
* @param type $device_name
*/
public function adsforwp_insert_impression($ad_id, $device_name){
global $wpdb;
$today = adsforwp_get_date('day');
$stats = $wpdb->get_var($wpdb->prepare("SELECT `id` FROM `{$wpdb->prefix}adsforwp_stats` WHERE `ad_id` = %d AND `ad_device_name` = %s AND `ad_thetime` = %d;", $ad_id, trim($device_name), $today ));
if($stats > 0) {
$wpdb->query("UPDATE `{$wpdb->prefix}adsforwp_stats` SET `ad_impressions` = `ad_impressions` + 1 WHERE `id` = {$stats};");
} else {
$wpdb->insert($wpdb->prefix.'adsforwp_stats', array('ad_id' => $ad_id, 'ad_thetime' => $today, 'ad_clicks' => 0, 'ad_impressions' => 1, 'ad_device_name' => trim($device_name)));
}
}
/**
* Function to insert ad clicks for both (AMP and NON AMP)
* @global type $wpdb
* @param type $ad_id
* @param type $device_name
*/
public function adsforwp_insert_clicks($ad_id, $device_name){
global $wpdb;
$today = adsforwp_get_date('day');
$stats = $wpdb->get_var($wpdb->prepare("SELECT `id` FROM `{$wpdb->prefix}adsforwp_stats` WHERE `ad_id` = %d AND `ad_device_name` = %s AND `ad_thetime` = %d;", $ad_id, trim($device_name), $today ));
if($stats > 0) {
$wpdb->query("UPDATE `{$wpdb->prefix}adsforwp_stats` SET `ad_clicks` = `ad_clicks` + 1 WHERE `id` = {$stats};");
} else {
$wpdb->insert($wpdb->prefix.'adsforwp_stats', array('ad_id' => $ad_id, 'ad_thetime' => $today, 'ad_clicks' => 0, 'ad_impressions' => 1, 'ad_device_name' => trim($device_name)));
}
}
/**
* Ajax handler to get ad impression in AMP
* @return type void
*/
public function adsforwp_insert_ad_impression_amp(){
if ( ! isset( $_GET['adsforwp_front_nonce'] ) ){
return;
}
if ( !wp_verify_nonce( $_GET['adsforwp_front_nonce'], 'adsforwp_ajax_check_front_nonce' ) ){
return;
}
$ad_id = sanitize_text_field($_GET['event']);
$device_name = 'amp';
if($ad_id){
$this->adsforwp_insert_impression($ad_id, $device_name);
}
wp_die();
}
/**
* Ajax handler to get ad impression in NON AMP
* @return type void
*/
public function adsforwp_insert_ad_impression(){
if ( ! isset( $_POST['adsforwp_front_nonce'] ) ){
return;
}
if ( !wp_verify_nonce( $_POST['adsforwp_front_nonce'], 'adsforwp_ajax_check_front_nonce' ) ){
return;
}
$ad_ids = array_map('sanitize_text_field', $_POST['ad_ids']);
$device_name = sanitize_text_field($_POST['device_name']);
if($ad_ids){
foreach ($ad_ids as $ad_id){
if($ad_id){
$this->adsforwp_insert_impression($ad_id, $device_name);
}
}//Foreach closed
}
wp_die();
}
/**
* Ajax handler to get ad clicks in NON AMP
* @return type void
*/
public function adsforwp_insert_ad_clicks(){
if ( ! isset( $_POST['adsforwp_front_nonce'] ) ){
return;
}
if ( !wp_verify_nonce( $_POST['adsforwp_front_nonce'], 'adsforwp_ajax_check_front_nonce' ) ){
return;
}
$device_name = sanitize_text_field($_POST['device_name']);
$ad_id = sanitize_text_field($_POST['ad_id']);
if($ad_id){
$this->adsforwp_insert_clicks($ad_id, $device_name);
}
wp_die();
}
/**
* Ajax handler to get ad clicks in AMP
* @return type void
*/
public function adsforwp_insert_ad_clicks_amp(){
if ( ! isset( $_GET['adsforwp_front_nonce'] ) ){
return;
}
if ( !wp_verify_nonce( $_GET['adsforwp_front_nonce'], 'adsforwp_ajax_check_front_nonce' ) ){
return;
}
$ad_id = sanitize_text_field($_GET['event']);
$device_name = 'amp';
if($ad_id){
$this->adsforwp_insert_clicks($ad_id, $device_name);
}
wp_die();
}
}
if (class_exists('adsforwp_admin_analytics')) {
$adsforwp_analytics_hooks_obj =new adsforwp_admin_analytics;
$adsforwp_analytics_hooks_obj->adsforwp_admin_analytics_hooks();
};