function handle_levels_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';
         }
     }
     switch (addslashes($action)) {
         case 'removeheader':
             $this->dismiss_user_help($page);
             wp_safe_redirect(remove_query_arg('action'));
             break;
         case 'added':
             $id = (int) $_POST['level_id'];
             check_admin_referer('add-' . $id);
             if ($id) {
                 $level = new M_Level($id);
                 if ($level->add()) {
                     // Add in the meta information
                     if (!empty($_POST['level_protectedcontent'])) {
                         $level->update_meta('level_protectedcontent', $_POST['level_protectedcontent']);
                     }
                     // redirect
                     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['level_id'];
             check_admin_referer('update-' . $id);
             if ($id) {
                 $level = new M_Level($id);
                 if ($level->update()) {
                     // update the meta information
                     if (!empty($_POST['level_protectedcontent'])) {
                         $level->update_meta('level_protectedcontent', $_POST['level_protectedcontent']);
                     } else {
                         $level->delete_meta('level_protectedcontent');
                     }
                     // redirect
                     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['level_id'])) {
                 $level_id = (int) $_GET['level_id'];
                 check_admin_referer('delete-level_' . $level_id);
                 $level = new M_Level($level_id);
                 if ($level->delete($level_id)) {
                     // delete the meta information
                     $level->delete_meta('level_protectedcontent');
                     // redirect
                     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 'toggle':
             if (isset($_GET['level_id'])) {
                 $level_id = (int) $_GET['level_id'];
                 check_admin_referer('toggle-level_' . $level_id);
                 $level = new M_Level($level_id);
                 if ($level->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 'bulk-delete':
             check_admin_referer('bulk-levels');
             foreach ($_GET['levelcheck'] as $value) {
                 if (is_numeric($value)) {
                     $level_id = (int) $value;
                     $level = new M_Level($level_id);
                     $level->delete();
                 }
             }
             wp_safe_redirect(add_query_arg('msg', 2, wp_get_referer()));
             break;
         case 'bulk-toggle':
             check_admin_referer('bulk-levels');
             foreach ($_GET['levelcheck'] as $value) {
                 if (is_numeric($value)) {
                     $level_id = (int) $value;
                     $level = new M_Level($level_id);
                     $level->toggleactivation();
                 }
             }
             wp_safe_redirect(add_query_arg('msg', 7, wp_get_referer()));
             break;
     }
 }
Beispiel #2
0
function membership_record_level_move($fromlevel_id, $tolevel_id, $user_id)
{
    global $wpdb;
    $table = membership_db_prefix($wpdb, 'membership_news');
    // Get the information
    $user = new WP_User($user_id);
    $fromlevel = new M_Level($fromlevel_id);
    $tolevel = new M_Level($tolevel_id);
    $message = sprintf(__('<strong>%s</strong> has moved from level <strong>%s</strong> to level <strong>%s</strong>', 'membership'), $user->display_name, $fromlevel->level_title(), $tolevel->level_title());
    $wpdb->insert($table, array('newsitem' => $message, 'newsdate' => current_time('mysql')));
}
 function do_levelprotected_shortcode($atts, $content = null, $code = "")
 {
     global $M_options;
     // Set up the level shortcodes here
     $shortcodes = apply_filters('membership_level_shortcodes', array());
     $notshortcodes = apply_filters('membership_not_level_shortcodes', array());
     $code = strtolower($code);
     if (substr($code, 0, 4) !== "not-") {
         if (!empty($shortcodes)) {
             // search positive shortcodes first
             $id = array_search($code, $shortcodes);
             if ($id !== false) {
                 // we have found a level so we need to check if it has a custom protected message, otherwise we'll just output the default main on
                 $level = new M_Level($id);
                 $message = $level->get_meta('level_protectedcontent');
                 if (!empty($message)) {
                     return stripslashes($message);
                 }
             }
         }
     } else {
         if (!empty($notshortcodes)) {
             // search positive shortcodes first
             $id = array_search($code, $notshortcodes);
             if ($id !== false) {
                 // we have found a level so we need to check if it has a custom protected message, otherwise we'll just output the default main on
                 $level = new M_Level($id);
                 $message = $level->get_meta('level_protectedcontent');
                 if (!empty($message)) {
                     return stripslashes($message);
                 }
             }
         }
     }
     // If we are here then we have no custom message, or the shortcode wasn't found so just output the standard message
     if (isset($M_options['shortcodemessage'])) {
         return stripslashes(do_shortcode($M_options['shortcodemessage']));
     } else {
         return '';
     }
 }
        function show_level_ping_information($level_id)
        {
            // Get all the pings
            $pings = $this->get_pings();
            // Get the currentlt set ping for each level
            $level = new M_Level($level_id);
            $joinping = $level->get_meta('joining_ping', '');
            $leaveping = $level->get_meta('leaving_ping', '');
            ?>
				<h3><?php 
            _e('Level Pings', 'membership');
            ?>
</h3>
				<p class='description'><?php 
            _e('If you want any pings to be sent when a member joins and/or leaves this level then set them below.', 'membership');
            ?>
</p>

				<div class='level-details'>

				<label for='joiningping'><?php 
            _e('Joining Ping', 'membership');
            ?>
</label>
				<select name='joiningping'>
					<option value='' <?php 
            selected($joinping, '');
            ?>
><?php 
            _e('None', 'membership');
            ?>
</option>
					<?php 
            if (!empty($pings)) {
                foreach ($pings as $ping) {
                    ?>
							<option value='<?php 
                    echo $ping->id;
                    ?>
' <?php 
                    selected($joinping, $ping->id);
                    ?>
><?php 
                    echo stripslashes($ping->pingname);
                    ?>
</option>
							<?php 
                }
            }
            ?>
				</select><br/>

				<label for='leavingping'><?php 
            _e('Leaving Ping', 'membership');
            ?>
</label>
				<select name='leavingping'>
					<option value='' <?php 
            selected($leaveping, '');
            ?>
><?php 
            _e('None', 'membership');
            ?>
</option>
					<?php 
            if (!empty($pings)) {
                foreach ($pings as $ping) {
                    ?>
							<option value='<?php 
                    echo $ping->id;
                    ?>
' <?php 
                    selected($leaveping, $ping->id);
                    ?>
><?php 
                    echo stripslashes($ping->pingname);
                    ?>
</option>
							<?php 
                }
            }
            ?>
				</select>
				</div>
			<?php 
        }
Beispiel #5
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));
         }
     }
 }
