options = get_option( 'advert_cp_options_general' ); //display settings messages settings_errors(); //get current screen and set option name global $currentScreen; $currentScreen = '_general'; //get page - http or https $tab1 = esc_url(admin_url( 'admin.php?page=advert-cp-general' )); $tab2 = esc_url(admin_url( 'admin.php?page=advert-cp-users' )); $tab3 = esc_url(admin_url( 'admin.php?page=advert-cp-ads' )); ?> options = get_option( 'advert_cp_options_users' ); //display settings messages settings_errors(); //get current screen and set option name global $currentScreen; $currentScreen = '_users'; //get page - http or https $tab1 = esc_url(admin_url( 'admin.php?page=advert-cp-general' )); $tab2 = esc_url(admin_url( 'admin.php?page=advert-cp-users' )); $tab3 = esc_url(admin_url( 'admin.php?page=advert-cp-ads' )); ?> options = get_option( 'advert_cp_options_ads' ); //display settings messages settings_errors(); //get current screen and set option name global $currentScreen; $currentScreen = '_ads'; //get page - http or https $tab1 = esc_url(admin_url( 'admin.php?page=advert-cp-general' )); $tab2 = esc_url(admin_url( 'admin.php?page=advert-cp-users' )); $tab3 = esc_url(admin_url( 'admin.php?page=advert-cp-ads' )); ?> 'advert_pending_emails') ); add_settings_field( 'advert_published_emails', // ID __( 'Send Email Notifications For Published Items', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'checkbox_callback' ), // Callback 'advert-cp-general', // Page 'advert_options_cp_general_s1', // Section $args = array ('label_for' => 'advert_published_emails') ); //check if user can manage options if( current_user_can('manage_options') ){ add_settings_section( 'advert_options_cp_general_s2', // ID __( 'Payments', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'print_section_info_general_s2' ), // Callback 'advert-cp-general' // Page ); $advert_payment_plugins = get_option('advert_payment_plugins'); if(is_array($advert_payment_plugins)){ $selectOptions = array ('label_for' => 'advert_default_payments', 'option1' => 'none'); $counter = 2; foreach($advert_payment_plugins as $plugin){ $selectOptions['option'.$counter] = $plugin; $counter = $counter + 1; } } else{ $selectOptions = array ('label_for' => 'advert_default_payments', 'option1' => 'none'); } add_settings_field( 'advert_default_payments', // ID __( 'Payment Method', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'select_callback' ), // Callback 'advert-cp-general', // Page 'advert_options_cp_general_s2', // Section $selectOptions ); $payment_option = ''; if( array_key_exists('advert_default_payments',$advert_options) ){ $payment_option = $advert_options['advert_default_payments']; } //if payment plugin if($payment_option != 'none' && $payment_option != ''){ do_action('advert_add_payment_settings_' . $payment_option); }//end check if payment plugin add_settings_section( 'advert_options_cp_general_s3', // ID __( 'Advanced Settings', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'print_section_info_general_s3' ), // Callback 'advert-cp-general' // Page ); add_settings_field( 'advert_redo_standard_locations', // ID __( 'Restore Standard Locations', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'restore_standard_locations_callback' ), // Callback 'advert-cp-general', // Page 'advert_options_cp_general_s3', // Section $args = array ('label_for' => 'advert_redo_standard_locations', 'text' => __( 'This feature will attempt to restore standard locations. These are added when you install AdVert.', 'ADVERT_TEXTDOMAIN' ) ) ); add_settings_field( 'advert_lock_rates', // ID __( 'Turn off Locked Rates', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'checkbox_callback' ), // Callback 'advert-cp-general', // Page 'advert_options_cp_general_s3', // Section $args = array ('label_for' => 'advert_lock_rates', 'warning' => __( 'Warning: This feature turns off locked in rates. Locations prices can be changed without notice to the advertiser. Meaning: this could make some advertisers livid.', 'ADVERT_TEXTDOMAIN' )) ); add_settings_field( 'advert_turn_off', // ID __( 'Turn off AdVert', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'checkbox_callback' ), // Callback 'advert-cp-general', // Page 'advert_options_cp_general_s3', // Section $args = array ('label_for' => 'advert_turn_off', 'warning' => __( 'Warning: This feature turns off AdVert, i.e. no ads will be displayed.', 'ADVERT_TEXTDOMAIN' )) ); add_settings_field( 'advert_delete_all', // ID __( 'Empty AdVert Database', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'empty_advert_db_checkbox_callback' ), // Callback 'advert-cp-general', // Page 'advert_options_cp_general_s3', // Section $args = array ('label_for' => 'advert_delete_all') ); //advert plugin stuff add_settings_section( 'advert_options_cp_general_s4', // ID __( 'AdVert for WordPress', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'print_section_info_general_s4' ), // Callback 'advert-cp-general' // Page ); add_settings_field( 'advert_about_link', // ID __( 'Display about AdVert link below feedback (if enabled)', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'checkbox_callback' ), // Callback 'advert-cp-general', // Page 'advert_options_cp_general_s4', // Section $args = array ('label_for' => 'advert_about_link') ); }//end manage options //users add_settings_section( 'advert_options_cp_users_s1', // ID __( 'User Settings', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'print_section_info_users_s1' ), // Callback 'advert-cp-users' // Page ); add_settings_field( 'advert_register_users', // ID __( 'Allow Users to register to become an Advertiser', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'checkbox_callback' ), // Callback 'advert-cp-users', // Page 'advert_options_cp_users_s1', // Section $args = array ('label_for' => 'advert_register_users') ); add_settings_field( 'advert_display_text_to_reg_users', // ID __( 'Text that is displayed to the user who wants to start advertising', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'textarea_callback' ), // Callback 'advert-cp-users', // Page 'advert_options_cp_users_s1', // Section $args = array ('label_for' => 'advert_display_text_to_reg_users') ); add_settings_field( 'advert_allow_analysis_users', // ID __( 'Allow Users to view historical data Analysis - Only the users data is shown', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'checkbox_callback' ), // Callback 'advert-cp-users', // Page 'advert_options_cp_users_s1', // Section $args = array ('label_for' => 'advert_allow_analysis_users') ); add_settings_field( 'advert_allow_pricing_model_users', // ID __( 'Allow Users to select these pricing models', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'pricing_checkbox_callback' ), // Callback 'advert-cp-users', // Page 'advert_options_cp_users_s1', // Section $args = array ('label_for' => 'advert_allow_pricing_model_users') ); if( current_user_can('manage_options') ){ add_settings_section( 'advert_options_cp_users_s2', // ID __( 'AdVert Manager Settings', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'print_section_info_users_s2' ), // Callback 'advert-cp-users' // Page ); add_settings_field( 'advert_advertmgr_adcredits', // ID __( 'Add/Remove AdCredits', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'checkbox_callback' ), // Callback 'advert-cp-users', // Page 'advert_options_cp_users_s2', // Section $args = array ('label_for' => 'advert_advertmgr_adcredits') ); add_settings_field( 'advert_advertmgr_add_location', // ID __( 'Add a new location', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'checkbox_callback' ), // Callback 'advert-cp-users', // Page 'advert_options_cp_users_s2', // Section $args = array ('label_for' => 'advert_advertmgr_add_location') ); }//end manage options //ads add_settings_section( 'advert_options_cp_ads_s1', // ID __( 'Ad Settings', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'print_section_info_ads_s1' ), // Callback 'advert-cp-ads' // Page ); add_settings_field( 'advert_feedback', // ID __( 'Allow Ad Feedback', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'checkbox_callback' ), // Callback 'advert-cp-ads', // Page 'advert_options_cp_ads_s1', // Section $args = array ('label_for' => 'advert_feedback', 'text' => __('Gives your visitors a way to provide feedback about ads being displayed.', 'ADVERT_TEXTDOMAIN' )) ); add_settings_field( 'advert_feedback_hide_negative', // ID __( 'Hide Ads that have negative user feedback', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'checkbox_callback' ), // Callback 'advert-cp-ads', // Page 'advert_options_cp_ads_s1', // Section $args = array ('label_for' => 'advert_feedback_hide_negative', 'text' => __( 'If an ad received negative feedback, hide that particular ad from that user who gave negative feedback.', 'ADVERT_TEXTDOMAIN' )) ); add_settings_field( 'advert_identify_ad', // ID __( 'Display Advertisement above the Banner', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'checkbox_callback' ), // Callback 'advert-cp-ads', // Page 'advert_options_cp_ads_s1', // Section $args = array ('label_for' => 'advert_identify_ad', 'text' => __( 'Displays the word Advertisement above the ad, which helps users identify ads vs content. This helps prevent useless clicks for the advertiser.', 'ADVERT_TEXTDOMAIN' )) ); add_settings_field( 'advert_spammed_clicks', // ID __( 'Prevent spammed clicks', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'checkbox_callback' ), // Callback 'advert-cp-ads', // Page 'advert_options_cp_ads_s1', // Section $args = array ('label_for' => 'advert_spammed_clicks') ); add_settings_field( 'advert_display_advertise_here', // ID __( 'Display Notice for empty ad spaces', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'checkbox_callback' ), // Callback 'advert-cp-ads', // Page 'advert_options_cp_ads_s1', // Section $args = array ('label_for' => 'advert_display_advertise_here') ); add_settings_field( 'advert_display_advertise_here_text', // ID __( 'Notice for empty ad spaces', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'textarea_callback' ), // Callback 'advert-cp-ads', // Page 'advert_options_cp_ads_s1', // Section $args = array ('label_for' => 'advert_display_advertise_here_text') ); add_settings_field( 'advert_allow_editors_turn_off_ads', // ID __( 'Allow Editors to turn off advertisements by post/page', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'checkbox_callback' ), // Callback 'advert-cp-ads', // Page 'advert_options_cp_ads_s1', // Section $args = array ('label_for' => 'advert_allow_editors_turn_off_ads', 'warning' => __( 'Warning: Editors will be able to disable ads for the page or post.', 'ADVERT_TEXTDOMAIN' )) ); add_settings_field( 'advert_turn_off_ads_post_type', // ID __( 'Turn off ads by post type', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'checkbox_post_type_callback' ), // Callback 'advert-cp-ads', // Page 'advert_options_cp_ads_s1', // Section $args = array ('label_for' => 'advert_turn_off_ads_post_type') ); //add_settings_section( //'advert_options_cp_ads_s2', // ID //__( 'Image', 'ADVERT_TEXTDOMAIN' ), // Title //array( $this, 'print_section_info_ads_s2' ), // Callback //'advert-cp-ads' // Page //); add_settings_section( 'advert_options_cp_ads_s3', // ID __( 'Video', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'print_section_info_ads_s3' ), // Callback 'advert-cp-ads' // Page ); add_settings_field( 'advert_hide_videos', // ID __( 'Hide Videos after played', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'checkbox_callback' ), // Callback 'advert-cp-ads', // Page 'advert_options_cp_ads_s3', // Section $args = array ('label_for' => 'advert_hide_videos') ); //add_settings_section( //'advert_options_cp_ads_s4', // ID //__( 'Text', 'ADVERT_TEXTDOMAIN' ), // Title //array( $this, 'print_section_info_ads_s4' ), // Callback //'advert-cp-ads' // Page //); add_settings_section( 'advert_options_cp_ads_s5', // ID __( 'Blocking Ads', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'print_section_info_ads_s5' ), // Callback 'advert-cp-ads' // Page ); add_settings_field( 'advert_display_notice_blocked', // ID __( 'Display Notice If Visitor Is Blocking Ads', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'checkbox_callback' ), // Callback 'advert-cp-ads', // Page 'advert_options_cp_ads_s5', // Section $args = array ('label_for' => 'advert_display_notice_blocked') ); add_settings_field( 'advert_display_notice_blocked_text', // ID __( 'Message To Display To Visitor Blocking Ads', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'textarea_callback' ), // Callback 'advert-cp-ads', // Page 'advert_options_cp_ads_s5', // Section $args = array ('label_for' => 'advert_display_notice_blocked_text') ); //check if user can manage options if( current_user_can('manage_options') ){ add_settings_section( 'advert_options_cp_ads_s6', // ID __( 'Advanced Ad Settings', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'print_section_info_ads_s6' ), // Callback 'advert-cp-ads' // Page ); add_settings_field( 'advert_disable_member_ads', // ID __( 'Disable Ad Tracking for logged in users', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'checkbox_callback' ), // Callback 'advert-cp-ads', // Page 'advert_options_cp_ads_s6', // Section $args = array ('label_for' => 'advert_disable_member_ads', 'warning' => __( 'Warning: Clicks, Impressions and Feedback will not be added to the database for logged in users.', 'ADVERT_TEXTDOMAIN' )) ); add_settings_field( 'advert_log_ads', // ID __( 'Disable Ad Tracking
(clicks, impressions etc.)', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'checkbox_callback' ), // Callback 'advert-cp-ads', // Page 'advert_options_cp_ads_s6', // Section $args = array ('label_for' => 'advert_log_ads', 'warning' => __( 'Warning: Clicks, Impressions and Feedback will be disabled and not be added to the database.', 'ADVERT_TEXTDOMAIN' )) ); add_settings_field( 'advert_decode_key', // ID __( 'AdVert Encryption Key', 'ADVERT_TEXTDOMAIN' ), // Title array( $this, 'textbox_callback' ), // Callback 'advert-cp-ads', // Page 'advert_options_cp_ads_s6', // Section $args = array ('label_for' => 'advert_decode_key') ); } }// End page_init //infobox public function print_section_info_general_s1() { echo '' . __( 'As the title states, these are general settings for AdVert', 'ADVERT_TEXTDOMAIN' ) . ''; } public function print_section_info_general_s2() { echo '' . __( 'Select a payment option for AdVert users', 'ADVERT_TEXTDOMAIN' ) . ''; } public function print_section_info_general_s3() { echo '' . __( 'Most of these settings are self-explanitory, but when in doubt click the help tab above for more information - Only site admins can see this section', 'ADVERT_TEXTDOMAIN' ) . ''; } public function print_section_info_general_s4() { echo '' . __( 'Optional stuff to show your support of AdVert for WordPress', 'ADVERT_TEXTDOMAIN' ) . ''; } public function print_section_info_users_s1() { echo '' . __( 'Change settings for users', 'ADVERT_TEXTDOMAIN' ) . ''; } public function print_section_info_users_s2() { echo '' . __( 'Change settings for AdVert Managers', 'ADVERT_TEXTDOMAIN' ) . ''; } public function print_section_info_ads_s1() { echo '' . __( 'General Ad Settings', 'ADVERT_TEXTDOMAIN' ) . ''; } public function print_section_info_ads_s2() { echo '' . __( 'Banners that are images', 'ADVERT_TEXTDOMAIN' ) . ''; } public function print_section_info_ads_s3() { echo '' . __( 'Banners that are videos', 'ADVERT_TEXTDOMAIN' ) . ''; } public function print_section_info_ads_s4() { echo '' . __( 'Banners that are text', 'ADVERT_TEXTDOMAIN' ) . ''; } public function print_section_info_ads_s5() { echo '' . __( 'Blocking Ads', 'ADVERT_TEXTDOMAIN' ) . ''; } public function print_section_info_ads_s6() { echo '' . __( 'Ad Flow', 'ADVERT_TEXTDOMAIN' ) . ''; } // Textboxes public function textbox_callback(array $args) { global $currentScreen; $textbox_id = $args['label_for']; $type = array_key_exists('type', $args) ? $args['type'] : 'text'; $textbox_options = get_option('advert_cp_options'.$currentScreen); $maxChar = $textbox_id === 'advert_decode_key' ? $maxChar = 'maxlength="16"' : ''; printf( '', isset( $textbox_options[$textbox_id] ) ? esc_attr( $textbox_options[$textbox_id] ) : '' ); } // Textarea public function textarea_callback(array $args) { global $currentScreen; $textarea_id = $args['label_for']; $text = ( array_key_exists('text', $args) ? '

