switch ( $option ) {
case 'search':
+ // echo '<pre>$this->config: ' . print_r( $this->config, true ) . '</pre>';
$view = 'search';
$searchResults = array();
$messages = array();
$mTypeSelected = false;
- $whereParts = array(
- "T.status != " . $this->config['status_numb']['Archived']
- );
+ $whereParts = array();
+ $catsToUse = array();
wp_enqueue_style( 'select2','https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css' );
wp_enqueue_script( 'select2js', 'https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js' );
// echo '<pre>$_REQUEST: ' . print_r( $_REQUEST, true ) . '</pre>';
+ if ( isset( $_REQUEST['filterMemberStatus'] ) && $filterStatus = filter_var( $_REQUEST['filterMemberStatus'], FILTER_VALIDATE_INT) ) {
+ $whereParts[] = " T.status = " . $filterStatus;
+ } else {
+ $whereParts[] = "T.status != " . $this->config['status_numb']['Archived'];
+ }
+
+ if ( isset( $_REQUEST['filterMemberAccess'] ) && $filterAccess = filter_var( $_REQUEST['filterMemberAccess'], FILTER_VALIDATE_INT) ) {
+ $whereParts[] = " T.member IN (SELECT id FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "members where access = ".$filterAccess.")";
+ }
+ if ( isset( $_REQUEST['filterMemberName'] ) && $filterMemberName = filter_var( $_REQUEST['filterMemberName'] ) ) {
+ $textSearch = addslashes(filter_var($_REQUEST['filterMemberName'], FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES));
+ $whereParts[] = "T.member IN (
+ SELECT DISTINCT( id )
+ FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "members
+ WHERE name like '%$textSearch%'
+ )";
+ }
+ if ( isset( $_REQUEST['filterContactEmail'] ) && $filterContactEmail = filter_var( $_REQUEST['filterContactEmail'], FILTER_SANITIZE_STRING) ) {
+ $textSearch = addslashes(filter_var($_REQUEST['filterContactEmail'], FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES));
+ $whereParts[] = "T.member IN (
+ SELECT DISTINCT( ref_dest )
+ FROM " . GLM_MEMBERS_CONTACTS_PLUGIN_DB_PREFIX . "contacts
+ WHERE email like '%$textSearch%'
+ )";
+ }
+ if ( isset( $_REQUEST['filterContactFirstName'] ) && $filterContactFirstName = filter_var( $_REQUEST['filterContactFirstName'], FILTER_SANITIZE_STRING) ) {
+ $textSearch = addslashes(filter_var($_REQUEST['filterContactFirstName'], FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES));
+ $whereParts[] = "T.member IN (
+ SELECT DISTINCT( ref_dest )
+ FROM " . GLM_MEMBERS_CONTACTS_PLUGIN_DB_PREFIX . "contacts
+ WHERE fname like '%$textSearch%'
+ )";
+ }
+ if ( isset( $_REQUEST['filterContactLastName'] ) && $filterContactLastName = filter_var( $_REQUEST['filterContactLastName'], FILTER_SANITIZE_STRING) ) {
+ $textSearch = addslashes(filter_var($_REQUEST['filterContactLastName'], FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES));
+ $whereParts[] = "T.member IN (
+ SELECT DISTINCT( ref_dest )
+ FROM " . GLM_MEMBERS_CONTACTS_PLUGIN_DB_PREFIX . "contacts
+ WHERE lname like '%$textSearch%'
+ )";
+ }
+
// Check if this is a request to show archived members
if ( isset( $_REQUEST['filterArchived'] ) ) {
$whereParts[] = " T.member IN (SELECT id FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "members where access = ".$this->config['access_numb']['Archived'].")";
'categories' => $categories,
'member_types' => $member_types,
'searchResults' => $searchResults,
+ 'accessTypes' => $this->config['access'],
+ 'statusTypes' => $this->config['status'],
);
break;
if ( $emailQueues ) {
foreach ( $emailQueues as $email ) {
- $this->sendHtmlEmail( $email['from_email'], $email['to_email'], $email['subject'], $email['message_body'], $email['reply_to_email'] );
+ $this->sendHtmlEmail(
+ $email['from_email'],
+ $email['to_email'],
+ $email['subject'],
+ $email['message_body'],
+ $email['from_name'],
+ $email['reply_to_email']
+ );
// Update this to processed
$this->wpdb->update(
GLM_MEMBERS_MESSAGES_PLUGIN_DB_PREFIX . 'email_queue',
* @access public
* @return void
*/
- public function sendHtmlEmail( $from, $to, $subject, $htmlMessage, $replyTo = null )
+ public function sendHtmlEmail( $from, $to, $subject, $htmlMessage, $fromName, $replyTo = null )
{
// Set the From name using this wordpress hook.
add_filter(
'wp_mail_from_name',
function ( $name ) {
- return $this->config['settings']['reg_org_name'];
+ return $fromName;
}
);
// Send confirmation email, set the content type to allow html by using this filter
</table>
</form>
{else}
+ {* Search Form *}
<form action="{$thisUrl}?page={$thisPage}" method="post">
<input type="hidden" name="page" value="{$thisPage}" />
<input type="hidden" name="option" value="search" />
</td>
</tr>
<tr>
- <th>Member Type</th>
+ <th>{$terms.term_member_cap} Type</th>
<td>
<select id="filterMemberTypes" name="filterMemberTypes">
<option value=""></option>
</select>
</td>
</tr>
+ <tr>
+ <th>{$terms.term_member_cap} Profile Status</th>
+ <td>
+ <select name="filterMemberStatus">
+ <option value=""></option>
+ {foreach $statusTypes as $key => $status}
+ <option value="{$key}">{$status}</option>
+ {/foreach}
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <th>{$terms.term_member_cap} Access</th>
+ <td>
+ <select name="filterMemberAccess">
+ <option value=""></option>
+ {foreach $accessTypes as $key => $status}
+ <option value="{$key}">{$status}</option>
+ {/foreach}
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <th>{$terms.term_member_cap} Name</th>
+ <td>
+ <input name="filterMemberName" />
+ </td>
+ </tr>
+ <tr>
+ <th>Contact Email</th>
+ <td>
+ <input name="filterContactEmail" />
+ </td>
+ </tr>
+ <tr>
+ <th>Contact First Name</th>
+ <td>
+ <input name="filterContactFirstName" />
+ </td>
+ </tr>
+ <tr>
+ <th>Contact Last Name</th>
+ <td>
+ <input name="filterContactLastName" />
+ </td>
+ </tr>
+
<tr>
<td colspan="2">
<input type="submit" value="Search" />