'advert-advertiser', 'posts_per_page' => -1, 'post_status' => 'publish')); $campaign_owner = get_post_meta($post->ID , 'campaign_owner' ,true); if( !current_user_can('publish_adverts') ){ $user_id = get_current_user_id(); $args = array('post_type' => 'advert-advertiser', 'author' => $user_id); $the_post = new WP_Query($args); $company = $the_post->posts[0]->ID; wp_reset_postdata(); ?>



'advert-location', 'posts_per_page' => -1, 'post_status' => 'publish')); $banner_owners = get_posts(array('post_type' => 'advert-banner', 'posts_per_page' => -1, 'post_status' => 'publish')); $campaign_budget = get_post_meta($post->ID , 'campaign_budget' ,true); $campaign_budget_value = get_post_meta($post->ID , 'campaign_budget_value' ,true); $campaign_location = get_post_meta($post->ID , 'campaign_location' ,false); $pricing_model = get_post_meta($post->ID , 'campaign_price_model' ,true); $campaign_owner = get_post_meta($post->ID , 'campaign_owner' ,true); $campaign_start = get_post_meta($post->ID , 'campaign_start_date' ,true); $campaign_stop = get_post_meta($post->ID , 'campaign_stop_date' ,true); $campaign_priority = get_post_meta($post->ID , 'campaign_priority' ,true); $campaign_impressions = get_post_meta($post->ID , 'campaign_impressions' ,true); $campaign_ppimpressions = get_post_meta($post->ID , 'campaign_ppimpressions' ,true); $campaign_credits_avail = get_post_meta($campaign_owner, 'company_credits', true); $campaign_charges = get_post_meta($post->ID, 'campaign_charges', true); $bypass = intval(get_post_meta($campaign_owner, 'advert_bypass_adcredits' , true)); $campaign_status = get_post_status($post->ID); //original amount set $campaign_budget_value_original = get_post_meta($post->ID , 'campaign_budget_value_original' ,true); if (!$campaign_owner && current_user_can('publish_adverts')){ echo '

'. __( 'Once you select the Advertiser and either save draft or publish this campaign, you will have additional options specific to the advertiser.', 'ADVERT_TEXTDOMAIN' ) .'

'; return; } elseif(!$campaign_owner && ! current_user_can('publish_adverts')){ echo '

'. __( 'Once you enter a title for the campaign and save draft, you will have additional options.', 'ADVERT_TEXTDOMAIN' ) .'

'; return; } if( $bypass != 1 ){ $lessCharges = 0; if( $campaign_budget_value > 0 ){ if( $campaign_budget === 'fixed' ){ $log_fixed = apply_filters('fixed_campaign', $post->ID); $lessCharges = number_format_i18n(number_format($campaign_budget_value, 2) - number_format($log_fixed, 2), 2); } if( $campaign_budget === 'per_day' ){ $log_perday = apply_filters('perday_campaign', $post->ID); $lessCharges = number_format_i18n(number_format($campaign_budget_value, 2) - number_format($log_perday, 2), 2); } } ?> post_status != 'publish' ) : ?>



/>  ‐ '. __('No AdCredits Available', 'ADVERT_TEXTDOMAIN') .'';} ?>

'. sprintf( __( 'No AdCredits available. Add more AdCredits', 'ADVERT_TEXTDOMAIN' ), $url) .'

'; } if($campaign_budget_value_original){ echo sprintf( __('This campaign originally started with %s AdCredits', 'ADVERT_TEXT_DOMAIN'), $campaign_budget_value_original); } ?>







