advert_create_payment_filters(); require_once( ADVERT_PLUGIN_DIR . 'includes/class-advert-post-types.php' ); new AdVert_Post_Types(); if( $post_page_switch === 1 ){ require_once( ADVERT_PLUGIN_DIR . 'includes/class-advert-post-page-metaboxes.php' ); } require_once( ADVERT_PLUGIN_DIR . 'includes/advert-post-metabox.php' ); require_once( ADVERT_PLUGIN_DIR . 'includes/advert-banners.php' ); require_once( ADVERT_PLUGIN_DIR . 'includes/advert-advertisers.php' ); require_once( ADVERT_PLUGIN_DIR . 'includes/advert-campaigns.php' ); require_once( ADVERT_PLUGIN_DIR . 'includes/advert-locations.php' ); require_once( ADVERT_PLUGIN_DIR . 'includes/class-advert-screentabs.php' ); new AdVert_Screentabs(); require_once( ADVERT_PLUGIN_DIR . 'includes/class-advert-analysis.php' ); require_once( ADVERT_PLUGIN_DIR . 'includes/class-advert-analysis-drilldown.php' ); require_once( ADVERT_PLUGIN_DIR . 'includes/class-advert-control-panel.php' ); require_once( ADVERT_PLUGIN_DIR . 'includes/advert-archive.php' ); /** AdVert filters and actions specific to users in the Admin area **/ //enqueue admin scripts add_action('admin_enqueue_scripts', 'advert_admin_scripts'); //filter the ajax for displaying media add_filter('ajax_query_attachments_args', 'advert_show_current_user_attachments', 10, 1); //limit the viewable items for AdVert users //hides any data specific to AdVert from the normal WordPress stuff (unless Admin posts stuff) add_action('pre_get_posts', 'advert_query_set_only_author'); //change post count for AdVert user add_filter('wp_count_posts', 'advert_wp_count_posts', 10, 3); //post override filtering for advert users add_filter( 'override_post_lock', 'advert_control_lockout' ); //upload to separate uploads folder: advert_uploads if(is_array($current_user)){ $current_user->roles[0]; if( in_array('advert_manager', $current_user->roles) || in_array('advert_user', $current_user->roles) ){ add_filter('upload_dir', 'advert_upload_dir'); } } } else{ //allow some admin functions require_once( ADVERT_PLUGIN_DIR . 'admin/advert-admin-functions.php' ); //enqueue admin css style add_action('admin_enqueue_scripts', 'advert_connected_multisite_css'); //allow widgets require_once( ADVERT_PLUGIN_DIR . 'includes/class-advert-widget.php' ); } //add the top-level user page if ( !current_user_can( 'publish_adverts' ) && current_user_can('subscriber') || !current_user_can( 'publish_adverts' ) && current_user_can('edit_adverts') ){ require_once( ADVERT_PLUGIN_DIR . 'includes/advert-dashboard-user.php' ); add_action('admin_menu', 'register_advert_user_menu'); add_action('admin_menu', 'register_advert_user_menu_transactions'); } //add the top-level admin page if( current_user_can('publish_adverts')){ require_once( ADVERT_PLUGIN_DIR . 'includes/advert-dashboard.php' ); add_action('admin_menu', 'register_advert_menu'); if( $get_network_type === false || get_current_blog_id() == $main_site_id || $advert_active_campaigns_none ){ new AdVert_Control_Panel(); } add_action('admin_menu', 'register_advert_menu_transactions'); } } } function register_advert_menu(){ if( is_multisite() ){ global $advert_network_options; global $get_network_type; global $main_site_id; global $current_site_id; if( $get_network_type === true && $current_site_id != $main_site_id && !array_key_exists('advert_active_campaigns_none',$advert_network_options) ){ return; } } global $wpdb; $query_pending_advertisers = " SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'pending' AND post_type = 'advert-advertiser' "; $query_pending_banners = " SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'pending' AND post_type = 'advert-banner' "; $query_pending_campaigns = " SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'pending' AND post_type = 'advert-campaign' "; $advertiser_post_count = $wpdb->get_var($query_pending_advertisers); $banner_post_count = $wpdb->get_var($query_pending_banners); $campaign_post_count = $wpdb->get_var($query_pending_campaigns); $total_post_count = $advertiser_post_count + $banner_post_count + $campaign_post_count; $advert_menu = ( !empty($total_post_count) ? sprintf( __( 'AdVert %s', 'ADVERT_TEXTDOMAIN' ), "" . number_format_i18n($total_post_count) . "" ) : __( 'AdVert', 'ADVERT_TEXTDOMAIN' ) ); $advert_advertiser_menu = ( !empty($advertiser_post_count) ? sprintf( __( 'Advertisers %s', 'ADVERT_TEXTDOMAIN' ), "" . number_format_i18n($advertiser_post_count) . "" ) : __( 'Advertisers', 'ADVERT_TEXTDOMAIN' ) ); $advert_banner_menu = ( !empty($banner_post_count) ? sprintf( __( 'Banners %s', 'ADVERT_TEXTDOMAIN' ), "" . number_format_i18n($banner_post_count) . "" ) : __( 'Banners', 'ADVERT_TEXTDOMAIN' ) ); $advert_campaign_menu = ( !empty($campaign_post_count) ? sprintf( __( 'Campaigns %s', 'ADVERT_TEXTDOMAIN' ), "" . number_format_i18n($campaign_post_count) . "" ) : __( 'Campaigns', 'ADVERT_TEXTDOMAIN' ) ); //top level page add_menu_page( __( 'AdVert', 'ADVERT_TEXTDOMAIN' ), $advert_menu, 'publish_adverts', 'advert', 'advert_dashboard_start', '' ); //change name of top level name in the submenu area add_submenu_page( 'advert', __( 'Dashboard', 'ADVERT_TEXTDOMAIN' ), __( 'Dashboard', 'ADVERT_TEXTDOMAIN' ), 'publish_adverts', 'advert', 'advert_dashboard_start' ); //add submenus add_submenu_page( 'advert', __( 'Advertisers', 'ADVERT_TEXTDOMAIN' ), $advert_advertiser_menu, 'publish_adverts', 'edit.php?post_type=advert-advertiser', '' ); add_submenu_page( 'advert', __( 'Banners', 'ADVERT_TEXTDOMAIN' ), $advert_banner_menu, 'edit_adverts', 'edit.php?post_type=advert-banner', '' ); add_submenu_page( 'advert', __( 'Campaigns', 'ADVERT_TEXTDOMAIN' ), $advert_campaign_menu, 'publish_adverts', 'edit.php?post_type=advert-campaign', '' ); add_submenu_page( 'advert', __( 'Locations', 'ADVERT_TEXTDOMAIN' ), __( 'Locations', 'ADVERT_TEXTDOMAIN' ), 'publish_adverts', 'edit.php?post_type=advert-location', '' ); add_submenu_page( 'advert', __( 'Analysis Overview', 'ADVERT_TEXTDOMAIN' ), __( 'Analysis', 'ADVERT_TEXTDOMAIN' ), 'publish_adverts', 'advert-analysis-overview', 'advert_load_analysis' ); add_submenu_page( 'advert', __( 'Analysis Drilldown', 'ADVERT_TEXTDOMAIN' ), __( 'Analysis', 'ADVERT_TEXTDOMAIN' ), 'publish_adverts', 'advert-analysis-drilldown', 'advert_load_analysis_drilldown' ); } function register_advert_user_menu(){ global $advert_options; $new_user_reg = 0; $user_id = get_current_user_id(); $howmany = apply_filters('check_advertiser', $user_id); if( array_key_exists('advert_register_users',$advert_options) ){ $new_user_reg = intval($advert_options['advert_register_users']); } //check if the options allow new user registration if($new_user_reg === 1 || current_user_can('edit_adverts')){ if( is_multisite() ){ global $advert_network_options; global $get_network_type; global $main_site_id; global $current_site_id; if( $get_network_type === true && $current_site_id != $main_site_id && !array_key_exists('advert_active_campaigns_none',$advert_network_options) ){ switch_to_blog($main_site_id); //check if current user is an advertiser $howmany = intval(apply_filters('check_advertiser', $user_id)); if( $howmany === 0 ) return; //top level page add_menu_page( __( 'AdVert', 'ADVERT_TEXTDOMAIN' ), __( 'AdVert', 'ADVERT_TEXTDOMAIN' ), 'read', 'advert-user', '', '', 93.3); global $menu; $menu[93.3][2] = esc_url(admin_url('admin.php?page=advert-user')); //add user to main site if user does not have access with default subscriber role $role = 'subscriber'; if(!is_user_member_of_blog( $user_id, $main_site_id )){ add_user_to_blog($main_site_id, $user_id, $role); } restore_current_blog(); return; } } //top level page add_menu_page( __( 'AdVert', 'ADVERT_TEXTDOMAIN' ), __( 'AdVert', 'ADVERT_TEXTDOMAIN' ), 'read', 'advert-user', 'advert_dashboard_user_start', '' ); //change name of top level name in the submenu area add_submenu_page( 'advert-user', __( 'Dashboard', 'ADVERT_TEXTDOMAIN' ), __( 'Dashboard', 'ADVERT_TEXTDOMAIN' ), 'read', 'advert-user', 'advert_dashboard_user_start' ); //add submenus if ( $howmany > 0 && current_user_can('edit_adverts') ){ add_submenu_page( 'advert-user', __( 'Banners', 'ADVERT_TEXTDOMAIN' ), __( 'Banners', 'ADVERT_TEXTDOMAIN' ), 'edit_adverts', 'edit.php?post_type=advert-banner', '' ); add_submenu_page( 'advert-user', __( 'Campaigns', 'ADVERT_TEXTDOMAIN' ), __( 'Campaigns', 'ADVERT_TEXTDOMAIN' ), 'edit_adverts', 'edit.php?post_type=advert-campaign', '' ); $user_analysis = 0; if(array_key_exists('advert_allow_analysis_users', $advert_options)){ $user_analysis = intval($advert_options['advert_allow_analysis_users']); } //add submenus if($user_analysis === 1 && $howmany > 0){ add_submenu_page( 'advert-user', __( 'Analysis Overview', 'ADVERT_TEXTDOMAIN' ), __( 'Analysis', 'ADVERT_TEXTDOMAIN' ), 'edit_adverts', 'advert-analysis-overview', 'advert_load_analysis' ); add_submenu_page( 'advert-user', __( 'Analysis Drilldown', 'ADVERT_TEXTDOMAIN' ), __( 'Analysis', 'ADVERT_TEXTDOMAIN' ), 'edit_adverts', 'advert-analysis-drilldown', 'advert_load_analysis_drilldown' ); } } } } function register_advert_menu_transactions(){ add_submenu_page('advert', __( 'Transactions', 'ADVERT_TEXTDOMAIN' ), __( 'Transactions', 'ADVERT_TEXTDOMAIN' ), 'publish_adverts', 'advert-transactions', 'advert_load_transactions'); } function register_advert_user_menu_transactions(){ add_submenu_page('advert-user', __( 'Transactions', 'ADVERT_TEXTDOMAIN' ), __( 'Transactions', 'ADVERT_TEXTDOMAIN' ), 'edit_adverts', 'advert-transactions', 'advert_load_transactions'); } function advert_load_transactions(){ require_once( ADVERT_PLUGIN_DIR . 'includes/class-advert-transactions.php' ); } function advert_load_dashboard(){ require_once( ADVERT_PLUGIN_DIR . 'includes/advert-dashboard.php' ); } function advert_load_analysis(){ new AdVert_Analysis(); } function advert_load_analysis_drilldown(){ new AdVert_Analysis_Drilldown(); } function advert_connected_multisite_css(){ wp_enqueue_style('advert-style', ADVERT_PLUGIN_URL . 'css/advertbe.css'); }