Option to login user after clicking the activation link

This commit is contained in:
jonfalcon
2016-01-19 16:18:14 -08:00
parent 07c181c69c
commit ece5f6d7be
2 changed files with 76 additions and 52 deletions
+51 -42
View File
@@ -1,30 +1,30 @@
<div class="um-admin-metabox">
<div class="">
<p>
<label class="um-admin-half"><?php _e('Registration Status','ultimatemember'); ?> <?php $this->tooltip( __('Select the status you would like this user role to have after they register on your site','ultimatemember') ); ?></label>
<span class="um-admin-half">
<select name="_um_status" id="_um_status" class="umaf-selectjs um-adm-conditional" style="width: 300px"
data-cond1="approved" data-cond1-show="approved"
<select name="_um_status" id="_um_status" class="umaf-selectjs um-adm-conditional" style="width: 300px"
data-cond1="approved" data-cond1-show="approved"
data-cond2="checkmail" data-cond2-show="checkmail"
data-cond3="pending" data-cond3-show="pending">
<option value="approved" <?php selected('approved', $ultimatemember->query->get_meta_value('_um_status') ); ?>><?php _e('Auto Approve','ultimatemember'); ?></option>
<option value="checkmail" <?php selected('checkmail', $ultimatemember->query->get_meta_value('_um_status') ); ?>><?php _e('Require Email Activation','ultimatemember'); ?></option>
<option value="pending" <?php selected('pending', $ultimatemember->query->get_meta_value('_um_status') ); ?>><?php _e('Require Admin Review','ultimatemember'); ?></option>
</select>
</span>
</p><div class="um-admin-clear"></div>
<!-- Automatic Approval Settings -->
<div class="approved">
<p>
<label class="um-admin-half"><?php _e('Action to be taken after registration','ultimatemember'); ?> <?php $this->tooltip( __('Select what action is taken after a person registers on your site. Depending on the status you can redirect them to their profile, a custom url or show a custom message','ultimatemember') ); ?></label>
<span class="um-admin-half">
<select name="_um_auto_approve_act" id="_um_auto_approve_act" class="umaf-selectjs um-adm-conditional" style="width: 300px" data-cond1="redirect_url" data-cond1-show="_um_auto_approve_act">
<option value="redirect_profile" <?php selected('redirect_profile', $ultimatemember->query->get_meta_value('_um_auto_approve_act') ); ?>><?php _e('Redirect to profile','ultimatemember'); ?></option>
<option value="redirect_url" <?php selected('redirect_url', $ultimatemember->query->get_meta_value('_um_auto_approve_act') ); ?>><?php _e('Redirect to URL','ultimatemember'); ?></option>
@@ -32,28 +32,37 @@
</span>
</p><div class="um-admin-clear"></div>
<p class="_um_auto_approve_act">
<label class="um-admin-half" for="_um_auto_approve_url"><?php _e('Set Custom Redirect URL','ultimatemember'); ?></label>
<span class="um-admin-half">
<input type="text" value="<?php echo $ultimatemember->query->get_meta_value('_um_auto_approve_url', null, 'na'); ?>" name="_um_auto_approve_url" id="_um_auto_approve_url" />
</span>
</p><div class="um-admin-clear"></div>
</div>
<!-- Automatic Approval Settings -->
<!-- Email Approval Settings -->
<div class="checkmail">
<p>
<label class="um-admin-half"><?php _e('Login user after validating the activation link?','ultimatemember'); ?> <?php $this->tooltip( __('Login the user after validating the activation link','ultimatemember') ); ?></label>
<span class="um-admin-half">
<?php $this->ui_on_off('_um_login_email_activate', 0); ?>
</span>
</p><div class="um-admin-clear"></div>
<p>
<label class="um-admin-half"><?php _e('Action to be taken after registration','ultimatemember'); ?> <?php $this->tooltip( __('Select what action is taken after a person registers on your site. Depending on the status you can redirect them to their profile, a custom url or show a custom message','ultimatemember') ); ?></label>
<span class="um-admin-half">
<select name="_um_checkmail_action" id="_um_checkmail_action" class="umaf-selectjs um-adm-conditional" style="width: 300px"
<select name="_um_checkmail_action" id="_um_checkmail_action" class="umaf-selectjs um-adm-conditional" style="width: 300px"
data-cond1="show_message" data-cond1-show="_um_checkmail_action-1"
data-cond2="redirect_url" data-cond2-show="_um_checkmail_action-2">
<option value="show_message" <?php selected('show_message', $ultimatemember->query->get_meta_value('_um_checkmail_action') ); ?>><?php _e('Show custom message','ultimatemember'); ?></option>
@@ -62,46 +71,46 @@
</span>
</p><div class="um-admin-clear"></div>
<p class="_um_checkmail_action-1">
<label class="um-admin-half"><?php _e('Personalize the custom message','ultimatemember'); ?></label>
<span class="um-admin-half">
<textarea name="_um_checkmail_message" id="_um_checkmail_message"><?php echo $ultimatemember->query->get_meta_value('_um_checkmail_message', null, __('Thank you for registering. Before you can login we need you to activate your account by clicking the activation link in the email we just sent you.','ultimatemember') ); ?></textarea>
</span>
</p><div class="um-admin-clear"></div>
<p class="_um_checkmail_action-2">
<label class="um-admin-half" for="_um_checkmail_url"><?php _e('Set Custom Redirect URL','ultimatemember'); ?></label>
<span class="um-admin-half">
<input type="text" value="<?php echo $ultimatemember->query->get_meta_value('_um_checkmail_url', null, 'na'); ?>" name="_um_checkmail_url" id="_um_checkmail_url" />
</span>
</p><div class="um-admin-clear"></div>
<p>
<label class="um-admin-half" for="_um_url_email_activate"><?php _e('URL redirect after e-mail activation','ultimatemember'); ?> <?php $this->tooltip( __('If you want users to go to a specific page other than login page after e-mail activation, enter the URL here.','ultimatemember') ); ?></label>
<span class="um-admin-half">
<input type="text" value="<?php echo $ultimatemember->query->get_meta_value('_um_url_email_activate', null, 'na'); ?>" name="_um_url_email_activate" id="_um_url_email_activate" />
</span>
</p><div class="um-admin-clear"></div>
</div>
<!-- Email Approval Settings -->
<!-- Moderator Approval Settings -->
<div class="pending">
<p>
<label class="um-admin-half"><?php _e('Action to be taken after registration','ultimatemember'); ?> <?php $this->tooltip( __('Select what action is taken after a person registers on your site. Depending on the status you can redirect them to their profile, a custom url or show a custom message','ultimatemember') ); ?></label>
<span class="um-admin-half">
<select name="_um_pending_action" id="_um_pending_action" class="umaf-selectjs um-adm-conditional" style="width: 300px"
<select name="_um_pending_action" id="_um_pending_action" class="umaf-selectjs um-adm-conditional" style="width: 300px"
data-cond1="show_message" data-cond1-show="_um_pending_action-1"
data-cond2="redirect_url" data-cond2-show="_um_pending_action-2">
<option value="show_message" <?php selected('show_message', $ultimatemember->query->get_meta_value('_um_pending_action') ); ?>><?php _e('Show custom message','ultimatemember'); ?></option>
@@ -110,30 +119,30 @@
</span>
</p><div class="um-admin-clear"></div>
<p class="_um_pending_action-1">
<label class="um-admin-half"><?php _e('Personalize the custom message','ultimatemember'); ?></label>
<span class="um-admin-half">
<textarea name="_um_pending_message" id="_um_pending_message"><?php echo $ultimatemember->query->get_meta_value('_um_pending_message', null, __('Thank you for applying for membership to our site. We will review your details and send you an email letting you know whether your application has been successful or not.','ultimatemember') ); ?></textarea>
</span>
</p><div class="um-admin-clear"></div>
<p class="_um_pending_action-2">
<label class="um-admin-half" for="_um_pending_url"><?php _e('Set Custom Redirect URL','ultimatemember'); ?></label>
<span class="um-admin-half">
<input type="text" value="<?php echo $ultimatemember->query->get_meta_value('_um_pending_url', null, 'na'); ?>" name="_um_pending_url" id="_um_pending_url" />
</span>
</p><div class="um-admin-clear"></div>
</div>
<!-- Moderator Approval Settings -->
</div>
<div class="um-admin-clear"></div>
</div>
</div>
+25 -10
View File
@@ -14,7 +14,7 @@ class UM_Permalinks {
remove_action( 'wp_head', 'rel_canonical' );
add_action('wp_head', array(&$this, 'um_rel_canonical_'), 9 );
$this->current_url = $this->get_current_url();
}
@@ -35,14 +35,14 @@ class UM_Permalinks {
echo "<link rel='canonical' href='$link' />\n";
return;
}
$link = get_permalink( $id );
if ( $page = get_query_var('cpage') )
$link = get_comments_pagenum_link( $page );
echo "<link rel='canonical' href='$link' />\n";
}
/***
*** @Get query as array
***/
@@ -63,7 +63,7 @@ class UM_Permalinks {
$um_get_option = get_option('um_options');
$server_name_method = ( $um_get_option['current_url_method'] ) ? $um_get_option['current_url_method'] : 'SERVER_NAME';
$um_port_forwarding_url = ( isset( $um_get_option['um_port_forwarding_url'] ) ) ? $um_get_option['um_port_forwarding_url']: '';
if ( !isset( $_SERVER['SERVER_NAME'] ) )
return '';
@@ -83,17 +83,17 @@ class UM_Permalinks {
if ( $um_port_forwarding_url == 1 && isset( $_SERVER["SERVER_PORT"] ) ) {
$page_url .= $_SERVER[ $server_name_method ].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$page_url .= $_SERVER[ $server_name_method ].$_SERVER["REQUEST_URI"];
}
}
if ( $no_query_params == true ) {
$page_url = strtok($page_url, '?');
}
return apply_filters( 'um_get_current_page_url', $page_url );
}
@@ -116,8 +116,23 @@ class UM_Permalinks {
if ( strtolower($_REQUEST['hash']) !== strtolower( um_user('account_secret_hash') ) ) wp_die('The secret key provided does not match this one for the user.');
$ultimatemember->user->approve();
// $ultimatemember->user->approve();
$redirect = ( um_user('url_email_activate') ) ? um_user('url_email_activate') : um_get_core_page('login', 'account_active');
$login = (bool) um_user('login_email_activate');
// log in automatically
if ( !is_user_logged_in() && $login ) {
$user = get_userdata($user_id);
$user_id = $user->ID;
// update wp user
wp_set_current_user( $user_id, $user_login );
wp_set_auth_cookie( $user_id );
ob_start();
do_action( 'wp_login', $user_login );
ob_end_clean();
}
um_reset_user();
@@ -185,8 +200,8 @@ class UM_Permalinks {
// WPML compatibility
if ( function_exists('icl_object_id') ) {
$language_code = ICL_LANGUAGE_CODE;
$lang_post_id = icl_object_id( $page_id , 'page', true, $language_code );