function handle_members_panel() { global $action, $page; wp_reset_vars(array('action', 'page')); require_once 'class.membersearch.php'; // bulk actions if (isset($_GET['doaction'])) { $action = $_GET['action']; } elseif (isset($_GET['doaction2'])) { $action = $_GET['action2']; } switch (addslashes($action)) { case 'addlevel': if (isset($_GET['member_id'])) { $member_id = (int) $_GET['member_id']; $this->handle_member_level_op('add', $member_id); return; } break; case 'movelevel': if (isset($_GET['member_id'])) { $member_id = (int) $_GET['member_id']; check_admin_referer('movelevel-member-' . $member_id); $this->handle_member_level_op('move', $member_id); return; } break; case 'droplevel': if (isset($_GET['member_id'])) { $member_id = (int) $_GET['member_id']; check_admin_referer('droplevel-member-' . $member_id); $this->handle_member_level_op('drop', $member_id); return; } break; case 'bulkaddlevel': if (isset($_GET['users'])) { check_admin_referer('bulk-members'); $this->handle_member_level_op('add', $_GET['users']); return; } break; case 'bulkmovelevel': if (isset($_GET['users'])) { check_admin_referer('bulk-members'); $this->handle_member_level_op('move', $_GET['users']); return; } break; case 'bulkdroplevel': if (isset($_GET['users'])) { check_admin_referer('bulk-members'); $this->handle_member_level_op('drop', $_GET['users']); return; } break; case 'addsub': if (isset($_GET['member_id'])) { $member_id = (int) $_GET['member_id']; $this->handle_member_subscription_op('add', $member_id); return; } break; case 'movesub': if (isset($_GET['member_id'])) { $member_id = (int) $_GET['member_id']; check_admin_referer('movesub-member-' . $member_id); $this->handle_member_subscription_op('move', $member_id); return; } break; case 'dropsub': if (isset($_GET['member_id'])) { $member_id = (int) $_GET['member_id']; check_admin_referer('dropsub-member-' . $member_id); $this->handle_member_subscription_op('drop', $member_id); return; } break; case 'bulkaddsub': if (isset($_GET['users'])) { check_admin_referer('bulk-members'); $this->handle_member_subscription_op('add', $_GET['users']); return; } break; case 'bulkmovesub': if (isset($_GET['users'])) { check_admin_referer('bulk-members'); $this->handle_member_subscription_op('move', $_GET['users']); return; } break; case 'bulkdropsub': if (isset($_GET['users'])) { check_admin_referer('bulk-members'); $this->handle_member_subscription_op('drop', $_GET['users']); return; } break; case 'bulkmovegateway': if (isset($_GET['users'])) { check_admin_referer('bulk-members'); $this->handle_member_gateway_op('move', $_GET['users']); return; } break; case 'movegateway': if (isset($_GET['member_id'])) { $member_id = (int) $_GET['member_id']; check_admin_referer('movegateway-member-' . $member_id); $this->handle_member_gateway_op('move', $member_id); return; } break; case 'edit': if (isset($_GET['level_id'])) { $level_id = (int) $_GET['level_id']; $this->handle_level_edit_form($level_id); return; // So we don't see the rest of this page } break; } $filter = array(); if (isset($_GET['s'])) { $s = stripslashes($_GET['s']); $filter['s'] = $s; } else { $s = ''; } $sub_id = null; $level_id = null; if (isset($_GET['doactionsub'])) { if (addslashes($_GET['sub_op']) != '') { $sub_id = addslashes($_GET['sub_op']); } } if (isset($_GET['doactionsub2'])) { if (addslashes($_GET['sub_op2']) != '') { $sub_id = addslashes($_GET['sub_op2']); } } if (isset($_GET['doactionlevel'])) { if (addslashes($_GET['level_op']) != '') { $level_id = addslashes($_GET['level_op']); } } if (isset($_GET['doactionlevel2'])) { if (addslashes($_GET['level_op2']) != '') { $level_id = addslashes($_GET['level_op2']); } } if (isset($_GET['doactionactive'])) { if (addslashes($_GET['active_op']) != '') { $active_op = addslashes($_GET['active_op']); } } if (isset($_GET['doactionactive2'])) { if (addslashes($_GET['active_op2']) != '') { $active_op = addslashes($_GET['active_op2']); } } $usersearch = isset($_GET['s']) ? $_GET['s'] : null; $userspage = isset($_GET['userspage']) ? $_GET['userspage'] : null; $role = null; if (empty($active_op)) { $active_op = ''; } // Query the users $wp_user_search = new M_Member_Search($usersearch, $userspage, $sub_id, $level_id, $active_op); $messages = array(); $messages[1] = __('Member added.', 'membership'); $messages[2] = __('Member deleted.', 'membership'); $messages[3] = __('Member updated.', 'membership'); $messages[4] = __('Member not added.', 'membership'); $messages[5] = __('Member not updated.', 'membership'); $messages[6] = __('Member not deleted.', 'membership'); $messages[7] = __('Member activation toggled.', 'membership'); $messages[8] = __('Member activation not toggled.', 'membership'); $messages[9] = __('Members updated.', 'membership'); ?> <div class='wrap nosubsub'> <div class="icon32" id="icon-users"><br></div> <h2><?php _e('Edit Members', 'membership'); ?> </h2> <?php if (isset($_GET['msg'])) { echo '<div id="message" class="updated fade"><p>' . $messages[(int) $_GET['msg']] . '</p></div>'; $_SERVER['REQUEST_URI'] = remove_query_arg(array('msg'), $_SERVER['REQUEST_URI']); } if ($this->show_user_help($page)) { ?> <div class='screenhelpheader'> <a href="admin.php?page=<?php echo $page; ?> &action=removeheader" class="welcome-panel-close"><?php _e('Dismiss', 'membership'); ?> </a> <?php ob_start(); include_once membership_dir('membershipincludes/help/header.members.php'); echo ob_get_clean(); ?> </div> <?php } ?> <form method="get" action="?page=<?php echo esc_attr($page); ?> " class="search-form"> <p class="search-box"> <input type='hidden' name='page' value='<?php echo esc_attr($page); ?> ' /> <label for="membership-search-input" class="screen-reader-text"><?php _e('Search Members', 'membership'); ?> :</label> <input type="text" value="<?php echo esc_attr($s); ?> " name="s" id="membership-search-input"> <input type="submit" class="button" value="<?php _e('Search Members', 'membership'); ?> "> </p> </form> <br class='clear' /> <form method="get" action="?page=<?php echo esc_attr($page); ?> " id="members-filter"> <input type='hidden' name='page' value='<?php echo esc_attr($page); ?> ' /> <div class="tablenav"> <?php if ($wp_user_search->results_are_paged()) { ?> <div class="tablenav-pages"><?php $wp_user_search->page_links(); ?> </div> <?php } ?> <div class="alignleft actions"> <select name="action"> <option selected="selected" value=""><?php _e('Bulk Actions', 'membership'); ?> </option> <option value="toggle"><?php _e('Toggle activation', 'membership'); ?> </option> <optgroup label="<?php _e('Subscriptions', 'membership'); ?> "> <option value="bulkaddsub"><?php _e('Add subscription', 'membership'); ?> </option> <option value="bulkmovesub"><?php _e('Move subscription', 'membership'); ?> </option> <option value="bulkdropsub"><?php _e('Drop subscription', 'membership'); ?> </option> </optgroup> <optgroup label="<?php _e('Levels', 'membership'); ?> "> <option value="bulkaddlevel"><?php _e('Add level', 'membership'); ?> </option> <option value="bulkmovelevel"><?php _e('Move level', 'membership'); ?> </option> <option value="bulkdroplevel"><?php _e('Drop level', 'membership'); ?> </option> </optgroup> <optgroup label="<?php _e('Gateways', 'membership'); ?> "> <option value="bulkmovegateway"><?php _e('Move gateway', 'membership'); ?> </option> </optgroup> </select> <input type="submit" class="button-secondary action" id="doaction" name="doaction" value="<?php _e('Apply', 'membership'); ?> " /> <select name="sub_op" style='float:none;'> <option value=""><?php _e('Filter by subscription', 'membership'); ?> </option> <?php $subs = $this->get_subscriptions(); if ($subs) { foreach ($subs as $key => $sub) { ?> <option value="<?php echo $sub->id; ?> " <?php if (isset($_GET['sub_op']) && $_GET['sub_op'] == $sub->id) { echo 'selected="selected"'; } ?> ><?php echo esc_html($sub->sub_name); ?> </option> <?php } } ?> </select> <input type="submit" class="button-secondary action" id="doactionsub" name="doactionsub" value="<?php _e('Filter', 'membership'); ?> "> <select name="level_op" style='float:none;'> <option value=""><?php _e('Filter by level', 'membership'); ?> </option> <?php $levels = $this->get_membership_levels(); if ($levels) { foreach ($levels as $key => $level) { ?> <option value="<?php echo $level->id; ?> " <?php if (isset($_GET['level_op']) && $_GET['level_op'] == $level->id) { echo 'selected="selected"'; } ?> ><?php echo esc_html($level->level_title); ?> </option> <?php } } ?> </select> <input type="submit" class="button-secondary action" id="doactionlevel" name="doactionlevel" value="<?php _e('Filter', 'membership'); ?> "> <select name="active_op" style='float:none;'> <option value=""><?php _e('Filter by status', 'membership'); ?> </option> <option value="yes" <?php if (isset($_GET['active_op']) && $_GET['active_op'] == 'yes') { echo 'selected="selected"'; } ?> ><?php _e('Active', 'membership'); ?> </option> <option value="no" <?php if (isset($_GET['active_op']) && $_GET['active_op'] == 'no') { echo 'selected="selected"'; } ?> ><?php _e('Inactive', 'membership'); ?> </option> </select> <input type="submit" class="button-secondary action" id="doactionactive" name="doactionactive" value="<?php _e('Filter', 'membership'); ?> "> </div> <div class="alignright actions"> <!-- <input type="button" class="button-secondary addnewlevelbutton" value="<?php _e('Add New', 'membership'); ?> " name="addnewlevel"> --> </div> <br class="clear"> </div> <?php if (is_wp_error($wp_user_search->search_errors)) { ?> <div class="error"> <ul> <?php foreach ($wp_user_search->search_errors->get_error_messages() as $message) { echo "<li>{$message}</li>"; } ?> </ul> </div> <?php } ?> <?php if ($wp_user_search->is_search()) { ?> <p><a href="?page=<?php echo $page; ?> "><?php _e('← Back to All Users', 'membership'); ?> </a></p> <?php } ?> <div class="clear"></div> <?php wp_nonce_field('bulk-members'); $columns = array("username" => __('Username', 'membership'), "name" => __('Name', 'membership'), "email" => __('E-mail', 'membership'), "active" => __('Active', 'membership'), "sub" => __('Subscription', 'membership'), "level" => __('Membership Level', 'membership'), "expires" => __('Level Expires', 'membership'), "gateway" => __('Gateway', 'membership')); $columns = apply_filters('members_columns', $columns); //$levels = $this->get_membership_levels($filter); ?> <table cellspacing="0" class="widefat fixed"> <thead> <tr> <th style="" class="manage-column column-cb check-column" id="cb" scope="col"><input type="checkbox"></th> <?php foreach ($columns as $key => $col) { ?> <th style="" class="manage-column column-<?php echo $key; ?> " id="<?php echo $key; ?> " scope="col"><?php echo $col; ?> </th> <?php } ?> </tr> </thead> <tfoot> <tr> <th style="" class="manage-column column-cb check-column" scope="col"><input type="checkbox"></th> <?php reset($columns); foreach ($columns as $key => $col) { ?> <th style="" class="manage-column column-<?php echo $key; ?> " id="<?php echo $key; ?> " scope="col"><?php echo $col; ?> </th> <?php } ?> </tr> </tfoot> <tbody> <?php $style = ''; foreach ($wp_user_search->get_results() as $userid) { $user_object = new M_Membership($userid); $roles = $user_object->roles; $role = array_shift($roles); $style = ' class="alternate"' == $style ? '' : ' class="alternate"'; ?> <tr id='user-<?php echo $user_object->ID; ?> ' <?php echo $style; ?> > <th scope='row' class='check-column'> <input type='checkbox' name='users[]' id='user_<?php echo $user_object->ID; ?> ' class='$role' value='<?php echo $user_object->ID; ?> ' /> </th> <td <?php echo $style; ?> > <strong><a href='<?php echo admin_url('user-edit.php?user_id=' . $user_object->ID); ?> ' title='User ID: <?php echo $user_object->ID; ?> '><?php echo $user_object->user_login; ?> </a></strong> <?php $actions = array(); //$actions['id'] = "<strong>" . __('ID : ', 'membership') . $user_object->ID . "</strong>"; $actions['edit'] = "<span class='edit'><a href='" . admin_url('user-edit.php?user_id=' . $user_object->ID) . "'>" . __('Edit', 'membership') . "</a></span>"; if ($user_object->active_member()) { $actions['activate'] = "<span class='edit deactivate'><a href='" . wp_nonce_url("?page=" . $page . "&action=toggle&member_id=" . $user_object->ID . "", 'toggle-member_' . $user_object->ID) . "'>" . __('Deactivate', 'membership') . "</a></span>"; } else { $actions['activate'] = "<span class='edit activate'><a href='" . wp_nonce_url("?page=" . $page . "&action=toggle&member_id=" . $user_object->ID . "", 'toggle-member_' . $user_object->ID) . "'>" . __('Activate', 'membership') . "</a></span>"; } //$actions['history'] = "<span class='edit'><a href='" . wp_nonce_url("?page=" . $page. "&action=history&member_id=" . $user_object->ID . "", 'history-member_' . $user_object->ID) . "'>" . __('History', 'membership') . "</a></span>"; ?> <div class="row-actions"><?php echo implode(" | ", $actions); ?> </div> </td> <td <?php echo $style; ?> ><?php echo $user_object->first_name . " " . $user_object->last_name; ?> </td> <td <?php echo $style; ?> ><a href='mailto:<?php echo $user_object->user_email; ?> ' title='<?php echo sprintf(__('e-mail: %s', 'membership'), $user_object->user_email); ?> '><?php echo $user_object->user_email; ?> </a></td> <td <?php echo $style; ?> > <?php if ($user_object->active_member()) { echo "<span class='membershipactivestatus'>" . __('Active', 'membership') . "</span>"; } else { echo "<span class='membershipinactivestatus'>" . __('Inactive', 'membership') . "</span>"; } ?> </td> <td <?php echo $style; ?> > <?php $subs = $user_object->get_subscription_ids(); if (!empty($subs)) { $rows = array(); foreach ((array) $subs as $key) { $sub = new M_Subscription($key); if (!empty($sub)) { $rows[] = $sub->sub_name(); } } echo implode(", ", $rows); } $actions = array(); if (!$user_object->has_cap('membershipadmin')) { $actions['add'] = "<span class='edit'><a href='?page={$page}&action=addsub&member_id={$user_object->ID}'>" . __('Add', 'membership') . "</a></span>"; } if (!empty($subs)) { if (count($subs) == 1) { $actions['move'] = "<span class='edit'><a href='" . wp_nonce_url("?page=" . $page . "&action=movesub&member_id=" . $user_object->ID . "&fromsub=" . $subs[0], 'movesub-member-' . $user_object->ID) . "'>" . __('Move', 'membership') . "</a></span>"; $actions['drop'] = "<span class='edit delete'><a href='" . wp_nonce_url("?page=" . $page . "&action=dropsub&member_id=" . $user_object->ID . "&fromsub=" . $subs[0], 'dropsub-member-' . $user_object->ID) . "'>" . __('Drop', 'membership') . "</a></span>"; } else { $actions['move'] = "<span class='edit'><a href='" . wp_nonce_url("?page=" . $page . "&action=movesub&member_id=" . $user_object->ID . "", 'movesub-member-' . $user_object->ID) . "'>" . __('Move', 'membership') . "</a></span>"; $actions['drop'] = "<span class='edit delete'><a href='" . wp_nonce_url("?page=" . $page . "&action=dropsub&member_id=" . $user_object->ID . "", 'dropsub-member-' . $user_object->ID) . "'>" . __('Drop', 'membership') . "</a></span>"; } } ?> <div class="row-actions"><?php echo implode(" | ", $actions); ?> </div> </td> <td <?php echo $style; ?> > <?php $levels = $user_object->get_level_ids(); if (!empty($levels)) { $rows = array(); foreach ((array) $levels as $key => $value) { $level = new M_Level($value->level_id); if (!empty($level)) { if ((int) $value->sub_id != 0) { $rows[] = "<strong>" . $level->level_title() . "</strong>"; } else { $rows[] = $level->level_title(); } } } echo implode(", ", $rows); } $actions = array(); if (!$user_object->has_cap('membershipadmin')) { $actions['add'] = "<span class='edit'><a href='?page={$page}&action=addlevel&member_id={$user_object->ID}'>" . __('Add', 'membership') . "</a></span>"; } if (!empty($levels)) { if (count($levels) == 1) { $actions['move'] = "<span class='edit'><a href='" . wp_nonce_url("?page=" . $page . "&action=movelevel&member_id=" . $user_object->ID . "&fromlevel=" . $levels[0]->level_id, 'movelevel-member-' . $user_object->ID) . "'>" . __('Move', 'membership') . "</a></span>"; $actions['drop'] = "<span class='edit delete'><a href='" . wp_nonce_url("?page=" . $page . "&action=droplevel&member_id=" . $user_object->ID . "&fromlevel=" . $levels[0]->level_id, 'droplevel-member-' . $user_object->ID) . "'>" . __('Drop', 'membership') . "</a></span>"; } else { $actions['move'] = "<span class='edit'><a href='" . wp_nonce_url("?page=" . $page . "&action=movelevel&member_id=" . $user_object->ID . "", 'movelevel-member-' . $user_object->ID) . "'>" . __('Move', 'membership') . "</a></span>"; $actions['drop'] = "<span class='edit delete'><a href='" . wp_nonce_url("?page=" . $page . "&action=droplevel&member_id=" . $user_object->ID . "", 'droplevel-member-' . $user_object->ID) . "'>" . __('Drop', 'membership') . "</a></span>"; } } ?> <div class="row-actions"><?php echo implode(" | ", $actions); ?> </div> </td> <td <?php echo $style; ?> > <?php $subs = $user_object->get_relationships(); if ($subs) { $exps = array(); foreach ($subs as $sub) { $exps[] = date("Y-m-d H:i", mysql2date("U", $sub->expirydate)); } echo implode(", ", $exps); } ?> </td> <td <?php echo $style; ?> > <?php $subs = $user_object->get_relationships(); //print_r($subs); if ($subs) { $gates = array(); foreach ($subs as $sub) { $gates[] = $sub->usinggateway; } echo implode(", ", $gates); if ($user_object->has_cap('membershipadmin')) { $actions = array(); } else { $actions = array(); if (count($gates) == 1) { $actions['move'] = "<span class='edit'><a href='" . wp_nonce_url("?page=" . $page . "&action=movegateway&member_id=" . $user_object->ID . "&fromgateway=" . $gates[0], 'movegateway-member-' . $user_object->ID) . "'>" . __('Move', 'membership') . "</a></span>"; } else { $actions['move'] = "<span class='edit'><a href='" . wp_nonce_url("?page=" . $page . "&action=movegateway&member_id=" . $user_object->ID . "", 'movegateway-member-' . $user_object->ID) . "'>" . __('Move', 'membership') . "</a></span>"; } } ?> <div class="row-actions"><?php echo implode(" | ", $actions); ?> </div> <?php } ?> </td> </tr> <?php } ?> </tbody> </table> <div class="tablenav"> <div class="alignleft actions"> <select name="action2"> <option selected="selected" value=""><?php _e('Bulk Actions', 'membership'); ?> </option> <option value="toggle"><?php _e('Toggle activation', 'membership'); ?> </option> <optgroup label="<?php _e('Subscriptions', 'membership'); ?> "> <option value="bulkaddsub"><?php _e('Add subscription', 'membership'); ?> </option> <option value="bulkmovesub"><?php _e('Move subscription', 'membership'); ?> </option> <option value="bulkdropsub"><?php _e('Drop subscription', 'membership'); ?> </option> </optgroup> <optgroup label="<?php _e('Levels', 'membership'); ?> "> <option value="bulkaddlevel"><?php _e('Add level', 'membership'); ?> </option> <option value="bulkmovelevel"><?php _e('Move level', 'membership'); ?> </option> <option value="bulkdroplevel"><?php _e('Drop level', 'membership'); ?> </option> </optgroup> <optgroup label="<?php _e('Gateways', 'membership'); ?> "> <option value="bulkmovegateway"><?php _e('Move gateway', 'membership'); ?> </option> </optgroup> </select> <input type="submit" class="button-secondary action" id="doaction2" name="doaction2" value="Apply"> <select name="sub_op2"> <option value=""><?php _e('Filter by subscription', 'membership'); ?> </option> <?php $subs = $this->get_subscriptions(); if ($subs) { foreach ($subs as $key => $sub) { ?> <option value="<?php echo $sub->id; ?> " <?php if (isset($_GET['sub_op2']) && $_GET['sub_op2'] == $sub->id) { echo 'selected="selected"'; } ?> ><?php echo esc_html($sub->sub_name); ?> </option> <?php } } ?> </select> <input type="submit" class="button-secondary action" id="doactionsub2" name="doactionsub2" value="<?php _e('Filter', 'membership'); ?> "> <select name="level_op2"> <option value=""><?php _e('Filter by level', 'membership'); ?> </option> <?php $levels = $this->get_membership_levels(); if ($levels) { foreach ($levels as $key => $level) { ?> <option value="<?php echo $level->id; ?> " <?php if (isset($_GET['level_op2']) && $_GET['level_op2'] == $level->id) { echo 'selected="selected"'; } ?> ><?php echo esc_html($level->level_title); ?> </option> <?php } } ?> </select> <input type="submit" class="button-secondary action" id="doactionlevel2" name="doactionlevel2" value="<?php _e('Filter', 'membership'); ?> "> <select name="active_op2"> <option value=""><?php _e('Filter by status', 'membership'); ?> </option> <option value="yes" <?php if (isset($_GET['active_op2']) && $_GET['active_op2'] == 'yes') { echo 'selected="selected"'; } ?> ><?php _e('Active', 'membership'); ?> </option> <option value="no" <?php if (isset($_GET['active_op2']) && $_GET['active_op2'] == 'no') { echo 'selected="selected"'; } ?> ><?php _e('Inactive', 'membership'); ?> </option> </select> <input type="submit" class="button-secondary action" id="doactionactive2" name="doactionactive2" value="<?php _e('Filter', 'membership'); ?> "> </div> <div class="alignright actions"> </div> <br class="clear"> </div> </form> </div> <!-- wrap --> <?php }