ID, 'advertiser_company', true); add_meta_box('advert_advertiser', __( 'Advertiser Info', 'ADVERT_TEXTDOMAIN' ), 'advertiser_meta_box', 'advert-advertiser' , 'normal' , 'high' ); if( !empty($company) ){ //user_advertmgr_adcredits //check options $user_advertmgr_adcredits = 0; if( array_key_exists('advert_advertmgr_adcredits', $advert_options) ){ $user_advertmgr_adcredits = intval($advert_options['advert_advertmgr_adcredits']); } if( current_user_can('publish_adverts') && $user_advertmgr_adcredits === 1 || current_user_can('manage_options') ){ add_meta_box('advert_advertiser_overview', __( 'Advertiser Overview', 'ADVERT_TEXTDOMAIN' ), 'advertiser_meta_box2', 'advert-advertiser' , 'side' , 'high' ); } add_meta_box('advert_change_ownership', __( 'Change Control', 'ADVERT_TEXTDOMAIN' ), 'advertiser_meta_box3', 'advert-advertiser' , 'side' , 'low' ); add_meta_box('advert_transaction_history', __( 'Transaction History', 'ADVERT_TEXTDOMAIN' ), 'advertiser_meta_box4', 'advert-advertiser' , 'normal' , 'low' ); } remove_meta_box('postimagediv','advert-advertiser','side'); remove_meta_box( 'slugdiv', 'advert-advertiser', 'normal' ); remove_meta_box( 'submitdiv', 'advert-advertiser', 'side' ); add_meta_box('submitdiv', __( 'Publishing Tools', 'ADVERT_TEXTDOMAIN' ), 'advert_post_submit_meta_box', 'advert-advertiser', 'side', 'high'); } function advertiser_meta_box($post){ wp_nonce_field( 'advertiser_meta_box', 'advertiser_meta_box_nonce' ); $company = get_post_meta($post->ID , 'advertiser_company' , true); $email = get_post_meta($post->ID , 'advertiser_email' , true); $telephone = get_post_meta($post->ID , 'advertiser_telephone' , true); $notes = get_post_meta($post->ID , 'advertiser_notes' , true); $add_credits = get_post_meta($post->ID , 'add_credits' , false); ?>





ID , 'company_credits' , true); $advert_bypass_adcredits = get_post_meta($post->ID , 'advert_bypass_adcredits' , true); if ( $advert_bypass_adcredits != 1 ){ ?>






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


View More

'; } //control the messages function advertiser_updated_messages( $messages ) { global $post, $post_ID; $messages['advert-advertiser'] = array( 0 => '', // Unused. Messages start at index 1. 1 => __('Advertiser updated.' , 'ADVERT_TEXTDOMAIN') , 6 => __('Advertiser published.' , 'ADVERT_TEXTDOMAIN') , 8 => __('Advertiser submitted.' , 'ADVERT_TEXTDOMAIN'), 9 => sprintf( __('Advertiser scheduled for: %1$s.' , 'ADVERT_TEXTDOMAIN'), date_i18n( __( 'M j, Y @ G:i' ), strtotime( $post->post_date ) ) ), 10 => __('Advertiser draft updated.', 'ADVERT_TEXTDOMAIN') ); return $messages; } //save post meta data function advertiser_save_meta($post_id){ if ('advert-advertiser' != get_post_type() || !current_user_can('publish_adverts')) return; if(!isset($_POST['advertiser_meta_box_nonce']) || !wp_verify_nonce($_POST['advertiser_meta_box_nonce'], 'advertiser_meta_box')) return; //justincase if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return; //check the status $advertiser_status = get_post_status($post_id); if(isset($_POST['advertiser_company'])){ $advertiser_company = sanitize_text_field(strip_tags($_POST['advertiser_company'])); update_post_meta( $post_id, 'advertiser_company' , $advertiser_company ); if( !wp_is_post_revision($post_id) ){ remove_action('save_post', 'advertiser_save_meta'); $update_advert = array( 'ID' => $post_id, 'post_title' => $advertiser_company, 'post_name' => preg_replace("/[\s_]/", "-", strip_tags($advertiser_company)), ); wp_update_post( $update_advert ); add_action('save_post', 'advertiser_save_meta'); } } if(isset($_POST['advertiser_telephone'])){ $advertiser_telephone = sanitize_text_field(strip_tags($_POST['advertiser_telephone'])); update_post_meta( $post_id, 'advertiser_telephone' , $advertiser_telephone ); } if(isset($_POST['advertiser_notes'])){ $advertiser_notes = sanitize_text_field(strip_tags($_POST['advertiser_notes'])); update_post_meta( $post_id, 'advertiser_notes' , $advertiser_notes ); } if(isset($_POST['advertiser_email'])){ if( is_email($_POST['advertiser_email'])){ $advertiser_email = sanitize_email($_POST['advertiser_email']); update_post_meta( $post_id, 'advertiser_email' , $advertiser_email ); } } //add or remove adcredits in array here if(isset( $_POST['add_credits'] ) && $_POST['add_credits'] !=''){ $adcredits = number_format(sanitize_text_field($_POST['add_credits']), 2); $addremove = sanitize_text_field($_POST['add_remove_adcredits']); $reason = sanitize_text_field($_POST['transaction_reason']); if( preg_match('/^[0-9]+(?:\.[0-9]{0,2})?$/', $adcredits) && $adcredits > 0 ){ if( $addremove === 'add' ){ $transaction = apply_filters('add_adcredits', $post_id, $adcredits, '', $reason, ''); } elseif( $addremove === 'remove' ){ $transaction = apply_filters('remove_adcredits', $post_id, $adcredits, '', $reason, ''); } if($transaction) do_action('calc_adcredits', $post_id); } } if(isset($_POST['advert_bypass_adcredits']) && current_user_can('manage_options')){ update_post_meta( $post_id, 'advert_bypass_adcredits' , intval($_POST['advert_bypass_adcredits']) ); } else{ update_post_meta( $post_id, 'advert_bypass_adcredits' , 0 ); } $post_author_id = get_post_field('post_author', $post_id); if(isset($_POST['add_change_owner']) && current_user_can('publish_adverts')){ $newOwner = sanitize_text_field($_POST['add_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', 'advertiser_save_meta' ); $update_advert = array( 'ID' => $post_id, 'post_author' => $newOwner, ); wp_update_post( $update_advert ); // re-hook this function add_action( 'save_post', 'advertiser_save_meta' ); if(!user_can($newOwner, 'publish_adverts') || !user_can($newOwner, 'manage_options')){ update_user_meta($newOwner, 'advert_advertiser_company_id'.get_current_blog_id(), $post_id); //add advertiser info to advert_user table global $wpdb; $table_name = $wpdb->prefix . 'advert_users'; $wpdb->insert( $table_name, array( 'site_id' => get_current_blog_id(), 'adv_id' => $post_id, 'user_id' => $newOwner ), array( '%d', '%d', '%d' ) ); } } } if(!empty($post_author_id) && $advertiser_status === 'publish'){ if(!user_can( $post_author_id, 'publish_adverts') && !user_can($newOwner, 'manage_options') && user_can( $post_author_id, 'subscriber')){ wp_update_user( array( 'ID' => $post_author_id, 'role' => 'advert_user' ) ); update_user_meta($post_author_id, 'advert_advertiser_company_id'.get_current_blog_id(), $post_id); //add advertiser info to advert_user table global $wpdb; $table_name = $wpdb->prefix . 'advert_users'; $wpdb->insert( $table_name, array( 'site_id' => get_current_blog_id(), 'adv_id' => $post_id, 'user_id' => $post_author_id ), array( '%d', '%d', '%d' ) ); } } }//end save meta function advertiser_delete_post($post_id){ $post_type = get_post_type( $post_id ); $post_author_id = get_post_field('post_author', $post_id); if(!did_action('delete_post') && $post_type === 'advert-advertiser' && !user_can( $post_author_id, 'manage_options' ) && !user_can( $post_author_id, 'publish_adverts' )){ if(user_can( $post_author_id, 'edit_adverts' )){ wp_update_user( array( 'ID' => $post_author_id, 'role' => 'subscriber' ) ); delete_user_meta( $post_author_id, 'advert_advertiser_company_id'.get_current_blog_id()); } } } //add and change columns for advertisers function custom_advertiser_columns($columns) { $date = $columns['date']; //$title = $columns['title']; unset( $columns['date'] ); $new_columns = array( 'owner' => __('Owner', 'ADVERT_TEXTDOMAIN'), 'email' => __('Email', 'ADVERT_TEXTDOMAIN'), 'adcredits' => __('Ad Credits', 'ADVERT_TEXTDOMAIN'), 'campaigns' => __('Active Campaigns', 'ADVERT_TEXTDOMAIN'), 'banners' => __('# of Banners', 'ADVERT_TEXTDOMAIN'), ); return array_merge($columns, $new_columns); } function custom_advertiser_column( $column, $post_id ) { switch ( $column ) { case 'owner' : echo the_author_meta('user_login'); break; case 'email' : echo get_post_meta($post_id, 'advertiser_email', true); break; case 'adcredits' : $bypass = intval(get_post_meta($post_id, 'advert_bypass_adcredits', true)); if($bypass === 1){echo 'n/a';} else{ $company_credits = get_post_meta($post_id, 'company_credits', true); $company_credits = !empty($company_credits) ? number_format_i18n($company_credits, 2) : number_format_i18n(0, 2); echo $company_credits; } break; case 'campaigns' : $args = array('post_type' => 'advert-campaign', 'post_status' => 'publish', 'posts_per_page' => -1, 'meta_query' => array(array('key' => 'campaign_owner', 'value' => $post_id),)); $posts = new WP_Query($args); $activeCount = 0; $today = strtotime(date('m/d/Y')); while($posts->have_posts()){ $posts->the_post(); $start = strtotime(get_post_meta($posts->post->ID, 'campaign_start_date', true)); $stop = strtotime(get_post_meta($posts->post->ID, 'campaign_stop_date', true)); if ( $start <= $today && $stop >= $today || empty($start) && empty($stop) || $start <= $today && empty($stop) || empty($start) && $stop >= $today ){$activeCount = $activeCount + 1;} } echo number_format_i18n($activeCount); wp_reset_postdata(); break; case 'banners' : $args = array('post_type' => 'advert-banner', 'post_status' => 'publish', 'posts_per_page' => -1, 'meta_query' => array(array('key' => 'banner_owner', 'value' => $post_id),)); $posts = new WP_Query($args); echo number_format_i18n($posts->found_posts); wp_reset_postdata(); break; } } function custom_advertiser_sortable_columns( $sortable_columns ) { $sortable_columns['company'] = 'company'; $sortable_columns['email'] = 'email'; $sortable_columns['adcredits'] = 'adcredits'; $sortable_columns['campaigns'] = 'campaigns'; $sortable_columns['banners'] = 'banners'; return $sortable_columns; }