'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(); ?>
'. __( '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( __( '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="" />
0 ){
if( $campaign_budget === 'fixed' ){
$log_fixed = apply_filters('fixed_campaign', $post->ID);
echo '
AdVert Tip: Pausing the campaign will remove it from the selection pool.
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; }