--- /dev/null
+<?PHP
+
+global $wpdb;
+
+$membership_level = 2;
+$form_id = 4;
+
+$this->fields = array();
+$this->membership_level = $membership_level;
+$form_table_name = $wpdb->prefix . 'swpm_form_builder_forms';
+$field_table = $wpdb->prefix . 'swpm_form_builder_fields';
+$query = $wpdb->prepare("SELECT form_id FROM $form_table_name WHERE form_type = 1 AND "
+ . " (form_membership_level= %d OR form_membership_level=0 )"
+ . " ORDER BY form_membership_level DESC", $membership_level);
+$form_id = $wpdb->get_var($query);
+$this->form_id = $form_id;
+if (empty($form_id)) {return; }
+$query = $wpdb->prepare(
+ "SELECT
+ field_id AS id,
+ form_id,
+ field_key AS _key,
+ field_type AS type,
+ field_options AS options,
+ field_description AS description,
+ field_name AS name,
+ field_sequence AS sequence,
+ field_parent AS parent,
+ field_validation AS validation,
+ field_required AS required,
+ field_size AS size,
+ field_css AS css,
+ field_layout AS layout,
+ field_default AS _default,
+ field_readonly As readonly,
+ field_adminonly AS adminonly,
+ reg_field_id AS reg_field_id
+ FROM $field_table WHERE form_id= %d and field_key='custom' ORDER BY field_sequence ASC",
+ $form_id
+ );
+$data = $wpdb->get_results($query);
+foreach ($data as $field){
+ $obj = new SwpmFbFieldmeta();
+ $obj->load($field);
+ $this->fields[$obj->reg_field_id] = $obj;
+}
+
+// echo "<pre>".print_r($this->fields,1)."</pre>";
+
+$query = "SELECT * FROM " . $wpdb->prefix . "swpm_members_tbl";
+$query .= " LEFT JOIN " . $wpdb->prefix . "swpm_membership_tbl";
+$query .= " ON ( membership_level = id ) ";
+if (isset($_REQUEST['last_name']) && $_REQUEST['last_name'] != '') {
+
+ $lastName = sanitize_text_field($_REQUEST['last_name']);
+ if ( trim($lastName) != '' ) {
+ $query .= " WHERE last_name LIKE '%$lastName%' ";
+ }
+}
+if (isset($_REQUEST['first_name']) && $_REQUEST['first_name'] != '') {
+
+ $firstName = sanitize_text_field($_REQUEST['first_name']);
+ if ( trim($firstName) != '' ) {
+ $query .= " WHERE first_name LIKE '%$firstName%' ";
+ }
+}
+$alpha = '';
+if (isset($_REQUEST['alpha']) && $_REQUEST['alpha'] != '') {
+
+ $alpha = sanitize_text_field($_REQUEST['alpha']);
+ if ( trim($alpha) != '' ) {
+ $query .= " WHERE last_name LIKE '$alpha%' ";
+ }
+}
+$orderby = filter_input(INPUT_GET, 'orderby');
+$orderby = empty($orderby) ? 'user_name' : $orderby ;
+$order = filter_input(INPUT_GET, 'order');
+$order = empty($order) ? 'DESC' : $order;
+$query.=' ORDER BY ' . $orderby . ' ' . $order;
+$totalitems = $wpdb->query($query); //return the total number of affected rows
+$perpage = 20;
+$paged = filter_input(INPUT_GET, 'paged');
+if (empty($paged) || !is_numeric($paged) || $paged <= 0) {
+ $paged = 1;
+}
+$totalpages = ceil($totalitems / $perpage);
+if (!empty($paged) && !empty($perpage)) {
+ $offset = ($paged - 1) * $perpage;
+ $query.=' LIMIT ' . (int) $offset . ',' . (int) $perpage;
+}
+$this->items = $wpdb->get_results($query, ARRAY_A);
+foreach ($this->items as $key => $value){
+ $info = array();
+ $query = 'SELECT * FROM ' . $wpdb->prefix . 'swpm_form_builder_custom WHERE user_id= %d';
+ $query = $wpdb->prepare($query, $value['member_id']);
+ foreach ($wpdb->get_results($query) as $row) {
+ $id = empty($row->reg_field_id) ? $row->field_id : $row->reg_field_id;
+ $x = $this->fields[$id]->name;
+ $info[$this->fields[$id]->name] = $row;
+ }
+ $this->items[$key]['data'] = $info;
+}
+
+// Include the output code
+include_once( get_template_directory().'/simple-wp-membership/view.php');
+
+?>
--- /dev/null
+Extension directory for Simple Membership Plugin
+------------------------------------------------
+
+This directory is checked by additions to the simple-wp-membership plugin to see if there
+are certain files here that extend the Simple Membership plugin.
+
+For the extensions in this directory to function properly, the Simple Membership Form
+Builder plugin must also be installed and activated.
+
+If the plugin is updated, these may have to be replaced in the following file.
+
+ plugins/simple-membership/classes/class.simple-wp-membership.php
+
+* Add to the add_shortcode section near the tip of the file.
+
+ // List Members extension
+ add_shortcode('swpm_list_members', array(&$this, 'list_members'));
+
+* Add in a convenient location down with the other methods in the file
+
+ public function list_members() {
+
+ $currentThemeDirectory = get_template_directory();
+ if (file_exists($currentThemeDirectory.'/simple-wp-membership/methods.php')) {
+
+ $auth = BAuth::get_instance();
+ $this->notices();
+ if ($auth->is_logged_in()) {
+
+ ob_start();
+
+ if ($themeExtDir !== false) {
+ include_once($currentThemeDirectory.'/simple-wp-membership/methods.php');
+ }
+
+ return ob_get_clean();
+ }
+ return BUtils::_( 'You are not logged in.');
+ }
+ }
+
+
+
+Files in this directory
+
+readme.txt This file
+methods.php A file containing methods called by shortcodes in shortcodes.php
+view.php A view (template) file containing output code for this extension
+
+
--- /dev/null
+<div class="wrap">
+
+ <style type="text/css">
+ .addSpaceTop {
+ margin-top: 1em;
+ }
+ .initial {
+ margin-left: .2em;
+ padding-left: .2em;
+ padding-right: .2em;
+ margin-left: .2em;
+ }
+ .initialSelected {
+ border: 1px solid black;
+ }
+
+ </style>
+
+ <?php
+ $pageURL = "http://".$_SERVER['SERVER_NAME'].parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
+ echo '
+ <form action="'.$pageURL.'" method="post">
+ <div class="row"><div class="small-12 columns"><h3>Search for Members</h3></div></div>
+ <div class="row">
+ <div class="small-6 columns">First Name: <input type="text" name="first_name" value="'.$first_name.'"></div>
+ <div class="small-6 columns">Last Name: <input type="text" name="last_name" value="'.$last_name.'"></div>
+ </div>
+ <div class="row"><div class="small-12 columns"><input type="submit" name="Search"></div></div>
+ </form>
+ ';
+
+ echo '
+ <div class="row"><div class="small-12 columns addSpaceTop">Or select by last initial.</div></div>
+ <div class="row">
+ <div class="small-12 columns">
+ ';
+ foreach (range('A', 'Z') as $initial) {
+ if ($alpha == $initial) {
+ echo '<a href="'.$pageURL.'?alpha='.$initial.'" class="initial initialSelected">'.$initial.'</a> ';
+ } else {
+ echo '<a href="'.$pageURL.'?alpha='.$initial.'" class="initial">'.$initial.'</a> ';
+ }
+ }
+ echo '
+ </div>
+ </div>
+ <hr>
+ ';
+ foreach($this->items as $m) {
+ if ($m['first_name'].$m['last_name'] != '') {
+ echo '
+ <div class="row">
+ <div class="small-7 columns"><h3>'.$m['first_name'].' '.$m['last_name'].'</h3></div>
+ <div class="small-5 columns">Member since: '.$m['member_since'].'</div>
+ </div>
+ <div class="row">
+ <div class="small-7 columns addSpaceTop">Email address: '.$m['email'].'</div>
+ <div class="small-5 columns">Phone: '.$m['phone'].'</div>
+ </div>
+ '.($m['data']['Spouse name']->value != '' ? '
+ <div class="row">
+ <div class="small-12 columns addSpaceTop">Spouse: '.$m['data']['Spouse name']->value.'</div>
+ </div>
+ <div class="row">
+ '.($m['data']['Spouse email']->value != '' ? '<div class="small-7 columns">Email: '.$m['data']['Spouse email']->value.'</div>' : '').'
+ '.($m['data']['Spouse cell phone']->value != '' ? '<div class="small-5 columns">Cell phone: '.$m['data']['Spouse cell phone']->value.'</div>' : '').'
+ </div>
+ ' : '') .'
+ '.($m['data']['Summer mailing address (P.O. Box)']->value != '' ? '
+ <div class="row"><div class="small-12 columns addSpaceTop">Summer mailing address</div></div>
+ <div class="row"><div class="small-12 columns">
+ '.$m['data']['Summer mailing address (P.O. Box)']->value.'
+ '.($m['data']['Summer Apt']->value != '' ? '
+ Apt: '.$m['data']['Summer Apt']->value.'
+ ' : '').'
+ </div></div>
+ <div class="row">
+ <div class="small-12 columns">'.$m['data']['Summer City']->value.', '.$m['data']['Summer State']->value.' '.$m['data']['Summer ZIP/Postal Code']->value.'</div>
+ </div>
+ ' : '') .'
+ Address #1: '.$m['data']['Address #1']->value.'<br>
+ Phone #1: '.$m['data']['Phone #1']->value.'<br>
+ Address #2: '.$m['data']['Address #2']->value.'<br>
+ Phone #2: '.$m['data']['Phone #2']->value.'<br>
+ Address #3: '.$m['data']['Address #3']->value.'<br>
+ Phone #3: '.$m['data']['Phone #3']->value.'<br>
+ Winter mailing address: '.$m['data']['Winter mailing address']->value.'<br>
+ Winter Apt: '.$m['data']['Winter Apt']->value.'<br>
+ Winter City: '.$m['data']['Winter City']->value.'<br>
+ Winter State: '.$m['data']['Winter State']->value.'<br>
+ Winter ZIP/Postal Code: '.$m['data']['Winter ZIP/Postal Code']->value.'<br>
+ Winter phone: '.$m['data']['Winter phone']->value.'<br>
+ <hr width="80%">
+ </div>
+ ';
+ }
+ }
+ // Uncomment to show contents of each member entry
+ // echo "<pre>".print_r($this->items[1],1)."</pre>";
+ ?>
+</div><!-- end of wrap -->