ID , 'banner_owner' ,true) ){ $banner_counter = $banner_counter + 1; $banner_location = get_post_meta($banner_owner->ID , 'banner_location' ,true); $external_link = get_post_meta($banner_owner->ID, 'banner_link', true); if( empty($external_link) ){ $external_link = ' - ' . __( 'No Link Detected: At least one Banner for this location does not have a link', 'ADVERT_TEXTDOMAIN' ); } else{ $external_link = ''; } if (!in_array($banner_location, $loc_check) ){ ?>
'. __( 'multiple Banners attached to', 'ADVERT_TEXTDOMAIN' ) .': '.implode(', ', array_unique($loc_add)).''; } $count_posts = wp_count_posts('advert-location'); $url = esc_url( admin_url( 'post-new.php?post_type=advert-banner' )); $url2 = esc_url( admin_url( 'post-new.php?post_type=advert-location' )); if ( $banner_counter < $count_posts->publish ){ echo '

' . sprintf( __( 'Want to target more locations? Add more Banners', 'ADVERT_TEXTDOMAIN' ), $url) . '

'; } if ($count_posts->publish === 0 && current_user_can('publish_adverts')){ echo '

'. sprintf( __( 'No locations are set. Add more Locations', 'ADVERT_TEXTDOMAIN' ), $url2) .'

'; } ?>



value="" placeholder="" />


value="" placeholder="" />







ID , 'campaign_owner' ,true); $campaign_charges = get_post_meta($post->ID , 'campaign_charges' ,true); $campaign_budget_value = get_post_meta($post->ID , 'campaign_budget_value' ,true); $campaign_viewable_status = get_post_meta($post->ID , 'campaign_viewable_status' ,true); $campaign_budget = get_post_meta($post->ID , 'campaign_budget' ,true); ?>


0 ){ if( $campaign_budget === 'fixed' ){ $log_fixed = apply_filters('fixed_campaign', $post->ID); echo '

'. number_format_i18n(number_format($campaign_budget_value, 2) - number_format($log_fixed, 2), 2) .'

'; } if( $campaign_budget === 'per_day' ){ $log_perday = apply_filters('perday_campaign', $post->ID); echo '

'. number_format_i18n(number_format($campaign_budget_value, 2) - number_format($log_perday, 2), 2) .'

'; } } else{ echo '

' . number_format_i18n(0, 2) . '

'; } ?>

post_status === 'publish'){ ?>




Current Control: post_author, 'publish_adverts' )){echo _e('Advertiser', 'ADVERT_TEXTDOMAIN');}else{ _e('AdVert Manager', 'ADVERT_TEXTDOMAIN'); } ?>