' . $args['text'] . '

' : '' ); $textarea_options = get_option('advert_cp_options'.$currentScreen); printf( ''.$text, isset( $textarea_options[$textarea_id] ) ? esc_attr( $textarea_options[$textarea_id] ) : '' ); } // Selection public function select_callback(array $selectOptions) { global $currentScreen; $select_id = $selectOptions['label_for']; $text = ( array_key_exists('text', $selectOptions) ? '' : '' ); $select_options = get_option('advert_cp_options'.$currentScreen); $howmany = sizeof($selectOptions); $count = 1; $selected = ''; $html = ''; echo $html.$text; } // Checkbox public function checkbox_callback(array $args) { global $currentScreen; $checkbox_id = $args['label_for']; $checkbox_options = get_option('advert_cp_options'.$currentScreen); $checked = ( isset($checkbox_options[$checkbox_id]) && intval($checkbox_options[$checkbox_id]) === 1 ? $checked = 1 : $checked = 0 ); $text = ( array_key_exists('text', $args) ? '' : '' ); $warning = ( array_key_exists('warning', $args) ? '' : '' ); $warningClass = ( !empty($warning) ? $warningClass = 'class="hide-if-no-js advert-cp-warning"' : '' ); $html = ''; echo $html.$text.$warning; } // Radio public function radio_callback(array $radioOptions) { global $currentScreen; $radio_id = $radioOptions['label_for']; $text = ( array_key_exists('text', $args) ? '

