function handle_subscriptions_updates()
 {
     global $action, $page;
     wp_reset_vars(array('action', 'page'));
     if (isset($_GET['doaction']) || isset($_GET['doaction2'])) {
         if (addslashes($_GET['action']) == 'delete' || addslashes($_GET['action2']) == 'delete') {
             $action = 'bulk-delete';
         }
         if (addslashes($_GET['action']) == 'toggle' || addslashes($_GET['action2']) == 'toggle') {
             $action = 'bulk-toggle';
         }
         if (addslashes($_GET['action']) == 'togglepublic' || addslashes($_GET['action2']) == 'togglepublic') {
             $action = 'bulk-togglepublic';
         }
     }
     switch (addslashes($action)) {
         case 'removeheader':
             $this->dismiss_user_help($page);
             wp_safe_redirect(remove_query_arg('action'));
             break;
         case 'added':
             $id = (int) $_POST['sub_id'];
             check_admin_referer('add-' . $id);
             if ($id) {
                 $sub = new M_Subscription($id);
                 if ($sub->add()) {
                     wp_safe_redirect(add_query_arg('msg', 1, 'admin.php?page=' . $page));
                 } else {
                     wp_safe_redirect(add_query_arg('msg', 4, 'admin.php?page=' . $page));
                 }
             } else {
                 wp_safe_redirect(add_query_arg('msg', 4, 'admin.php?page=' . $page));
             }
             break;
         case 'updated':
             $id = (int) $_POST['sub_id'];
             check_admin_referer('update-' . $id);
             if ($id) {
                 $sub = new M_Subscription($id);
                 if ($sub->update()) {
                     wp_safe_redirect(add_query_arg('msg', 3, 'admin.php?page=' . $page));
                 } else {
                     wp_safe_redirect(add_query_arg('msg', 5, 'admin.php?page=' . $page));
                 }
             } else {
                 wp_safe_redirect(add_query_arg('msg', 5, 'admin.php?page=' . $page));
             }
             break;
         case 'delete':
             if (isset($_GET['sub_id'])) {
                 $sub_id = (int) $_GET['sub_id'];
                 check_admin_referer('delete-sub_' . $sub_id);
                 $sub = new M_Subscription($sub_id);
                 if ($sub->delete()) {
                     wp_safe_redirect(add_query_arg('msg', 2, wp_get_referer()));
                 } else {
                     wp_safe_redirect(add_query_arg('msg', 6, wp_get_referer()));
                 }
             }
             break;
         case 'togglemakepublic':
             if (isset($_GET['sub_id'])) {
                 $sub_id = (int) $_GET['sub_id'];
                 check_admin_referer('togglemakepublic-sub_' . $sub_id);
                 $sub = new M_Subscription($sub_id);
                 $sub->toggleactivation();
                 if ($sub->togglepublic()) {
                     wp_safe_redirect(add_query_arg('msg', 7, wp_get_referer()));
                 } else {
                     wp_safe_redirect(add_query_arg('msg', 8, wp_get_referer()));
                 }
             }
             break;
         case 'toggle':
             if (isset($_GET['sub_id'])) {
                 $sub_id = (int) $_GET['sub_id'];
                 check_admin_referer('toggle-sub_' . $sub_id);
                 $sub = new M_Subscription($sub_id);
                 if ($sub->toggleactivation()) {
                     wp_safe_redirect(add_query_arg('msg', 7, wp_get_referer()));
                 } else {
                     wp_safe_redirect(add_query_arg('msg', 8, wp_get_referer()));
                 }
             }
             break;
         case 'togglepublic':
             if (isset($_GET['sub_id'])) {
                 $sub_id = (int) $_GET['sub_id'];
                 check_admin_referer('toggle-pubsub_' . $sub_id);
                 $sub = new M_Subscription($sub_id);
                 if ($sub->togglepublic()) {
                     wp_safe_redirect(add_query_arg('msg', 9, wp_get_referer()));
                 } else {
                     wp_safe_redirect(add_query_arg('msg', 5, wp_get_referer()));
                 }
             }
             break;
         case 'bulk-delete':
             check_admin_referer('bulk-subscriptions');
             foreach ($_GET['subcheck'] as $value) {
                 if (is_numeric($value)) {
                     $sub_id = (int) $value;
                     $sub = new M_Subscription($sub_id);
                     $sub->delete();
                 }
             }
             wp_safe_redirect(add_query_arg('msg', 2, wp_get_referer()));
             break;
         case 'bulk-toggle':
             check_admin_referer('bulk-subscriptions');
             foreach ($_GET['subcheck'] as $value) {
                 if (is_numeric($value)) {
                     $sub_id = (int) $value;
                     $sub = new M_Subscription($sub_id);
                     $sub->toggleactivation();
                 }
             }
             wp_safe_redirect(add_query_arg('msg', 7, wp_get_referer()));
             break;
         case 'bulk-togglepublic':
             check_admin_referer('bulk-subscriptions');
             foreach ($_GET['subcheck'] as $value) {
                 if (is_numeric($value)) {
                     $sub_id = (int) $value;
                     $sub = new M_Subscription($sub_id);
                     $sub->togglepublic();
                 }
             }
             wp_safe_redirect(add_query_arg('msg', 9, wp_get_referer()));
             break;
     }
 }