Beispiel #6
0
 function add_admin_bar_view_site_as($wp_admin_bar)
 {
     global $M_options;
     $levels = $this->get_membership_levels(array('level_id' => 'active', 'order_by' => 'order_id'));
     $title = __('View site as : ', 'membership');
     if (empty($_COOKIE['membershipuselevel']) || $_COOKIE['membershipuselevel'] == '0') {
         $title .= __('Membership Admin', 'membership');
     } else {
         $level_id = (int) $_COOKIE['membershipuselevel'];
         $level = new M_Level($level_id);
         $title .= $level->level_title();
     }
     $class = apply_filters('membership_adminbar_view_site_as_class', 'membership-view-site-as');
     $metatitle = __('Select a level to view your site as', 'membership');
     $linkurl = '';
     // No link for the main menu
     $wp_admin_bar->add_menu(array('id' => 'membershipuselevel', 'parent' => 'top-secondary', 'title' => $title, 'href' => $linkurl, 'meta' => array('class' => $class, 'title' => $metatitle)));
     if (!empty($levels)) {
         foreach ($levels as $key => $level) {
             $linkurl = wp_nonce_url(admin_url("admin.php?page=membership&amp;action=membershipuselevel&amp;level_id=" . $level->id), 'membershipuselevel-' . $level->id);
             $wp_admin_bar->add_menu(array('parent' => 'membershipuselevel', 'id' => 'membershipuselevel-' . $level->id, 'title' => $level->level_title, 'href' => $linkurl));
         }
     }
     if (empty($_COOKIE['membershipuselevel']) || $_COOKIE['membershipuselevel'] == '0') {
     } else {
         $linkurl = wp_nonce_url(admin_url("admin.php?page=membership&amp;action=membershipuselevel&amp;level_id=0"), 'membershipuselevel-0');
         $wp_admin_bar->add_menu(array('parent' => 'membershipuselevel', 'id' => 'membershipuselevel-0', 'title' => __('Reset', 'membership'), 'href' => $linkurl));
     }
 }
