* fixed sending emails upon registration;

* fixed using `um_user( 'status' )` and `um_user( 'account_status' )` functions;
* fixed using `set_status()` function;
* based on https://github.com/ultimatemember/ultimatemember/pull/1564
This commit is contained in:
Mykyta Synelnikov
2024-10-10 18:18:56 +03:00
parent 4fc152876b
commit 7f7820e67c
11 changed files with 49 additions and 90 deletions
+2 -1
View File
@@ -150,6 +150,7 @@ if ( ! class_exists( 'um\admin\Secure' ) ) {
} }
// Restore Account Status. // Restore Account Status.
if ( isset( $metadata['account_status'] ) ) { if ( isset( $metadata['account_status'] ) ) {
// Force update of the user status without email notifications.
UM()->common()->users()->set_status( $user_id, $metadata['account_status'] ); UM()->common()->users()->set_status( $user_id, $metadata['account_status'] );
} }
@@ -327,7 +328,7 @@ if ( ! class_exists( 'um\admin\Secure' ) ) {
if ( 'account_status' === $column_name ) { if ( 'account_status' === $column_name ) {
um_fetch_user( $user_id ); um_fetch_user( $user_id );
$is_blocked = um_user( 'um_user_blocked' ); $is_blocked = um_user( 'um_user_blocked' );
$account_status = um_user( 'account_status' ); $account_status = UM()->common()->users()->get_status( $user_id );
if ( ! empty( $is_blocked ) && in_array( $account_status, array( 'rejected', 'inactive' ), true ) ) { if ( ! empty( $is_blocked ) && in_array( $account_status, array( 'rejected', 'inactive' ), true ) ) {
$datetime = um_user( 'um_user_blocked__timestamp' ); $datetime = um_user( 'um_user_blocked__timestamp' );
$val .= '<div><small>' . esc_html__( 'Blocked Due to Suspicious Activity', 'ultimate-member' ) . '</small></div>'; $val .= '<div><small>' . esc_html__( 'Blocked Due to Suspicious Activity', 'ultimate-member' ) . '</small></div>';
+4 -2
View File
@@ -106,7 +106,7 @@ if ( ! class_exists( 'um\common\Secure' ) ) {
$banned_profile_links = ''; $banned_profile_links = '';
foreach ( $user_ids as $uid ) { foreach ( $user_ids as $uid ) {
um_fetch_user( $uid ); um_fetch_user( $uid );
$banned_profile_links .= UM()->user()->get_profile_link( $uid ) . ' ' . um_user( 'account_status' ) . '<br />'; $banned_profile_links .= UM()->user()->get_profile_link( $uid ) . ' ' . UM()->common()->users()->get_status( $uid ) . '<br />';
} }
um_reset_user(); um_reset_user();
@@ -221,18 +221,20 @@ if ( ! class_exists( 'um\common\Secure' ) ) {
'submitted' => ! empty( UM()->form()->post_form ) ? UM()->form()->post_form : '', 'submitted' => ! empty( UM()->form()->post_form ) ? UM()->form()->post_form : '',
'roles' => $user->roles, 'roles' => $user->roles,
'user_agent' => $user_agent, 'user_agent' => $user_agent,
'account_status' => um_user( 'status' ), 'account_status' => UM()->common()->users()->get_status( $user->ID ),
); );
update_user_meta( $user->ID, 'um_user_blocked__metadata', $captured ); update_user_meta( $user->ID, 'um_user_blocked__metadata', $captured );
$user->remove_all_caps(); $user->remove_all_caps();
$user->update_user_level_from_caps(); $user->update_user_level_from_caps();
// Force update of the user status without email notifications.
if ( is_user_logged_in() ) { if ( is_user_logged_in() ) {
UM()->common()->users()->set_status( $user->ID, 'inactive' ); UM()->common()->users()->set_status( $user->ID, 'inactive' );
} else { } else {
UM()->common()->users()->set_status( $user->ID, 'rejected' ); UM()->common()->users()->set_status( $user->ID, 'rejected' );
} }
um_reset_user(); um_reset_user();
update_user_meta( $user->ID, 'um_user_blocked', 'suspicious_activity' ); update_user_meta( $user->ID, 'um_user_blocked', 'suspicious_activity' );
update_user_meta( $user->ID, 'um_user_blocked__timestamp', current_time( 'mysql', true ) ); update_user_meta( $user->ID, 'um_user_blocked__timestamp', current_time( 'mysql', true ) );
+2 -2
View File
@@ -2680,8 +2680,8 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
'card_anchor' => esc_html( substr( md5( $user_id ), 10, 5 ) ), 'card_anchor' => esc_html( substr( md5( $user_id ), 10, 5 ) ),
'id' => absint( $user_id ), 'id' => absint( $user_id ),
'role' => esc_html( um_user( 'role' ) ), 'role' => esc_html( um_user( 'role' ) ),
'account_status' => esc_html( um_user( 'account_status' ) ), 'account_status' => esc_html( UM()->common()->users()->get_status( $user_id ) ),
'account_status_name' => esc_html( um_user( 'account_status_name' ) ), 'account_status_name' => esc_html( UM()->common()->users()->get_status( $user_id, 'formatted' ) ),
'cover_photo' => wp_kses( um_user( 'cover_photo', $this->cover_size ), UM()->get_allowed_html( 'templates' ) ), 'cover_photo' => wp_kses( um_user( 'cover_photo', $this->cover_size ), UM()->get_allowed_html( 'templates' ) ),
'display_name' => esc_html( um_user( 'display_name' ) ), 'display_name' => esc_html( um_user( 'display_name' ) ),
'profile_url' => esc_url( um_user_profile_url() ), 'profile_url' => esc_url( um_user_profile_url() ),
+11 -41
View File
@@ -432,7 +432,7 @@ if ( ! class_exists( 'um\core\User' ) ) {
} }
$metakeys = array( 'account_status', 'hide_in_members', 'synced_gravatar_hashed_id', 'synced_profile_photo', 'profile_photo', 'cover_photo', '_um_verified' ); $metakeys = array( 'account_status', 'hide_in_members', 'synced_gravatar_hashed_id', 'synced_profile_photo', 'profile_photo', 'cover_photo', '_um_verified' );
if ( ! in_array( $meta_key, $metakeys ) ) { if ( ! in_array( $meta_key, $metakeys, true ) ) {
return; return;
} }
@@ -506,7 +506,7 @@ if ( ! class_exists( 'um\core\User' ) ) {
function on_update_usermeta( $meta_id, $object_id, $meta_key, $_meta_value ) { function on_update_usermeta( $meta_id, $object_id, $meta_key, $_meta_value ) {
$metakeys = array( 'account_status', 'hide_in_members', 'synced_gravatar_hashed_id', 'synced_profile_photo', 'profile_photo', 'cover_photo', '_um_verified' ); $metakeys = array( 'account_status', 'hide_in_members', 'synced_gravatar_hashed_id', 'synced_profile_photo', 'profile_photo', 'cover_photo', '_um_verified' );
if ( ! in_array( $meta_key, $metakeys ) ) { if ( ! in_array( $meta_key, $metakeys, true ) ) {
return; return;
} }
@@ -642,28 +642,23 @@ if ( ! class_exists( 'um\core\User' ) ) {
delete_transient( 'um_count_users_pending_dot' ); delete_transient( 'um_count_users_pending_dot' );
} }
/** /**
* *
*/ */
function check_membership() { public function check_membership() {
if ( ! is_user_logged_in() ) { if ( ! is_user_logged_in() ) {
return; return;
} }
um_fetch_user( get_current_user_id() ); $status = UM()->common()->users()->get_status( get_current_user_id() );
$status = um_user( 'account_status' ); if ( 'rejected' === $status ) {
if ( 'rejected' == $status ) {
wp_logout(); wp_logout();
session_unset(); session_unset();
exit( wp_redirect( um_get_core_page( 'login' ) ) ); um_safe_redirect( um_get_core_page( 'login' ) );
exit;
} }
um_reset_user();
} }
/** /**
* Multisite add existing user * Multisite add existing user
* *
@@ -1295,25 +1290,7 @@ if ( ! class_exists( 'um\core\User' ) ) {
$this->usermeta['account_status'][0] = 'approved'; $this->usermeta['account_status'][0] = 'approved';
} }
if ( $this->usermeta['account_status'][0] == 'approved' ) { $this->usermeta['account_status_name'][0] = UM()->common()->users()->get_status( $this->id, 'formatted' );
$this->usermeta['account_status_name'][0] = __( 'Approved', 'ultimate-member' );
}
if ( $this->usermeta['account_status'][0] == 'awaiting_email_confirmation' ) {
$this->usermeta['account_status_name'][0] = __( 'Awaiting Email Confirmation', 'ultimate-member' );
}
if ( $this->usermeta['account_status'][0] == 'awaiting_admin_review' ) {
$this->usermeta['account_status_name'][0] = __( 'Pending Review', 'ultimate-member' );
}
if ( $this->usermeta['account_status'][0] == 'rejected' ) {
$this->usermeta['account_status_name'][0] = __( 'Membership Rejected', 'ultimate-member' );
}
if ( $this->usermeta['account_status'][0] == 'inactive' ) {
$this->usermeta['account_status_name'][0] = __( 'Membership Inactive', 'ultimate-member' );
}
// add user meta // add user meta
foreach ( $this->usermeta as $k => $v ) { foreach ( $this->usermeta as $k => $v ) {
@@ -1619,36 +1596,29 @@ if ( ! class_exists( 'um\core\User' ) ) {
* *
* @param bool $send_mail * @param bool $send_mail
*/ */
function delete( $send_mail = true ) { public function delete( $send_mail = true ) {
$this->send_mail_on_delete = $send_mail; $this->send_mail_on_delete = $send_mail;
//don't send email notification to not approved user // Don't send email notification to not approved user
if ( 'approved' != um_user( 'account_status' ) ) { if ( 'approved' !== UM()->common()->users()->get_status( $this->id ) ) {
$this->send_mail_on_delete = false; $this->send_mail_on_delete = false;
} }
// remove user // remove user
if ( is_multisite() ) { if ( is_multisite() ) {
if ( ! function_exists( 'wpmu_delete_user' ) ) { if ( ! function_exists( 'wpmu_delete_user' ) ) {
require_once ABSPATH . 'wp-admin/includes/ms.php'; require_once ABSPATH . 'wp-admin/includes/ms.php';
} }
wpmu_delete_user( $this->id ); wpmu_delete_user( $this->id );
} else { } else {
if ( ! function_exists( 'wp_delete_user' ) ) { if ( ! function_exists( 'wp_delete_user' ) ) {
require_once ABSPATH . 'wp-admin/includes/user.php'; require_once ABSPATH . 'wp-admin/includes/user.php';
} }
wp_delete_user( $this->id ); wp_delete_user( $this->id );
} }
} }
/** /**
* This method gets a user role in slug format. e.g. member * This method gets a user role in slug format. e.g. member
* *
+4 -3
View File
@@ -174,7 +174,7 @@ if ( ! class_exists( 'um\core\rest\API_v1' ) ) {
$val->roles = $user->roles; $val->roles = $user->roles;
$val->first_name = um_user( 'first_name' ); $val->first_name = um_user( 'first_name' );
$val->last_name = um_user( 'last_name' ); $val->last_name = um_user( 'last_name' );
$val->account_status = um_user( 'account_status' ); $val->account_status = UM()->common()->users()->get_status( $user->ID );
$val->profile_pic_original = um_get_user_avatar_url( '', 'original' ); $val->profile_pic_original = um_get_user_avatar_url( '', 'original' );
$val->profile_pic_normal = um_get_user_avatar_url( '', 200 ); $val->profile_pic_normal = um_get_user_avatar_url( '', 200 );
$val->profile_pic_small = um_get_user_avatar_url( '', 40 ); $val->profile_pic_small = um_get_user_avatar_url( '', 40 );
@@ -239,6 +239,7 @@ if ( ! class_exists( 'um\core\rest\API_v1' ) ) {
switch ( $data ) { switch ( $data ) {
case 'status': case 'status':
// Force update of the user status without email notifications.
UM()->common()->users()->set_status( $id, $value ); UM()->common()->users()->set_status( $id, $value );
$response['success'] = __( 'User status has been changed.', 'ultimate-member' ); $response['success'] = __( 'User status has been changed.', 'ultimate-member' );
break; break;
@@ -361,7 +362,7 @@ if ( ! class_exists( 'um\core\rest\API_v1' ) ) {
$response['profile_pic_small'] = um_get_user_avatar_url( '', 40 ); $response['profile_pic_small'] = um_get_user_avatar_url( '', 40 );
break; break;
case 'status': case 'status':
$response['status'] = um_user( 'account_status' ); $response['status'] = UM()->common()->users()->get_status( $user->ID );
break; break;
case 'role': case 'role':
//get priority role here //get priority role here
@@ -382,7 +383,7 @@ if ( ! class_exists( 'um\core\rest\API_v1' ) ) {
$val->roles = $user->roles; $val->roles = $user->roles;
$val->first_name = um_user( 'first_name' ); $val->first_name = um_user( 'first_name' );
$val->last_name = um_user( 'last_name' ); $val->last_name = um_user( 'last_name' );
$val->account_status = um_user( 'account_status' ); $val->account_status = UM()->common()->users()->get_status( $user->ID );
$val->profile_pic_original = um_get_user_avatar_url( '', 'original' ); $val->profile_pic_original = um_get_user_avatar_url( '', 'original' );
$val->profile_pic_normal = um_get_user_avatar_url( '', 200 ); $val->profile_pic_normal = um_get_user_avatar_url( '', 200 );
$val->profile_pic_small = um_get_user_avatar_url( '', 40 ); $val->profile_pic_small = um_get_user_avatar_url( '', 40 );
+4 -3
View File
@@ -173,7 +173,7 @@ if ( ! class_exists( 'um\core\rest\API_v2' ) ) {
$val->roles = $user->roles; $val->roles = $user->roles;
$val->first_name = um_user( 'first_name' ); $val->first_name = um_user( 'first_name' );
$val->last_name = um_user( 'last_name' ); $val->last_name = um_user( 'last_name' );
$val->account_status = um_user( 'account_status' ); $val->account_status = UM()->common()->users()->get_status( $user->ID );
$val->profile_pic_original = um_get_user_avatar_url( '', 'original' ); $val->profile_pic_original = um_get_user_avatar_url( '', 'original' );
$val->profile_pic_normal = um_get_user_avatar_url( '', 200 ); $val->profile_pic_normal = um_get_user_avatar_url( '', 200 );
$val->profile_pic_small = um_get_user_avatar_url( '', 40 ); $val->profile_pic_small = um_get_user_avatar_url( '', 40 );
@@ -221,6 +221,7 @@ if ( ! class_exists( 'um\core\rest\API_v2' ) ) {
switch ( $data ) { switch ( $data ) {
case 'status': case 'status':
// Force update of the user status without email notifications.
UM()->common()->users()->set_status( $id, $value ); UM()->common()->users()->set_status( $id, $value );
$response['success'] = __( 'User status has been changed.', 'ultimate-member' ); $response['success'] = __( 'User status has been changed.', 'ultimate-member' );
break; break;
@@ -325,7 +326,7 @@ if ( ! class_exists( 'um\core\rest\API_v2' ) ) {
$response['profile_pic_small'] = um_get_user_avatar_url( '', 40 ); $response['profile_pic_small'] = um_get_user_avatar_url( '', 40 );
break; break;
case 'status': case 'status':
$response['status'] = um_user( 'account_status' ); $response['status'] = UM()->common()->users()->get_status( $user->ID );
break; break;
case 'role': case 'role':
//get priority role here //get priority role here
@@ -346,7 +347,7 @@ if ( ! class_exists( 'um\core\rest\API_v2' ) ) {
$val->roles = $user->roles; $val->roles = $user->roles;
$val->first_name = um_user( 'first_name' ); $val->first_name = um_user( 'first_name' );
$val->last_name = um_user( 'last_name' ); $val->last_name = um_user( 'last_name' );
$val->account_status = um_user( 'account_status' ); $val->account_status = UM()->common()->users()->get_status( $user->ID );
$val->profile_pic_original = um_get_user_avatar_url( '', 'original' ); $val->profile_pic_original = um_get_user_avatar_url( '', 'original' );
$val->profile_pic_normal = um_get_user_avatar_url( '', 200 ); $val->profile_pic_normal = um_get_user_avatar_url( '', 200 );
$val->profile_pic_small = um_get_user_avatar_url( '', 40 ); $val->profile_pic_small = um_get_user_avatar_url( '', 40 );
+6 -11
View File
@@ -1,5 +1,7 @@
<?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly <?php
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/** /**
* Profile Access * Profile Access
@@ -7,18 +9,11 @@
* @param int $user_id * @param int $user_id
*/ */
function um_access_profile( $user_id ) { function um_access_profile( $user_id ) {
if ( ! um_is_myprofile() && um_is_core_page( 'user' ) && ! current_user_can( 'edit_users' ) ) { if ( ! um_is_myprofile() && um_is_core_page( 'user' ) && ! current_user_can( 'edit_users' ) ) {
$account_status = UM()->common()->users()->get_status( $user_id );
um_fetch_user( $user_id ); if ( 'approved' !== $account_status ) {
$account_status = um_user( 'account_status' );
if ( ! in_array( $account_status, array( 'approved' ) ) ) {
um_redirect_home(); um_redirect_home();
} }
um_reset_user();
} }
} }
add_action( 'um_access_profile', 'um_access_profile' ); add_action( 'um_access_profile', 'um_access_profile' );
+1 -3
View File
@@ -130,16 +130,14 @@ function um_submit_form_errors_hook_logincheck( $submitted_data, $form_data ) {
} }
$user_id = ( isset( UM()->login()->auth_id ) ) ? UM()->login()->auth_id : ''; $user_id = ( isset( UM()->login()->auth_id ) ) ? UM()->login()->auth_id : '';
um_fetch_user( $user_id );
$status = um_user( 'account_status' ); // account status $status = UM()->common()->users()->get_status( $user_id ); // account status
switch ( $status ) { switch ( $status ) {
// If user can't log in to site... // If user can't log in to site...
case 'inactive': case 'inactive':
case 'awaiting_admin_review': case 'awaiting_admin_review':
case 'awaiting_email_confirmation': case 'awaiting_email_confirmation':
case 'rejected': case 'rejected':
um_reset_user();
// Not `um_safe_redirect()` because UM()->permalinks()->get_current_url() is situated on the same host. // Not `um_safe_redirect()` because UM()->permalinks()->get_current_url() is situated on the same host.
wp_safe_redirect( add_query_arg( 'err', esc_attr( $status ), UM()->permalinks()->get_current_url() ) ); wp_safe_redirect( add_query_arg( 'err', esc_attr( $status ), UM()->permalinks()->get_current_url() ) );
exit; exit;
+2 -2
View File
@@ -1318,11 +1318,11 @@ function um_profile_header( $args ) {
} }
?> ?>
<div class="um-profile-status <?php echo esc_attr( um_user( 'account_status' ) ); ?>"> <div class="um-profile-status <?php echo esc_attr( UM()->common()->users()->get_status( um_user( 'ID' ) ) ); ?>">
<span> <span>
<?php <?php
// translators: %s: profile status. // translators: %s: profile status.
echo esc_html( sprintf( __( 'This user account status is %s', 'ultimate-member' ), um_user( 'account_status_name' ) ) ); echo esc_html( sprintf( __( 'This user account status is %s', 'ultimate-member' ), UM()->common()->users()->get_status( um_user( 'ID' ), 'formatted' ) ) );
?> ?>
</span> </span>
</div> </div>
+11 -19
View File
@@ -58,15 +58,6 @@ function um_after_insert_user( $user_id, $args, $form_data = null ) {
UM()->user()->set_registration_details( $args['submitted'], $args, $form_data ); UM()->user()->set_registration_details( $args['submitted'], $args, $form_data );
} }
// Set user status.
$status = um_user( 'status' );
if ( empty( $status ) ) {
um_fetch_user( $user_id );
$status = um_user( 'status' );
}
UM()->common()->users()->set_status( $user_id, $status );
// Create user uploads directory. // Create user uploads directory.
UM()->uploader()->get_upload_user_base_dir( $user_id, true ); UM()->uploader()->get_upload_user_base_dir( $user_id, true );
@@ -123,11 +114,12 @@ add_action( 'um_user_register', 'um_after_insert_user', 1, 3 );
*/ */
function um_send_registration_notification( $user_id ) { function um_send_registration_notification( $user_id ) {
um_fetch_user( $user_id ); um_fetch_user( $user_id );
$registration_status = um_user( 'status' );
$emails = um_multi_admin_email(); $emails = um_multi_admin_email();
if ( ! empty( $emails ) ) { if ( ! empty( $emails ) ) {
foreach ( $emails as $email ) { foreach ( $emails as $email ) {
if ( 'pending' !== um_user( 'account_status' ) ) { if ( 'pending' !== $registration_status ) {
UM()->mail()->send( $email, 'notification_new_user', array( 'admin' => true ) ); UM()->mail()->send( $email, 'notification_new_user', array( 'admin' => true ) );
} else { } else {
UM()->mail()->send( $email, 'notification_review', array( 'admin' => true ) ); UM()->mail()->send( $email, 'notification_review', array( 'admin' => true ) );
@@ -145,7 +137,7 @@ add_action( 'um_registration_complete', 'um_send_registration_notification' );
* @param null|array $form_data * @param null|array $form_data
*/ */
function um_check_user_status( $user_id, $args, $form_data = null ) { function um_check_user_status( $user_id, $args, $form_data = null ) {
$status = um_user( 'account_status' ); $registration_status = um_user( 'status' );
/** /**
* Fires after complete UM user registration. * Fires after complete UM user registration.
* Where $status can be equal to 'approved', 'checkmail' or 'pending'. * Where $status can be equal to 'approved', 'checkmail' or 'pending'.
@@ -175,7 +167,7 @@ function um_check_user_status( $user_id, $args, $form_data = null ) {
* } * }
* add_action( 'um_post_registration_pending_hook', 'my_um_post_registration', 10, 3 ); * add_action( 'um_post_registration_pending_hook', 'my_um_post_registration', 10, 3 );
*/ */
do_action( "um_post_registration_{$status}_hook", $user_id, $args, $form_data ); do_action( "um_post_registration_{$registration_status}_hook", $user_id, $args, $form_data );
if ( is_null( $form_data ) || is_admin() ) { if ( is_null( $form_data ) || is_admin() ) {
return; return;
@@ -210,9 +202,9 @@ function um_check_user_status( $user_id, $args, $form_data = null ) {
* } * }
* add_action( 'track_pending_user_registration', 'my_um_post_registration', 10, 3 ); * add_action( 'track_pending_user_registration', 'my_um_post_registration', 10, 3 );
*/ */
do_action( "track_{$status}_user_registration", $user_id, $args, $form_data ); do_action( "track_{$registration_status}_user_registration", $user_id, $args, $form_data );
if ( 'approved' === $status ) { if ( 'approved' === $registration_status ) {
// Check if user is logged in because there can be the customized way when through 'um_registration_for_loggedin_users' hook the registration is enabled for the logged-in users (e.g. Administrator). // Check if user is logged in because there can be the customized way when through 'um_registration_for_loggedin_users' hook the registration is enabled for the logged-in users (e.g. Administrator).
if ( ! is_user_logged_in() ) { if ( ! is_user_logged_in() ) {
// Custom way if 'um_registration_for_loggedin_users' hook after custom callbacks returns true. Then don't make auto-login because user is already logged-in. // Custom way if 'um_registration_for_loggedin_users' hook after custom callbacks returns true. Then don't make auto-login because user is already logged-in.
@@ -255,7 +247,7 @@ function um_check_user_status( $user_id, $args, $form_data = null ) {
} else { } else {
um_fetch_user( $user_id ); // required because there can be empty um_user. um_fetch_user( $user_id ); // required because there can be empty um_user.
if ( 'redirect_url' === um_user( $status . '_action' ) && '' !== um_user( $status . '_url' ) ) { if ( 'redirect_url' === um_user( $registration_status . '_action' ) && '' !== um_user( $registration_status . '_url' ) ) {
/** /**
* Filters the redirect URL for pending user after registration. * Filters the redirect URL for pending user after registration.
* *
@@ -275,13 +267,13 @@ function um_check_user_status( $user_id, $args, $form_data = null ) {
* } * }
* add_filter( 'um_registration_pending_user_redirect', 'my_registration_pending_user_redirect', 10, 3 ); * add_filter( 'um_registration_pending_user_redirect', 'my_registration_pending_user_redirect', 10, 3 );
*/ */
$redirect_url = apply_filters( 'um_registration_pending_user_redirect', um_user( $status . '_url' ), $status, um_user( 'ID' ) ); $redirect_url = apply_filters( 'um_registration_pending_user_redirect', um_user( $registration_status . '_url' ), $registration_status, $user_id );
um_safe_redirect( $redirect_url ); um_safe_redirect( $redirect_url );
} }
if ( 'show_message' === um_user( $status . '_action' ) && '' !== um_user( $status . '_message' ) ) { if ( 'show_message' === um_user( $registration_status . '_action' ) && '' !== um_user( $registration_status . '_message' ) ) {
$url = UM()->permalinks()->get_current_url(); $url = UM()->permalinks()->get_current_url();
$url = add_query_arg( 'message', esc_attr( $status ), $url ); $url = add_query_arg( 'message', esc_attr( $registration_status ), $url );
// Add only priority role to URL. // Add only priority role to URL.
$url = add_query_arg( 'um_role', esc_attr( um_user( 'role' ) ), $url ); $url = add_query_arg( 'um_role', esc_attr( um_user( 'role' ) ), $url );
$url = add_query_arg( 'um_form_id', esc_attr( $form_data['form_id'] ), $url ); $url = add_query_arg( 'um_form_id', esc_attr( $form_data['form_id'] ), $url );
@@ -305,7 +297,7 @@ function um_check_user_status( $user_id, $args, $form_data = null ) {
* } * }
* add_filter( 'um_registration_show_message_redirect_url', 'my_um_registration_show_message_redirect_url', 10, 4 ); * add_filter( 'um_registration_show_message_redirect_url', 'my_um_registration_show_message_redirect_url', 10, 4 );
*/ */
$url = apply_filters( 'um_registration_show_message_redirect_url', $url, $status, um_user( 'ID' ), $form_data ); $url = apply_filters( 'um_registration_show_message_redirect_url', $url, $registration_status, $user_id, $form_data );
// Not `um_safe_redirect()` because UM()->permalinks()->get_current_url() is situated on the same host. // Not `um_safe_redirect()` because UM()->permalinks()->get_current_url() is situated on the same host.
wp_safe_redirect( $url ); wp_safe_redirect( $url );
exit; exit;
+1 -2
View File
@@ -66,8 +66,7 @@ function um_wp_form_errors_hook_logincheck( $user ) {
} }
if ( isset( $user->ID ) ) { if ( isset( $user->ID ) ) {
um_fetch_user( $user->ID ); $status = UM()->common()->users()->get_status( $user->ID );
$status = um_user( 'account_status' );
$error = null; $error = null;
switch ( $status ) { switch ( $status ) {