'', // Unused. Messages start at index 1. 1 => __('Campaign updated.' , 'ADVERT_TEXTDOMAIN') , 6 => __('Campaign started.' , 'ADVERT_TEXTDOMAIN') , 8 => __('Campaign submitted.' , 'ADVERT_TEXTDOMAIN'), 9 => sprintf( __('Campaign scheduled for: %1$s.' , 'ADVERT_TEXTDOMAIN'), date_i18n( __( 'M j, Y @ G:i' ), strtotime( $post->post_date ) ) ), 10 => __('Campaign draft updated.', 'ADVERT_TEXTDOMAIN') ); return $messages; } //save post meta data function campaign_save_meta($post_id){ if ( 'advert-campaign' != get_post_type() || !current_user_can('edit_adverts') ) return; if(!isset($_POST['campaign_meta_box_nonce']) || !wp_verify_nonce($_POST['campaign_meta_box_nonce'], 'campaign_meta_box')) return; $campaign_status = get_post_status($post_id); //campaign_locked_rates if( $campaign_status == 'pending' && !current_user_can('publish_adverts') || $campaign_status == 'publish' ){ $lockrate = true; } else{ $lockrate = false; } //justincase if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ){return;} //double check the user $company_id = (isset($_POST['campaign_owner']) ? intval($_POST['campaign_owner']) : intval(get_post_meta($post_id, 'campaign_owner', true))); if(!current_user_can('publish_adverts')){ $user_id = get_current_user_id(); $company_id = intval(apply_filters('get_advertiser_id', $user_id)); } //pause campaign $campaign_viewable_status = array('active', 'paused'); if(isset($_POST['campaign_viewable_status'])){ if(in_array($_POST['campaign_viewable_status'], $campaign_viewable_status)){ update_post_meta( $post_id, 'campaign_viewable_status', $_POST['campaign_viewable_status'] ); } } if(empty($_POST['campaign_viewable_status']) && get_post_status($post_id) === 'publish'){ update_post_meta( $post_id, 'campaign_viewable_status', 'active' ); } elseif(empty($_POST['campaign_viewable_status'])){ update_post_meta( $post_id, 'campaign_viewable_status', 'inactive' ); } if( !empty($_POST['campaign_budget'])){ update_post_meta( $post_id, 'campaign_budget' , sanitize_text_field(strip_tags($_POST['campaign_budget'])) ); } //adcredit amount/value $campaign_credits_avail = get_post_meta($company_id, 'company_credits', true); if( isset($_POST['campaign_budget_value']) && $_POST['campaign_budget_value'] <= $campaign_credits_avail && is_numeric($_POST['campaign_budget_value']) && $_POST['campaign_budget_value'] > 0 ){ $campaign_budget_value = number_format((float)get_post_meta($post_id, 'campaign_budget_value', true), 2); $campaign_budget = get_post_meta($post_id, 'campaign_budget', true); if( $campaign_budget_value > 0 && !empty($campaign_budget_value) && !empty($campaign_budget) ){ if( $campaign_budget === 'fixed' ){ $log_fixed = number_format(apply_filters('fixed_campaign', $post_id), 2); $new_campaign_budget_value = number_format(strip_tags($_POST['campaign_budget_value']), 2); $new_campaign_budget_value = $new_campaign_budget_value >= ($campaign_budget_value - $log_fixed) ? $campaign_budget_value + ($new_campaign_budget_value - ($campaign_budget_value - $log_fixed)) : $campaign_budget_value - (($campaign_budget_value - $log_fixed) - $new_campaign_budget_value) ; if ( number_format($new_campaign_budget_value, 2) != number_format($campaign_budget_value, 2) ){ update_post_meta( $post_id, 'campaign_budget_value', $new_campaign_budget_value ); } } elseif( $campaign_budget === 'per_day' ){ update_post_meta( $post_id, 'campaign_budget_value' , number_format(strip_tags($_POST['campaign_budget_value']), 2) ); } } else{ update_post_meta( $post_id, 'campaign_budget_value_original', number_format(strip_tags($_POST['campaign_budget_value']), 2) ); update_post_meta( $post_id, 'campaign_budget_value' , number_format(strip_tags($_POST['campaign_budget_value']), 2) ); } } if( $campaign_status != 'publish' || current_user_can('publish_adverts')){ if(!empty($company_id)){ global $wpdb; $wpdb->update($wpdb->posts , array('post_parent' => $company_id) , array('ID' => $post_id) , array('%d'),array('%d')); update_post_meta( $post_id, 'campaign_owner' , sanitize_text_field(strip_tags($company_id)) ); } $pricing_array = array('cpc','cpm','cpp'); if(isset($_POST['campaign_price_model']) && in_array($_POST['campaign_price_model'], $pricing_array) ){ update_post_meta( $post_id, 'campaign_price_model' , strip_tags($_POST['campaign_price_model']) ); if( $_POST['campaign_price_model'] == 'cpp'){ update_post_meta( $post_id, 'campaign_budget', 'fixed' ); } } if(isset($_POST['campaign_start_date'])){ update_post_meta( $post_id, 'campaign_start_date', sanitize_text_field(strip_tags($_POST['campaign_start_date'])) ); } if(isset($_POST['campaign_stop_date'])){ if( isset($_POST['campaign_start_date']) && isset($_POST['campaign_stop_date']) && $_POST['campaign_start_date'] <= $_POST['campaign_stop_date'] || empty($_POST['campaign_start_date']) ){ update_post_meta( $post_id, 'campaign_stop_date', sanitize_text_field(strip_tags($_POST['campaign_stop_date'])) ); } } }//if not published - limits users ability to change stuff if(isset($_POST['campaign_priority']) && is_numeric($_POST['campaign_priority'])){ update_post_meta( $post_id, 'campaign_priority' , number_format($_POST['campaign_priority']) ); } if(isset($_POST['campaign_impressions']) && is_numeric($_POST['campaign_impressions']) || empty($_POST['campaign_impressions'])){ (empty($_POST['campaign_impressions']) ? update_post_meta($post_id, 'campaign_impressions', '') : update_post_meta($post_id, 'campaign_impressions', intval($_POST['campaign_impressions']))); } if(isset($_POST['campaign_ppimpressions']) && is_numeric($_POST['campaign_ppimpressions']) || empty($_POST['campaign_ppimpressions'])){ (empty($_POST['campaign_ppimpressions']) ? update_post_meta($post_id, 'campaign_ppimpressions' , '') : update_post_meta($post_id, 'campaign_ppimpressions', intval($_POST['campaign_ppimpressions']))); } if(isset( $_POST['campaign_location'] )){ delete_post_meta($post_id , 'campaign_location'); if(is_array($_POST['campaign_location']) ){ foreach( $_POST['campaign_location'] as $location ){ if(get_post_status($location)){ add_post_meta($post_id , 'campaign_location' , $location ); } if($lockrate){ $lockrate_array = unserialize(get_post_meta($post_id, 'campaign_locked_rates', true)); $lockrate_array[$location] = get_post_meta($location, 'location_price', true); update_post_meta($post_id , 'campaign_locked_rates' , serialize($lockrate_array) ); } } } } if (isset($_POST['campaign_change_owner']) && current_user_can('publish_adverts') ){ $post_author_id = get_post_field('post_author', $post_id); $newOwner = intval(strip_tags($_POST['campaign_change_owner'])); if ( $newOwner != $post_author_id && !wp_is_post_revision($post_id)){ // unhook this function so it doesn't loop infinitely remove_action( 'save_post', 'campaign_save_meta' ); $update_campaign = array( 'ID' => $post_id, 'post_author' => $newOwner, ); wp_update_post( $update_campaign ); // re-hook this function add_action( 'save_post', 'campaign_save_meta' ); } } }//save meta //add and change columns for campaigns function custom_campaign_columns($columns) { $date = $columns['date']; //$title = $columns['title']; unset( $columns['date'] ); $new_columns = array( 'owner' => __( 'Owner', 'ADVERT_TEXTDOMAIN' ), 'budget' => __( 'Type', 'ADVERT_TEXTDOMAIN' ), 'amount' => __( 'Amount', 'ADVERT_TEXTDOMAIN' ), 'available' => __( 'Available', 'ADVERT_TEXTDOMAIN' ), 'location' => __( 'Location(s)', 'ADVERT_TEXTDOMAIN' ), 'start_date' => __( 'Start Date', 'ADVERT_TEXTDOMAIN' ), 'stop_date' => __( 'Stop Date', 'ADVERT_TEXTDOMAIN' ), 'status' => __( 'Status', 'ADVERT_TEXTDOMAIN' ), ); return array_merge($columns, $new_columns); } function custom_campaign_column( $column, $post_id ) { switch ( $column ) { case 'owner' : if ( get_post_meta($post_id, 'campaign_owner', true) ){echo get_the_title( get_post_meta( $post_id , 'campaign_owner' , true ) );} break; case 'budget' : $bypass = intval(get_post_meta(get_post_meta($post_id, 'campaign_owner', true), 'advert_bypass_adcredits' , true)); if($bypass === 1){echo 'n/a';} else{ $campaign_budget = get_post_meta( $post_id , 'campaign_budget' , true ); if( $campaign_budget === 'fixed' ){ _e( 'Fixed', 'ADVERT_TEXTDOMAIN' ); } elseif( $campaign_budget === 'per_day' ){ _e( 'Per Day', 'ADVERT_TEXTDOMAIN' ); } } break; case 'amount': $bypass = intval(get_post_meta(get_post_meta($post_id, 'campaign_owner', true), 'advert_bypass_adcredits', true)); $budget_value = get_post_meta($post_id, 'campaign_budget_value', true); if($bypass === 1){echo 'n/a';} elseif(!empty($budget_value)){echo number_format_i18n($budget_value, 2);} break; case 'available': $bypass = intval(get_post_meta(get_post_meta($post_id, 'campaign_owner', true), 'advert_bypass_adcredits' , true)); //$campaign_charges = get_post_meta($post_id, 'campaign_charges', true); $campaign_budget = get_post_meta( $post_id , 'campaign_budget' , true ); $campaign_budget_value = get_post_meta($post_id, 'campaign_budget_value', true); if($bypass === 1){ echo 'n/a'; } elseif( $campaign_budget_value > 0 ){ if( $campaign_budget === 'fixed' ){ $log_fixed = apply_filters('fixed_campaign', $post_id); echo number_format_i18n(number_format($campaign_budget_value, 2) - number_format($log_fixed, 2), 2); } if( $campaign_budget === 'per_day' ){ $log_perday = apply_filters('perday_campaign', $post_id); echo number_format_i18n(number_format($campaign_budget_value, 2) - number_format($log_perday, 2), 2); } } else{ echo number_format_i18n(0, 2); } break; case 'location': $loc_array = get_post_meta($post_id, 'campaign_location', false); echo number_format_i18n(count($loc_array)); break; case 'start_date': $startdate = get_post_meta($post_id, 'campaign_start_date', true ); echo !empty($startdate) ? date_i18n( __( 'm/j/Y' ), strtotime($startdate)) : ''; break; case 'stop_date': $stopdate = get_post_meta($post_id, 'campaign_stop_date', true ); echo !empty($stopdate) ? date_i18n( __( 'm/j/Y' ), strtotime($stopdate)) : ''; break; case 'status': echo get_post_meta($post_id, 'campaign_viewable_status', true ); break; } } function campaign_sortable_columns( $sortable_columns ) { $sortable_columns['owner'] = 'owner'; $sortable_columns['budget'] = 'budget'; $sortable_columns['amount'] = 'amount'; $sortable_columns['available'] = 'available'; $sortable_columns['location'] = 'location'; $sortable_columns['start_date'] = 'start_date'; $sortable_columns['stop_date'] = 'stop_date'; $sortable_columns['status'] = 'status'; return $sortable_columns; }