Beispiel #1
0
 /**
  * Outputs the main UI for handling and managing optins.
  *
  * @since 2.0.0
  */
 public function menu_ui()
 {
     // Build out the necessary HTML structure.
     echo '<div id="optin-monster-ui" class="wrap">';
     // Serve the UI based on the page being visited.
     if ($this->load_view()) {
         switch ($this->view) {
             case 'overview':
                 require plugin_dir_path($this->base->file) . 'includes/admin/views/overview.php';
                 Optin_Monster_Views_Overview::get_instance()->view();
                 break;
             case 'new':
                 require plugin_dir_path($this->base->file) . 'includes/admin/views/new.php';
                 Optin_Monster_Views_New::get_instance()->view();
                 break;
             case 'edit':
                 require plugin_dir_path($this->base->file) . 'includes/admin/views/edit.php';
                 Optin_Monster_Views_Edit::get_instance()->view();
                 break;
             case 'split':
                 require plugin_dir_path($this->base->file) . 'includes/admin/views/split.php';
                 Optin_Monster_Views_Split::get_instance()->view();
                 break;
             case 'preview':
                 if ($this->is_admin_preview()) {
                     require plugin_dir_path($this->base->file) . 'includes/admin/views/preview.php';
                     Optin_Monster_Views_Preview::get_instance()->view();
                 } else {
                     require plugin_dir_path($this->base->file) . 'includes/admin/views/overview.php';
                     Optin_Monster_Views_Overview::get_instance()->view();
                 }
                 break;
             default:
                 do_action('optin_monster_admin_view', $this->view);
                 break;
         }
     }
     // Wrap up the main UI.
     echo '</div>';
 }
Beispiel #2
0
 /**
  * Returns the singleton instance of the class.
  *
  * @since 2.0.0
  *
  * @return object The Optin_Monster_Views_Edit object.
  */
 public static function get_instance()
 {
     if (!isset(self::$instance) && !self::$instance instanceof Optin_Monster_Views_Edit) {
         self::$instance = new Optin_Monster_Views_Edit();
     }
     return self::$instance;
 }
Beispiel #3
0
/**
 * Retrieves the email provider API data.
 *
 * @since 2.0.0
 */
function optin_monster_ajax_get_provider()
{
    // Prepare variables.
    $provider = stripslashes($_POST['provider']);
    $account = stripslashes($_POST['account']);
    $optin_id = absint($_POST['id']);
    $base = Optin_Monster::get_instance();
    $providers = Optin_Monster_Common::get_instance()->get_email_providers(true);
    // If the user is adding a new account, send back the new account UI.
    if ('new' == $account) {
        die(json_encode(optin_monster_ajax_get_new_account($provider, $optin_id)));
    }
    // Load the view class to handle optin editing functions and utility methods.
    if (!class_exists('Optin_Monster_Views_Edit')) {
        require plugin_dir_path($base->file) . 'includes/admin/views/edit.php';
    }
    $view = Optin_Monster_Views_Edit::get_instance();
    $list_id = $view->get_email_setting('list_id');
    // Add the client if using Campaign Monitor.
    if ('campaign-monitor' == $provider) {
        $providers[$provider][$account]['client'] = stripslashes($_POST['client']);
    }
    // Now retrieve the API object and lists output.
    $api = optin_monster_ajax_get_email_provider($provider);
    $lists = $api->get_lists($providers[$provider][$account], $list_id);
    // If there is an error retrieving the lists, let the user know.
    if (is_wp_error($lists)) {
        die(json_encode(array('error' => '<p class="om-error">' . $lists->get_error_message() . '</p>')));
    }
    // Send back the HTML response.
    die(json_encode($lists));
}