mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-07-16 21:23:39 +09:00
Merge pull request #1428 from ultimatemember/feature/welcome_emaul_set_password
Add set password URL if user is registered without password
This commit is contained in:
@@ -334,8 +334,8 @@ if ( ! class_exists( 'um\Config' ) ) {
|
||||
'subject' => 'Welcome to {site_name}!',
|
||||
'body' => 'Hi {display_name},<br /><br />' .
|
||||
'Thank you for signing up with {site_name}! Your account is now active.<br /><br />' .
|
||||
'To login please visit the following url:<br /><br />' .
|
||||
'{login_url} <br /><br />' .
|
||||
'{action_title}:<br /><br />' .
|
||||
'{action_url} <br /><br />' .
|
||||
'Your account e-mail: {email} <br />' .
|
||||
'Your account username: {username} <br /><br />' .
|
||||
'If you have any problems, please contact us at {admin_email}<br /><br />' .
|
||||
|
||||
@@ -623,6 +623,8 @@ if ( ! class_exists( 'um\core\Mail' ) ) {
|
||||
$placeholders[] = '{login_url}';
|
||||
$placeholders[] = '{password}';
|
||||
$placeholders[] = '{account_activation_link}';
|
||||
$placeholders[] = '{action_url}';
|
||||
$placeholders[] = '{action_title}';
|
||||
return $placeholders;
|
||||
}
|
||||
|
||||
@@ -641,6 +643,16 @@ if ( ! class_exists( 'um\core\Mail' ) ) {
|
||||
$replace_placeholders[] = um_get_core_page( 'login' );
|
||||
$replace_placeholders[] = esc_html__( 'Your set password', 'ultimate-member' );
|
||||
$replace_placeholders[] = um_user( 'account_activation_link' );
|
||||
|
||||
$set_password_required = get_user_meta( um_user( 'ID' ), 'um_set_password_required', true );
|
||||
if ( empty( $set_password_required ) || 'pending' === um_user( 'status' ) ) {
|
||||
$replace_placeholders[] = um_get_core_page( 'login' );
|
||||
$replace_placeholders[] = esc_html__( 'Login to our site', 'ultimate-member' );
|
||||
} else {
|
||||
$replace_placeholders[] = um_user( 'password_reset_link' );
|
||||
$replace_placeholders[] = esc_html__( 'Set your password', 'ultimate-member' );
|
||||
}
|
||||
|
||||
return $replace_placeholders;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -155,6 +155,7 @@ if ( ! class_exists( 'um\core\Password' ) ) {
|
||||
|
||||
if ( false !== $this->change_password ) {
|
||||
// then COOKIE are valid then get data from them and populate hidden fields for the password reset form
|
||||
$args['rp_mode'] = 'pw_change';
|
||||
$args['template'] = 'password-change';
|
||||
$args['rp_key'] = '';
|
||||
$rp_cookie = 'wp-resetpass-' . COOKIEHASH;
|
||||
@@ -163,6 +164,14 @@ if ( ! class_exists( 'um\core\Password' ) ) {
|
||||
|
||||
$args['login'] = $rp_login;
|
||||
$args['rp_key'] = $rp_key;
|
||||
|
||||
$rp_user_obj = get_user_by( 'login', $rp_login );
|
||||
if ( false !== $rp_user_obj ) {
|
||||
$set_password_required = get_user_meta( $rp_user_obj->ID, 'um_set_password_required', true );
|
||||
if ( ! empty( $set_password_required ) ) {
|
||||
$args['rp_mode'] = 'pw_set';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -599,6 +608,11 @@ if ( ! class_exists( 'um\core\Password' ) ) {
|
||||
}
|
||||
$this->setcookie( $rp_cookie, false );
|
||||
|
||||
$set_password_required = get_user_meta( $user->ID, 'um_set_password_required', true );
|
||||
if ( ! empty( $set_password_required ) ) {
|
||||
delete_user_meta( $user->ID, 'um_set_password_required' );
|
||||
}
|
||||
|
||||
/**
|
||||
* UM hook
|
||||
*
|
||||
|
||||
@@ -125,8 +125,14 @@ if ( ! class_exists( 'um\core\Permalinks' ) ) {
|
||||
wp_die( __( 'This activation link is expired.', 'ultimate-member' ) );
|
||||
}
|
||||
|
||||
$redirect = um_get_core_page( 'login', 'account_active' );
|
||||
$set_password_required = get_user_meta( $user_id, 'um_set_password_required', true );
|
||||
|
||||
um_fetch_user( $user_id );
|
||||
UM()->user()->approve();
|
||||
if ( ! empty( $set_password_required ) ) {
|
||||
$redirect = um_user( 'password_reset_link' );
|
||||
}
|
||||
um_reset_user();
|
||||
|
||||
$user_role = UM()->roles()->get_priority_user_role( $user_id );
|
||||
@@ -167,7 +173,9 @@ if ( ! class_exists( 'um\core\Permalinks' ) ) {
|
||||
*/
|
||||
do_action( 'um_after_email_confirmation', $user_id );
|
||||
|
||||
$redirect = empty( $user_role_data['url_email_activate'] ) ? um_get_core_page( 'login', 'account_active' ) : trim( $user_role_data['url_email_activate'] ); // Role setting "URL redirect after e-mail activation"
|
||||
if ( empty( $set_password_required ) ) {
|
||||
$redirect = empty( $user_role_data['url_email_activate'] ) ? um_get_core_page( 'login', 'account_active' ) : trim( $user_role_data['url_email_activate'] ); // Role setting "URL redirect after e-mail activation"
|
||||
}
|
||||
$redirect = apply_filters( 'um_after_email_confirmation_redirect', $redirect, $user_id, $login );
|
||||
|
||||
exit( wp_redirect( $redirect ) );
|
||||
|
||||
@@ -1690,7 +1690,7 @@ if ( ! class_exists( 'um\core\User' ) ) {
|
||||
?>
|
||||
*
|
||||
*/
|
||||
function approve( $repeat = true ) {
|
||||
public function approve( $repeat = true ) {
|
||||
$user_id = um_user( 'ID' );
|
||||
|
||||
if ( ! $repeat ) {
|
||||
@@ -1702,7 +1702,7 @@ if ( ! class_exists( 'um\core\User' ) ) {
|
||||
|
||||
delete_option( "um_cache_userdata_{$user_id}" );
|
||||
|
||||
if ( um_user( 'account_status' ) == 'awaiting_admin_review' ) {
|
||||
if ( 'awaiting_admin_review' === um_user( 'account_status' ) ) {
|
||||
$userdata = get_userdata( $user_id );
|
||||
|
||||
$this->maybe_generate_password_reset_key( $userdata );
|
||||
|
||||
@@ -100,10 +100,11 @@ function um_action_request_process() {
|
||||
wp_die( esc_html__( 'You do not have permission to make this action.', 'ultimate-member' ) );
|
||||
}
|
||||
|
||||
um_fetch_user( $uid );
|
||||
|
||||
add_filter( 'um_template_tags_patterns_hook', array( UM()->password(), 'add_placeholder' ), 10, 1 );
|
||||
add_filter( 'um_template_tags_replaces_hook', array( UM()->password(), 'add_replace_placeholder' ), 10, 1 );
|
||||
|
||||
um_fetch_user( $uid );
|
||||
UM()->user()->approve();
|
||||
exit( wp_redirect( UM()->permalinks()->get_current_url( true ) ) );
|
||||
break;
|
||||
|
||||
@@ -417,8 +417,10 @@ function um_submit_form_register( $args, $form_data ) {
|
||||
$user_email = $args['user_email'];
|
||||
}
|
||||
|
||||
$generate_password = false;
|
||||
if ( ! isset( $args['user_password'] ) ) {
|
||||
$user_password = UM()->validation()->generate( 8 );
|
||||
$generate_password = true;
|
||||
$user_password = UM()->validation()->generate( 8 );
|
||||
} else {
|
||||
$user_password = $args['user_password'];
|
||||
}
|
||||
@@ -520,6 +522,10 @@ function um_submit_form_register( $args, $form_data ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( true === $generate_password ) {
|
||||
update_user_meta( $user_id, 'um_set_password_required', true );
|
||||
}
|
||||
|
||||
/**
|
||||
* Fires after complete UM user registration.
|
||||
*
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*
|
||||
* This template can be overridden by copying it to {your-theme}/ultimate-member/email/welcome_email.php
|
||||
*
|
||||
* @version 2.6.1
|
||||
* @version 2.8.3
|
||||
*/
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit;
|
||||
@@ -21,9 +21,9 @@ if ( ! defined( 'ABSPATH' ) ) {
|
||||
|
||||
<div style="padding: 0 30px 30px 30px;border-bottom: 3px solid #eeeeee;">
|
||||
|
||||
<div style="padding: 30px 0;font-size: 24px;text-align: center;line-height: 40px;">Thank you for signing up!<span style="display: block;">Your account is now active.</span></div>
|
||||
<div style="padding: 30px 0;font-size: 24px;text-align: center;line-height: 40px;">Thank you for signing up! <span style="display: block;">Your account is now active.</span></div>
|
||||
|
||||
<div style="padding: 10px 0 50px 0;text-align: center;"><a href="{login_url}" style="background: #555555;color: #fff;padding: 12px 30px;text-decoration: none;border-radius: 3px;letter-spacing: 0.3px;">Login to our site</a></div>
|
||||
<div style="padding: 10px 0 50px 0;text-align: center;"><a href="{action_url}" style="background: #555555;color: #fff;padding: 12px 30px;text-decoration: none;border-radius: 3px;letter-spacing: 0.3px;">{action_title}</a></div>
|
||||
|
||||
<div style="padding:20px;">If you have any problems, please contact us at <a href="mailto:{admin_email}" style="color: #3ba1da;text-decoration: none">{admin_email}</a></div>
|
||||
|
||||
|
||||
@@ -6,19 +6,18 @@
|
||||
*
|
||||
* Call: function ultimatemember_password()
|
||||
*
|
||||
* @version 2.7.0
|
||||
* @version 2.8.3
|
||||
*
|
||||
* @var string $mode
|
||||
* @var string $rp_key
|
||||
* @var int $form_id
|
||||
* @var array $args
|
||||
* @var string $rp_mode 'pw_set' or 'pw_change' for display it differently.
|
||||
* @var string $rp_key Reset password key.
|
||||
* @var array $args Change password arguments
|
||||
*/
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit;
|
||||
}
|
||||
?>
|
||||
|
||||
<div class="um <?php echo esc_attr( $this->get_class( $mode ) ); ?> um-<?php echo esc_attr( $form_id ); ?>">
|
||||
<div class="um <?php echo esc_attr( $this->get_class( 'password' ) ); ?> um-um_password_id">
|
||||
|
||||
<div class="um-form">
|
||||
|
||||
@@ -29,23 +28,18 @@ if ( ! defined( 'ABSPATH' ) ) {
|
||||
|
||||
<?php
|
||||
/**
|
||||
* UM hook
|
||||
* Fires at the start of the password change form. Just after hiddens.
|
||||
*
|
||||
* @type action
|
||||
* @title um_change_password_page_hidden_fields
|
||||
* @description Password change hidden fields
|
||||
* @input_vars
|
||||
* [{"var":"$args","type":"array","desc":"Password change shortcode arguments"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage add_action( 'um_change_password_page_hidden_fields', 'function_name', 10, 1 );
|
||||
* @example
|
||||
* <?php
|
||||
* add_action( 'um_change_password_page_hidden_fields', 'my_change_password_page_hidden_fields', 10, 1 );
|
||||
* function my_change_password_page_hidden_fields( $args ) {
|
||||
* // your code here
|
||||
* @since 1.3.x
|
||||
* @hook um_change_password_page_hidden_fields
|
||||
*
|
||||
* @param {array} $cp_args Change password form arguments.
|
||||
*
|
||||
* @example <caption>Add hidden field at the start of the change password form.</caption>
|
||||
* function my_custom_change_password_page_hidden_fields( $cp_args ) {
|
||||
* echo '<input type="hidden" name="my_custom_cp_input" value="1" />'
|
||||
* }
|
||||
* ?>
|
||||
* add_action( 'um_change_password_page_hidden_fields', 'my_custom_change_password_page_hidden_fields' );
|
||||
*/
|
||||
do_action( 'um_change_password_page_hidden_fields', $args );
|
||||
|
||||
@@ -57,38 +51,37 @@ if ( ! defined( 'ABSPATH' ) ) {
|
||||
foreach ( $fields as $key => $data ) {
|
||||
$output .= UM()->fields()->edit_field( $key, $data );
|
||||
}
|
||||
echo $output; ?>
|
||||
if ( $output ) {
|
||||
echo wp_kses( $output, UM()->get_allowed_html( 'templates' ) );
|
||||
}
|
||||
?>
|
||||
|
||||
<div class="um-col-alt um-col-alt-b">
|
||||
|
||||
<div class="um-center">
|
||||
<input type="submit" value="<?php esc_attr_e( 'Change password', 'ultimate-member' ); ?>" class="um-button" id="um-submit-btn" />
|
||||
<?php if ( 'pw_set' === $rp_mode ) { ?>
|
||||
<input type="submit" value="<?php esc_attr_e( 'Set password', 'ultimate-member' ); ?>" class="um-button" id="um-submit-btn" />
|
||||
<?php } else { ?>
|
||||
<input type="submit" value="<?php esc_attr_e( 'Change password', 'ultimate-member' ); ?>" class="um-button" id="um-submit-btn" />
|
||||
<?php } ?>
|
||||
</div>
|
||||
|
||||
<div class="um-clear"></div>
|
||||
|
||||
</div>
|
||||
|
||||
<?php
|
||||
|
||||
/**
|
||||
* UM hook
|
||||
* Fires at the end of the password change form.
|
||||
*
|
||||
* @type action
|
||||
* @title um_change_password_form
|
||||
* @description Password change form content
|
||||
* @input_vars
|
||||
* [{"var":"$args","type":"array","desc":"Password change shortcode arguments"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage add_action( 'um_change_password_form', 'function_name', 10, 1 );
|
||||
* @example
|
||||
* <?php
|
||||
* add_action( 'um_change_password_form', 'my_change_password_form', 10, 1 );
|
||||
* function my_change_password_form( $args ) {
|
||||
* // your code here
|
||||
* @since 1.3.x
|
||||
* @hook um_change_password_form
|
||||
*
|
||||
* @param {array} $cp_args Change password form arguments.
|
||||
*
|
||||
* @example <caption>Add hidden field at the start of the change password form.</caption>
|
||||
* function my_custom_change_password_form( $cp_args ) {
|
||||
* echo '<input type="hidden" name="my_custom_cp_input" value="1" />'
|
||||
* }
|
||||
* ?>
|
||||
* add_action( 'um_change_password_form', 'my_custom_change_password_form' );
|
||||
*/
|
||||
do_action( 'um_change_password_form', $args );
|
||||
/** This action is documented in includes/core/um-actions-profile.php */
|
||||
|
||||
Reference in New Issue
Block a user