示例#2
0
 function process_dripped_wizard_step()
 {
     if (isset($_POST['levelname'])) {
         // Create an initial subscription
         $sub_id = $this->create_subscription(__('Dripped Subscription', 'membership'));
         $sub = new M_Subscription($sub_id);
         $sub->toggleactivation();
         $sub->togglepublic();
         foreach ($_POST['levelname'] as $key => $value) {
             if (empty($value)) {
                 $value = __('Level ', 'membership') . ((int) $key + 1);
             }
             // Create a level
             $level_id = $this->create_level($value);
             // Add the level to the subscription
             $this->add_level_to_subscription($level_id, $sub_id, 'finite');
             // Activate and make public the levels and subscriptions
             $level = new M_Level($level_id);
             $level->toggleactivation();
         }
     }
     // Create a visitor level and set it in the options
     if (isset($_POST['creatavisitorlevel']) && $_POST['creatavisitorlevel'] == 'yes') {
         $level_id = $this->create_level(__('Visitors', 'membership'));
         $level = new M_Level($level_id);
         $level->toggleactivation();
         if (defined('MEMBERSHIP_GLOBAL_TABLES') && MEMBERSHIP_GLOBAL_TABLES === true) {
             if (function_exists('get_blog_option')) {
                 if (function_exists('switch_to_blog')) {
                     switch_to_blog(MEMBERSHIP_GLOBAL_MAINSITE);
                 }
                 $M_options = get_blog_option(MEMBERSHIP_GLOBAL_MAINSITE, 'membership_options', array());
             } else {
                 $M_options = get_option('membership_options', array());
             }
         } else {
             $M_options = get_option('membership_options', array());
         }
         $M_options['strangerlevel'] = (int) $level_id;
         if (defined('MEMBERSHIP_GLOBAL_TABLES') && MEMBERSHIP_GLOBAL_TABLES === true) {
             if (function_exists('update_blog_option')) {
                 update_blog_option(MEMBERSHIP_GLOBAL_MAINSITE, 'membership_options', $M_options);
             } else {
                 update_option('membership_options', $M_options);
             }
         } else {
             update_option('membership_options', $M_options);
         }
     }
     // Activate the relevant gateway if it's set
     if (isset($_POST['wizardgateway'])) {
         $active = get_option('membership_activated_gateways', array());
         if (!in_array($_POST['wizardgateway'], $active)) {
             $active[] = $_POST['wizardgateway'];
             update_option('membership_activated_gateways', array_unique($active));
         }
     }
 }