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; } }
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 }
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)); } } }
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&action=membershipuselevel&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&action=membershipuselevel&level_id=0"), 'membershipuselevel-0'); $wp_admin_bar->add_menu(array('parent' => 'membershipuselevel', 'id' => 'membershipuselevel-0', 'title' => __('Reset', 'membership'), 'href' => $linkurl)); } }
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; } }