New status declined.
Status is changed when approved or declined.
* If not found use the member info record email.
* If nothing in either one then return.
*/
- public function sendMemberNotice( $memberId, $profile )
+ public function sendMemberNotice( $memberId, $profile, $approved = true )
{
$member = $this->getEntry( $memberId );
// find notify_to
// get settings
$settings = $this->config['email_notifications'];
$notify_from = $settings['from_email'];
- $message = $settings['approved_message'];
+ if ( $approved ) {
+ $message = $settings['approved_message'];
+ } else {
+ $message = $settings['declined_message'];
+ }
// Setup the Smarty Engine
$smarty = new smartyTemplateSupport();
// Send confirmation email, set the content type to allow html by using this filter
add_filter( 'wp_mail_content_type', array( $this, 'set_content_type' ) );
- $subject = 'Event Approved';
+ if ( $approved ) {
+ $subject = 'Profile Approved';
+ } else {
+ $subject = 'Profile Declined';
+ }
$message = $htmlMessage;
$header[] = 'From:' . $notify_from;
$header[] = 'Reply-To:' . $notify_from;
status[10] = 'Active'
status[20] = 'Pending Review'
status[30] = 'Draft'
+status[40] = 'Declined'
status[90] = 'Archived'
status_numb['Active'] = 10
status_numb['Pending'] = 20
status_numb['Draft'] = 30
status_numb['Inactive'] = 30
+status_numb['Declined'] = 40
status_numb['Archived'] = 90
;
clear: both;
float: right;
}
-#glm-admin-content-container .button-primary#deleteMemberInfoButton {
+#glm-admin-content-container .button-primary#deleteMemberInfoButton,
+#glm-admin-content-container .button-primary.glm-alert {
background: #e14d43;
border: 1px solid #890000;
box-shadow: 0 1px 0 #890000;
+ margin-left: 5px;
}
-#glm-admin-content-container .button-primary#deleteMemberInfoButton:hover {
+#glm-admin-content-container .button-primary#deleteMemberInfoButton:hover,
+#glm-admin-content-container .button-primary.glm-alert:hover {
background: #f66258;
box-shadow: 0 -1px 0 #890000;
}
if ($this->memberInfo['status']) {
// Status shortnames
- $draft = $this->config['status_numb']['Draft'];
- $pending = $this->config['status_numb']['Pending'];
- $active = $this->config['status_numb']['Active'];
+ $draft = $this->config['status_numb']['Draft'];
+ $pending = $this->config['status_numb']['Pending'];
+ $active = $this->config['status_numb']['Active'];
+ $declined = $this->config['status_numb']['Declined'];
// Send out a notice to the member if going from
// Pending to Active status
$profile = array(
'reference_name' => filter_var( $_REQUEST['reference_name'], FILTER_SANITIZE_STRING ),
);
- $Notifications->sendMemberNotice( $this->memberID, $profile );
+ $Notifications->sendMemberNotice( $this->memberID, $profile, true );
+
+ // Need to Archive the original record since this new pending one is taking it's place.
+ // delete the selected record
+ $this->wpdb->query(
+ $this->wpdb->prepare(
+ "UPDATE " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_info
+ SET status = %d
+ WHERE status = %d
+ AND reference_name = %s
+ AND member = %d
+ AND id != %d",
+ $this->config['status_numb']['Archived'],
+ $this->config['status_numb']['Active'],
+ $profile['reference_name'],
+ $this->memberID,
+ $this->memberInfoID
+ )
+ );
+
+ } else if ( $new_status == $declined && $old_status == $pending ) {
+ $Notifications = new GlmMembersAdmin_member_notification( $this->wpdb, $this->config );
+ // Get the profile reference name
+ $profile = array(
+ 'reference_name' => filter_var( $_REQUEST['reference_name'], FILTER_SANITIZE_STRING ),
+ );
+ $Notifications->sendMemberNotice( $this->memberID, $profile, false );
}
// If a moderated user is going from Draft to Pending then send the admin notification
{if $settings.selected_map_interface == 2}
<script src="//maps.googleapis.com/maps/api/js?&key={$settings.google_maps_api_key}"></script>
<script type="text/javascript">var enableDraggable = true;</script>
- {/if}
+ {/if}
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
value="Request Update">
{* Else they can edit normally *}
{else}
- {if $memberInfo.fieldData.status.value == '30'}
- <input class="updateMemberProfile button-primary glm-right" type="submit" value="{if $memberInfoID && $memberInfo}Approve {$terms.term_member} profile{else}Add new {$terms.term_member} profile{/if}">
+ {if $memberInfo.fieldData.status.value == '20'}
+ <input class="declineMemberProfile button-primary glm-right glm-alert" type="submit" value="{if $memberInfoID && $memberInfo}Decline {$terms.term_member} profile{else}Add new {$terms.term_member} profile{/if}">
+ <input class="approveMemberProfile button-primary glm-right" type="submit" value="{if $memberInfoID && $memberInfo}Approve {$terms.term_member} profile{else}Add new {$terms.term_member} profile{/if}">
{else}
<input class="updateMemberProfile button-primary glm-right" type="submit" value="{if $memberInfoID && $memberInfo}Update {$terms.term_member} profile{else}Add new {$terms.term_member} profile{/if}">
{/if}
<input class="pendingMemberUpdate updateMemberProfile button-primary" type="submit" value="Request Update">
<input class="saveAsDraft updateMemberProfile button-secondary" type="submit" style="margin-left: 10px;" value="Save as Draft">
{else}
- <input class="updateMemberProfile button-primary" type="submit" value="{if $memberInfoID && $memberInfo}Update {$terms.term_member} profile{else}Add new {$terms.term_member} profile{/if}">
+ {if $memberInfo.fieldData.status.value == '20'}
+ <input class="approveMemberProfile button-primary" type="submit" value="{if $memberInfoID && $memberInfo}Approve {$terms.term_member} profile{else}Add new {$terms.term_member} profile{/if}">
+ <input class="declineMemberProfile button-primary glm-alert" type="submit" value="{if $memberInfoID && $memberInfo}Decline {$terms.term_member} profile{else}Add new {$terms.term_member} profile{/if}">
+ {else}
+ <input class="updateMemberProfile button-primary" type="submit" value="{if $memberInfoID && $memberInfo}Update {$terms.term_member} profile{else}Add new {$terms.term_member} profile{/if}">
+ {/if}
{/if}
</form>
});
}
-*/
+*/
// Listen for changes to video type
$('#glm-video-type').change( function() {
$("#newMailingCityDialog").dialog("close");
});
-
+
// Flash certain elements for a short time after display
$(".glm-flash-updated").fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500);
glmSubmitRequired = false;
return true;
});
+ // If admin approves the member record
+ $('.approveMemberProfile').on('click', function(){
+ // Set the status to Active
+ $('select[name=status]').val('10');
+ return true;
+ });
+ // If admin declines the member record
+ $('.declineMemberProfile').on('click', function(){
+ $('select[name=status]').val('40');
+ return true;
+ });
// If submit is required and we're laving the page, alert the user
$(window).bind('beforeunload', function() {