advert_analysis_load_data(); $this->advert_analysis_screen_options(); $this->do_advert_analysis_drilldown_page(); } public function advert_analysis_load_data(){ $status = ''; $advertiser = ''; $campaign = ''; $banner = ''; $start = ''; $stop = ''; $location = ''; if ( 'POST' == $_SERVER['REQUEST_METHOD'] && $_POST['post_type'] == 'admin_analysis_options' && $_POST['originalaction'] == 'adminanalysis' && current_user_can('edit_adverts') ){ if ( !is_user_logged_in() || ! wp_verify_nonce( $_POST['admin-analysis'], 'admin_analysis' ) ){ print 'Woah, whats really going on...?'; return; } $status_array = array('any','active','archive'); if(isset($_POST['advert-analysis-status']) && in_array($_POST['advert-analysis-status'],$status_array)){$status = sanitize_text_field($_POST['advert-analysis-status']);} if(!current_user_can('publish_adverts')){ $user_id = get_current_user_id(); $company_id = get_user_meta($user_id, 'advert_advertiser_company_id'.get_current_blog_id(), true); $advertiser = $company_id; } else{ if(isset($_POST['advert-analysis-advertiser']) && intval($_POST['advert-analysis-advertiser']) > 0){sanitize_text_field($advertiser = $_POST['advert-analysis-advertiser']);} } if(isset($_POST['advert-analysis-campaign']) && intval($_POST['advert-analysis-campaign']) > 0){$campaign = sanitize_text_field($_POST['advert-analysis-campaign']);} if(isset($_POST['advert-analysis-banner']) && intval($_POST['advert-analysis-banner']) > 0){$banner = sanitize_text_field($_POST['advert-analysis-banner']);} if(isset($_POST['advert-analysis-start']) && strtotime($_POST['advert-analysis-start']) != false){$start = sanitize_text_field($_POST['advert-analysis-start']);} if(isset($_POST['advert-analysis-stop']) && strtotime($_POST['advert-analysis-stop']) != false){$stop = sanitize_text_field($_POST['advert-analysis-stop']);} if( current_user_can('publish_adverts') ){ if(isset($_POST['advert-analysis-location']) && intval($_POST['advert-analysis-location']) > 0){$location = sanitize_text_field($_POST['advert-analysis-location']);} } $this->status = $status; $this->advertiser = $advertiser; $this->campaign = $campaign; $this->banner = $banner; $this->start = $start; $this->stop = $stop; $this->location = $location; $this->get_analysis_data($status,$advertiser,$campaign,$banner,$start,$stop,$location); } else{ if( !current_user_can('edit_adverts') ) return; //advertiser if(!current_user_can('publish_adverts')){ $user_id = get_current_user_id(); $company_id = get_user_meta($user_id, 'advert_advertiser_company_id'.get_current_blog_id(), true); $advertiser = $company_id; } else{ if( isset($_GET['advert-analysis-advertiser']) && intval($_GET['advert-analysis-advertiser']) > 0 ){ $advertiser = sanitize_text_field($_GET['advert-analysis-advertiser']); } } //get data if available if ( isset( $_GET['post'] ) ){ $nonce = ( isset($_REQUEST['_wpnonce']) ? $_REQUEST['_wpnonce'] : ''); if ( wp_verify_nonce( $nonce, 'advert-analysis-link' ) && current_user_can('edit_adverts') ){ //status $status_array = array('any','active','archive'); if( isset($_GET['advert-analysis-status']) && in_array($_GET['advert-analysis-status'],$status_array) ){ $status = sanitize_text_field($_GET['advert-analysis-status']); } //campaign if( isset($_GET['advert-analysis-campaign']) && intval($_GET['advert-analysis-campaign']) > 0 ){ $campaign = sanitize_text_field($_GET['advert-analysis-campaign']); } //banner if( isset($_GET['advert-analysis-banner']) && intval($_GET['advert-analysis-banner']) > 0 ){ $banner = sanitize_text_field($_GET['advert-analysis-banner']); } //start if( isset($_GET['advert-analysis-start']) && strtotime(urldecode($_GET['advert-analysis-start'])) != false ){ $start = sanitize_text_field(urldecode($_GET['advert-analysis-start'])); } //stop if( isset($_GET['advert-analysis-stop']) && strtotime(urldecode($_GET['advert-analysis-stop'])) != false ){ $stop = sanitize_text_field(urldecode($_GET['advert-analysis-stop'])); } //location if( isset($_GET['advert-analysis-location']) && intval($_GET['advert-analysis-location']) > 0 && current_user_can('publish_adverts') ){ $location = sanitize_text_field($_GET['advert-analysis-location']); } } } $this->status = $status; $this->advertiser = $advertiser; $this->campaign = $campaign; $this->banner = $banner; $this->start = $start; $this->stop = $stop; $this->location = $location; $this->get_analysis_data($status,$advertiser,$campaign,$banner,$start,$stop,$location); } } public function get_analysis_data($status,$advertiser,$campaign,$banner,$start,$stop,$location){ global $wpdb; $log_table = $wpdb->prefix . 'advert_logged'; //$log_table_posts = $wpdb->prefix . 'posts'; if($status === 'active'){$thestatus = "publish";} elseif($status === 'archive'){$thestatus = "archive";} if($advertiser != 'all_advertisers' && $advertiser != '' ){ $conditions = ' WHERE adv_id = ' . $advertiser; if($campaign != 'all_campaigns' && $campaign != ''){$conditions .= ' AND camp_id = ' . $campaign;} if($banner != 'all_banners' && $banner != ''){$conditions .= ' AND banner_id = ' . $banner;} } elseif($campaign != 'all_campaigns' && $campaign != ''){ $conditions = ' WHERE camp_id = ' . $campaign; if($banner != 'all_banners' && $banner != ''){$conditions .= ' AND banner_id = ' . $banner;} } elseif($banner != 'all_banners' && $banner != ''){ $conditions = ' WHERE banner_id = ' . $banner; } elseif($location != 'all_locations' && $location !=''){ if( empty($advertiser) && empty($campaign) && empty($banner) ){$conditions = ' WHERE location_id = ' . $location;} else{$conditions .= ' AND location_id = ' . $location;} } else{ $conditions = ''; } $time_conditions = ''; if( isset($start) && $start != '' || isset($stop) && $stop != '' ){ if(isset($start) && !empty($start)){ if($conditions != ''){$time_conditions .= ' AND time >= "'.date('Y-m-d 00:00:00',strtotime($start)).'" ';} else{$time_conditions .= ' WHERE time >= "'.date('Y-m-d 00:00:00',strtotime($start)).'" ';} } if(isset($stop) && !empty($stop)){ if($conditions != '' || $time_conditions !=''){$time_conditions .= ' AND time <= "'.date('Y-m-d 23:59:59',strtotime($stop)).'" ';} else{$time_conditions .= ' WHERE time <= "'.date('Y-m-d 23:59:59',strtotime($stop)).'" ';} } } else{ if($conditions != ''){} else{$current_date = current_time('Y-m-d');$time_conditions .= " WHERE DATE(time) >= DATE_SUB('{$current_date}', INTERVAL 30 DAY) ";} } if ( !empty($_GET['orderby']) ){ if( $_GET['order'] === 'asc'){$orderby = ' ORDER BY ' . $_GET["orderby"] . ' ASC ';} else{$orderby = ' ORDER BY ' . $_GET["orderby"] . ' DESC ';} } else{$orderby = '';} $queryitems = $wpdb->get_results(" SELECT * FROM $log_table $conditions $time_conditions $orderby "); if ($time_conditions !='' && $start === $stop && $start !='' && $stop !='' && isset($start) && isset($stop) ){$selectfrom = " CONCAT(HOUR(time), ':00') "; $groupby = " GROUP BY HOUR(timestamp) ORDER BY HOUR(timestamp) ";} else{$selectfrom = " DATE(time) "; $groupby = " GROUP BY timestamp ORDER BY timestamp ";} $queryitems2 = $wpdb->get_results(" SELECT $selectfrom timestamp, COUNT(CASE WHEN typeof = 'i' THEN 1 END) imp, COUNT(CASE WHEN typeof = 'c' THEN 1 END) click FROM $log_table $conditions $time_conditions $groupby "); $queryitems3 = $wpdb->get_results(" SELECT SUM(CASE WHEN typeof = 'i' THEN price END) AS timp, SUM(CASE WHEN typeof = 'c' THEN price END) AS tclick FROM $log_table log $conditions $time_conditions "); $queryitems4 = $wpdb->get_results(" SELECT SUM(CASE WHEN typeof = 'i' THEN 1 END) AS imp, SUM(CASE WHEN typeof = 'c' THEN 1 END) AS click FROM $log_table log $conditions $time_conditions "); $queryitems5 = $wpdb->get_results(" SELECT SUM(CASE WHEN typeof = 'f' AND feedback = 1 THEN 1 END) AS feed1, SUM(CASE WHEN typeof = 'f' AND feedback = 2 THEN 1 END) AS feed2, SUM(CASE WHEN typeof = 'f' AND feedback = 3 THEN 1 END) AS feed3 FROM $log_table log $conditions $time_conditions "); $this->queryitems = $queryitems; $this->queryitems2 = $queryitems2; $this->queryitems3 = $queryitems3; $this->queryitems4 = $queryitems4; $this->queryitems5 = $queryitems5; } public function advert_analysis_screen_options(){ ?>