' . $args['text'] . '

' : '' ); $radio_options = get_option('advert_cp_options'.$currentScreen); $howmany = sizeof($radioOptions); $count = 1; $html = ''; while ($count < $howmany) { $html .= '
'; $count = $count + 1; } echo $html.$text; } public function restore_standard_locations_callback(array $args) { global $currentScreen; $checkbox_id = $args['label_for']; $checkbox_options = get_option('advert_cp_options'.$currentScreen); if(isset($checkbox_options[$checkbox_id]) && $checkbox_options[$checkbox_id] === '1' && current_user_can('manage_options')){ $standard_locations = get_option('advert_standard_locations'); if(is_array($standard_locations)){ foreach($standard_locations as $key => $location){ if(get_post_status($location) && get_post_type($location) === 'advert-location' ){ wp_delete_post($location, true); } } } delete_option('advert_standard_locations'); require_once(ADVERT_PLUGIN_DIR . 'includes/class-advert-setup.php'); AdVert_Setup::create_standard_locations(); $text = ''; $warning = ''; $warningClass = ''; $checked = 0; } else{ $checked = 0; $text = ( array_key_exists('text', $args) ? '' : '' ); $warning = ( array_key_exists('warning', $args) ? '' : '' ); $warningClass = ( !empty($warning) ? $warningClass = 'class="hide-if-no-js advert-cp-warning"' : '' ); } $html = ''; echo $html.$text.$warning; } //adds an option for empty callback which is useful for links and whatnot public function blank_callback(){ return; } // Checkbox specific to empty advert database public function empty_advert_db_checkbox_callback(array $args) { global $currentScreen; $checkbox_id = $args['label_for']; $checkbox_options = get_option('advert_cp_options'.$currentScreen); if(isset($checkbox_options[$checkbox_id]) && $checkbox_options[$checkbox_id] === '1' && current_user_can('manage_options')){ global $wpdb; $table_name = $wpdb->prefix . 'advert_logged'; $delete = $wpdb->query( "TRUNCATE TABLE $table_name " ); $checked = 0; } else{$checked = 0;} $warning = ''; $html = ''; echo $html.$warning; } // Checkbox post type public function checkbox_post_type_callback(array $args) { global $currentScreen; $checkbox_id = $args['label_for']; $checkbox_options = get_option('advert_cp_options'.$currentScreen); $post_args = array( 'public' => true ); $post_types = get_post_types( $post_args ); echo '