Beispiel #7
0
 function send_ping($sub_id = false, $level_id = false, $user_id = false)
 {
     $this->ping = $this->get_ping();
     if (!class_exists('WP_Http')) {
         include_once ABSPATH . WPINC . '/class-http.php';
     }
     $pingdata = $this->pingconstants;
     if (empty($user_id)) {
         $user = wp_get_current_user();
         $member = new M_Membership($user->ID);
     } else {
         $member = new M_Membership($user_id);
     }
     foreach ($pingdata as $key => $value) {
         switch ($key) {
             case '%blogname%':
                 $pingdata[$key] = get_option('blogname');
                 break;
             case '%blogurl%':
                 $pingdata[$key] = get_option('home');
                 break;
             case '%username%':
                 $pingdata[$key] = $member->user_login;
                 break;
             case '%usernicename%':
                 $pingdata[$key] = $member->user_nicename;
                 break;
             case '%useremail%':
                 $pingdata[$key] = $member->user_email;
                 break;
             case '%userid%':
                 $pingdata[$key] = $member->ID;
                 break;
             case '%networkname%':
                 $pingdata[$key] = get_site_option('site_name');
                 break;
             case '%networkurl%':
                 $pingdata[$key] = get_site_option('siteurl');
                 break;
             case '%subscriptionname%':
                 if (!$sub_id) {
                     $ids = $member->get_subscription_ids();
                     if (!empty($ids)) {
                         $sub_id = $ids[0];
                     }
                 }
                 if (!empty($sub_id)) {
                     $sub = new M_Subscription($sub_id);
                     $pingdata[$key] = $sub->sub_name();
                 } else {
                     $pingdata[$key] = '';
                 }
                 break;
             case '%levelname%':
                 if (!$level_id) {
                     $ids = $member->get_level_ids();
                     if (!empty($ids)) {
                         $levels = $ids[0];
                     }
                 }
                 if (!empty($levels->level_id)) {
                     $level = new M_Level($levels->level_id);
                     $pingdata[$key] = $level->level_title();
                 } else {
                     $pingdata[$key] = '';
                 }
                 break;
             case '%timestamp%':
                 $pingdata[$key] = time();
                 break;
             default:
                 $pingdata[$key] = apply_filter('membership_pingfield_' . $key, '');
                 break;
         }
     }
     $url = $this->ping->pingurl;
     // Globally replace the values in the ping and then make it into an array to send
     $pingmessage = str_replace(array_keys($pingdata), array_values($pingdata), $this->ping->pinginfo);
     $pingmessage = array_map('trim', explode("\n", $pingmessage));
     // make the ping message into a sendable bit of text
     $pingtosend = array();
     foreach ($pingmessage as $key => $value) {
         $temp = explode("=", $value);
         $pingtosend[$temp[0]] = $temp[1];
     }
     // Send the request
     if (class_exists('WP_Http')) {
         $request = new WP_Http();
         switch ($this->ping->pingtype) {
             case 'GET':
                 $url = untrailingslashit($url) . "?";
                 foreach ($pingtosend as $key => $val) {
                     if (substr($url, -1) != '?') {
                         $url .= "&";
                     }
                     $url .= $key . "=" . urlencode($val);
                 }
                 $result = $request->request($url, array('method' => 'GET', 'body' => ''));
                 break;
             case 'POST':
                 $result = $request->request($url, array('method' => 'POST', 'body' => $pingtosend));
                 break;
         }
         /*
         'headers': an array of response headers, such as "x-powered-by" => "PHP/5.2.1"
         'body': the response string sent by the server, as you would see it with you web browser
         'response': an array of HTTP response codes. Typically, you'll want to have array('code'=>200, 'message'=>'OK')
         'cookies': an array of cookie information
         */
         $this->add_history($pingtosend, $result);
     }
 }
 function handle_levels_updates()
 {
     global $action, $page;
     nxt_reset_vars(array('action', 'page'));
     // check levels
     $this->get_all_levels();
     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';
         }
     }
     switch (addslashes($action)) {
         case 'added':
             $id = (int) $_POST['level_id'];
             check_admin_referer('add-' . $id);
             if ($id) {
                 $level = new M_Level($id);
                 if (!M_can_add_level()) {
                     nxt_safe_redirect(add_query_arg('msg', 4, 'admin.php?page=' . $page));
                 } else {
                     if ($level->add()) {
                         nxt_safe_redirect(add_query_arg('msg', 1, 'admin.php?page=' . $page));
                     } else {
                         nxt_safe_redirect(add_query_arg('msg', 4, 'admin.php?page=' . $page));
                     }
                 }
             } else {
                 nxt_safe_redirect(add_query_arg('msg', 4, 'admin.php?page=' . $page));
             }
             break;
         case 'updated':
             $id = (int) $_POST['level_id'];
             check_admin_referer('update-' . $id);
             if ($id) {
                 $level = new M_Level($id);
                 if ($level->update()) {
                     nxt_safe_redirect(add_query_arg('msg', 3, 'admin.php?page=' . $page));
                 } else {
                     nxt_safe_redirect(add_query_arg('msg', 5, 'admin.php?page=' . $page));
                 }
             } else {
                 nxt_safe_redirect(add_query_arg('msg', 5, 'admin.php?page=' . $page));
             }
             break;
         case 'delete':
             if (isset($_GET['level_id'])) {
                 $level_id = (int) $_GET['level_id'];
                 check_admin_referer('delete-level_' . $level_id);
                 $level = new M_Level($level_id);
                 if ($level->delete($level_id)) {
                     nxt_safe_redirect(add_query_arg('msg', 2, nxt_get_referer()));
                 } else {
                     nxt_safe_redirect(add_query_arg('msg', 6, nxt_get_referer()));
                 }
             }
             break;
         case 'toggle':
             if (isset($_GET['level_id'])) {
                 $level_id = (int) $_GET['level_id'];
                 check_admin_referer('toggle-level_' . $level_id);
                 $level = new M_Level($level_id);
                 if ($level->toggleactivation()) {
                     nxt_safe_redirect(add_query_arg('msg', 7, nxt_get_referer()));
                 } else {
                     nxt_safe_redirect(add_query_arg('msg', 8, nxt_get_referer()));
                 }
             }
             break;
         case 'bulk-delete':
             check_admin_referer('bulk-levels');
             foreach ($_GET['levelcheck'] as $value) {
                 if (is_numeric($value)) {
                     $level_id = (int) $value;
                     $level = new M_Level($level_id);
                     $level->delete();
                 }
             }
             nxt_safe_redirect(add_query_arg('msg', 2, nxt_get_referer()));
             break;
         case 'bulk-toggle':
             check_admin_referer('bulk-levels');
             foreach ($_GET['levelcheck'] as $value) {
                 if (is_numeric($value)) {
                     $level_id = (int) $value;
                     $level = new M_Level($level_id);
                     $level->toggleactivation();
                 }
             }
             nxt_safe_redirect(add_query_arg('msg', 7, nxt_get_referer()));
             break;
     }
 }