admium_globals = $admium_globals; $this->wpapi = $wpapi; } function set_hooks() { // Add menu pages to configure the plugin. $this->wpapi->add_action('admin_menu', array($this, 'plugin_admin_menu')); // Add interface to mark posts or pages as subscriber-only. $this->wpapi->add_action('add_meta_boxes', array($this, 'plugin_post_boxes')); $this->wpapi->add_action('save_post', array($this, 'save_post_data')); $this->wpapi->add_action('save_post', array($this, 'save_quick_edit_data')); // Filter to add new column to posts list $this->wpapi->add_filter('manage_post_posts_columns', array($this, 'add_post_columns')); // Action to add content to custom posts column $this->wpapi->add_action('manage_posts_custom_column', array($this, 'render_post_columns'), 10, 2); // Action to change quick edit box $this->wpapi->add_action('quick_edit_custom_box', array($this, 'add_quick_edit'), 10, 2); // Action to update quick edit inputs $this->wpapi->add_action('admin_footer', array($this, 'quick_edit_javascript')); $this->wpapi->add_filter('post_row_actions', array($this, 'expand_quick_edit_link'), 10, 2); // Action to put up a notice that configuration is not complete if ( !$this->wpapi->get_option($this->admium_globals->api_token_name()) && !isset($_POST['submit']) && $_GET['page'] != $this->admium_globals->admin_page_name() ) { $this->wpapi->add_action('admin_notices', array($this, 'configuration_incomplete_warning')); } } function render_plugin_page_setup_view() { # Retrieve HTML of setup view from main server. $test = array_key_exists($this->admium_globals->test_parameter_name(), $_GET); $setup_url = $this->admium_globals->setup_plugin_url($test); $response = $this->wpapi->wp_remote_get($setup_url); # Render setup view. echo $response['body']; # Pre-fill some fields in the form included in that HTML. $email = $this->wpapi->get_option('admin_email'); $site_name = $this->wpapi->get_option('blogname'); $site_url = $this->wpapi->home_url(); ?> admium_globals->test_parameter_name(), $_GET); $not_first_view = $this->wpapi->get_option($this->admium_globals->not_first_view_flag_name()); $this->wpapi->update_option($this->admium_globals->not_first_view_flag_name(), true); $page_url = $this->admium_globals->plugin_page_url($api_token, $not_first_view, $test); echo ""; } function render_plugin_page_getting_started() { $test = array_key_exists($this->admium_globals->test_parameter_name(), $_GET); $page_url = $this->admium_globals->plugin_getting_started($test); echo ""; } function admium_plugin_page() { if ( isset($_POST['publisher'] ) ) { # Handle submission of the setup view. $test = array_key_exists($this->admium_globals->test_parameter_name(), $_GET); $response = $this->wpapi->wp_remote_post( $this->admium_globals->setup_post_url($test), array( 'method' => 'POST', 'timeout' => 45, 'redirection' => 5, 'httpversion' => '1.0', 'blocking' => true, 'headers' => array(), 'body' => $_POST, 'cookies' => array() ) ); if ($response['response']['code'] == 200) { # It worked! # TODO: handle errors with updating option. list($token, $site_id) = explode(",", $response['body']); $this->wpapi->update_option($this->admium_globals->api_token_name(), $token); $this->wpapi->update_option($this->admium_globals->admium_site_id(), $site_id); $this->render_plugin_page_after_setup_view($token); } else if ($response['response']['code'] == 401) { # Invalid API token was submitted. echo "
Invalid access key entered. Try again or email support.
"; $this->render_plugin_page_setup_view(); } else if ($response['response']['code'] == 403) { # Failed to validate a model or somethin'. echo "
Invalid info entered. Try again or email support.
"; $this->render_plugin_page_setup_view(); } else { # Who knows what. echo "
An unknown error occurred. Try again or email support.
"; var_dump($response); $this->render_plugin_page_setup_view(); } } else if ( !$this->wpapi->get_option($this->admium_globals->api_token_name()) ) { $this->render_plugin_page_setup_view(); } else { $api_token = $this->wpapi->get_option($this->admium_globals->api_token_name()); $this->render_plugin_page_after_setup_view($api_token); } } // This function renders a notice at the top of the admin UI that // this plugin requires more configuration. function configuration_incomplete_warning() { ?>

Admium is almost ready. You must click here to finish setup.

wpapi->add_submenu_page('admium_menu', 'Admium Dashboard', 'Dashboard', 'administrator', 'admium_menu', array($this, 'admium_plugin_page')); $this->wpapi->add_submenu_page('admium_menu', 'Getting Started', 'Getting Started', 'administrator', 'admium_menu_getting_started', array($this, 'render_plugin_page_getting_started')); $this->wpapi->add_submenu_page('admium_menu', 'Admium Settings', 'Settings', 'administrator', 'admium_menu_settings', array($this, 'menu_page')); } // This function makes a page in the WordPress admin UI. function menu_page() { $hidden_field_name = 'mt_submit_hidden'; $call_to_subscribe = get_option($this->admium_globals->call_to_subscribe_option_name()); if( isset($_POST[ $hidden_field_name ]) && $_POST[ $hidden_field_name ] == 'Y' ) { // This is a POST, so update the option. $call_to_subscribe = stripslashes( $_POST[ $this->admium_globals->call_to_subscribe_option_name() ] ); update_option( $this->admium_globals->call_to_subscribe_option_name(), $call_to_subscribe ); // Notify the user we updated the option. ?>



admium_globals->admium_post_visibility_field_name(), 'true'); //$showcalltosubscribe = get_post_meta($post_ID, $this->admium_globals->admium_post_visibility_calltosubscribe(), 'true'); ?>

Post Visiblity:

Admium visibility
wpapi->current_screen(); if (($current_screen->id != 'edit-post') || ($current_screen->post_type != 'post')) return; ?> wpapi->current_screen(); if (($current_screen->id != 'edit-post') || ($current_screen->post_type != 'post')) return $actions; $vis = get_post_meta( $post->ID, 'admium-visibility', TRUE); $actions['inline hide-if-no-js'] = '"; $actions['inline hide-if-no-js'] .= __( 'Quick Edit' ); $actions['inline hide-if-no-js'] .= ''; return $actions; } function save_quick_edit_data($post_id) { if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return $post_id; $visibility = $_POST[ $this->admium_globals->admium_post_visibility_field_name() ]; update_post_meta($post_id, $this->admium_globals->admium_post_visibility_field_name(), $visibility); // $showcalltosubscribe = $_POST[ $this-admium_globals->admium_post_visibility_calltosubscribe() ]; // update_post_meta($post_id, $this-admium_globals->admium_post_visibility_calltosubscribe(), $showcalltosubscribe); } // Store in the database whether a post is subscriber-only, based on checkbox. function save_post_data( $post_id ) { if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return $post_id; $visibility = $_POST[ $this->admium_globals->admium_post_visibility_field_name() ]; update_post_meta($post_id, $this->admium_globals->admium_post_visibility_field_name(), $visibility); // $showcalltosubscribe = $_POST[ $this-admium_globals->admium_post_visibility_calltosubscribe() ]; // update_post_meta($post_id, $this-admium_globals->admium_post_visibility_calltosubscribe(), $showcalltosubscribe); } } ?>