From 42e6e71e65dcef22a8aed7c1c631369db9d4c6f2 Mon Sep 17 00:00:00 2001 From: ashubawork Date: Thu, 10 Apr 2025 11:07:13 +0300 Subject: [PATCH 1/3] - add auto approval after the wp-admin registration --- includes/admin/core/class-admin-settings.php | 10 ++++++++++ includes/class-config.php | 1 + includes/core/um-actions-register.php | 10 ++++++++++ 3 files changed, 21 insertions(+) diff --git a/includes/admin/core/class-admin-settings.php b/includes/admin/core/class-admin-settings.php index 7c51275d..a0969df6 100644 --- a/includes/admin/core/class-admin-settings.php +++ b/includes/admin/core/class-admin-settings.php @@ -753,6 +753,9 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) { 'use_um_gravatar_default_image' => array( 'sanitize' => 'bool', ), + 'auto_user_approve' => array( + 'sanitize' => 'bool', + ), 'delete_comments' => array( 'sanitize' => 'bool', ), @@ -1182,6 +1185,13 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) { 'description' => __( 'Do you want to use the plugin default avatar instead of the gravatar default photo (If the user did not upload a custom profile photo/avatar).', 'ultimate-member' ), 'conditional' => array( 'use_um_gravatar_default_builtin_image', '=', 'default' ), ), + array( + 'id' => 'auto_user_approve', + 'type' => 'checkbox', + 'label' => __( 'Ignore the "User Role > Registration Options"', 'ultimate-member' ), + 'checkbox_label' => __( 'Automatically approve users from the wp-admin dashboard', 'ultimate-member' ), + 'description' => __( 'Ignore registration settings and automatically approve the user if this user is added from the wp-admin dashboard.', 'ultimate-member' ), + ), array( 'id' => 'delete_comments', 'type' => 'checkbox', diff --git a/includes/class-config.php b/includes/class-config.php index d7fa2aea..97c6aec1 100644 --- a/includes/class-config.php +++ b/includes/class-config.php @@ -658,6 +658,7 @@ if ( ! class_exists( 'um\Config' ) ) { 'use_gravatars' => false, 'use_um_gravatar_default_builtin_image' => 'default', 'use_um_gravatar_default_image' => false, + 'auto_user_approve' => false, 'toggle_password' => false, 'require_strongpass' => false, 'password_min_chars' => 8, diff --git a/includes/core/um-actions-register.php b/includes/core/um-actions-register.php index 0516d902..bea94795 100644 --- a/includes/core/um-actions-register.php +++ b/includes/core/um-actions-register.php @@ -113,6 +113,10 @@ add_action( 'um_user_register', 'um_after_insert_user', 1, 3 ); * @param $user_id */ function um_send_registration_notification( $user_id ) { + if ( is_admin() && UM()->options()->get( 'auto_user_approve' ) ) { + return; + } + um_fetch_user( $user_id ); $registration_status = um_user( 'status' ); @@ -138,6 +142,12 @@ add_action( 'um_registration_complete', 'um_send_registration_notification' ); */ function um_check_user_status( $user_id, $args, $form_data = null ) { $registration_status = um_user( 'status' ); + + if ( ( is_null( $form_data ) || is_admin() ) && UM()->options()->get( 'auto_user_approve' ) ) { + UM()->common()->users()->set_status( $user_id, 'approved' ); + return; + } + /** * Fires after complete UM user registration. * Where $status can be equal to 'approved', 'checkmail' or 'pending'. From f6005f2e9d31a1846ab59103cd5385a3a74ea08e Mon Sep 17 00:00:00 2001 From: Mykyta Synelnikov Date: Mon, 14 Apr 2025 15:45:07 +0300 Subject: [PATCH 2/3] Prevent admin notifications and refine user registration logic Updated the registration process to avoid sending notifications for admin-created users. Simplified and clarified user status handling, ensuring consistent behavior across frontend and admin actions. --- includes/core/um-actions-register.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/includes/core/um-actions-register.php b/includes/core/um-actions-register.php index bea94795..0dd11a1b 100644 --- a/includes/core/um-actions-register.php +++ b/includes/core/um-actions-register.php @@ -113,7 +113,8 @@ add_action( 'um_user_register', 'um_after_insert_user', 1, 3 ); * @param $user_id */ function um_send_registration_notification( $user_id ) { - if ( is_admin() && UM()->options()->get( 'auto_user_approve' ) ) { + if ( is_admin() ) { + // Don't send email notifications to administrators about new user registration, because the user was created from wp-admin. return; } @@ -141,11 +142,10 @@ add_action( 'um_registration_complete', 'um_send_registration_notification' ); * @param null|array $form_data */ function um_check_user_status( $user_id, $args, $form_data = null ) { - $registration_status = um_user( 'status' ); - if ( ( is_null( $form_data ) || is_admin() ) && UM()->options()->get( 'auto_user_approve' ) ) { - UM()->common()->users()->set_status( $user_id, 'approved' ); - return; + $registration_status = 'approved'; + } else { + $registration_status = um_user( 'status' ); } /** @@ -182,6 +182,7 @@ function um_check_user_status( $user_id, $args, $form_data = null ) { if ( is_null( $form_data ) || is_admin() ) { return; } + // Code below is running only for registration from the frontend forms. /** * Fires after complete UM user registration. Only for the frontend action which is run before autologin and redirects. From 695d522cb7220df9d80ae034fe7dbc6c916f9ff6 Mon Sep 17 00:00:00 2001 From: Mykyta Synelnikov Date: Mon, 14 Apr 2025 16:04:29 +0300 Subject: [PATCH 3/3] Rename 'auto_user_approve' to 'admin_ignore_user_status'. Updated the setting name across relevant files to improve clarity and better reflect its functionality. Adjusted related logic to ensure consistent behavior with the new naming. --- includes/admin/core/class-admin-settings.php | 4 ++-- includes/class-config.php | 2 +- includes/core/um-actions-register.php | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/includes/admin/core/class-admin-settings.php b/includes/admin/core/class-admin-settings.php index a0969df6..bdef709a 100644 --- a/includes/admin/core/class-admin-settings.php +++ b/includes/admin/core/class-admin-settings.php @@ -753,7 +753,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) { 'use_um_gravatar_default_image' => array( 'sanitize' => 'bool', ), - 'auto_user_approve' => array( + 'admin_ignore_user_status' => array( 'sanitize' => 'bool', ), 'delete_comments' => array( @@ -1186,7 +1186,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) { 'conditional' => array( 'use_um_gravatar_default_builtin_image', '=', 'default' ), ), array( - 'id' => 'auto_user_approve', + 'id' => 'admin_ignore_user_status', 'type' => 'checkbox', 'label' => __( 'Ignore the "User Role > Registration Options"', 'ultimate-member' ), 'checkbox_label' => __( 'Automatically approve users from the wp-admin dashboard', 'ultimate-member' ), diff --git a/includes/class-config.php b/includes/class-config.php index 97c6aec1..f77a229f 100644 --- a/includes/class-config.php +++ b/includes/class-config.php @@ -658,7 +658,7 @@ if ( ! class_exists( 'um\Config' ) ) { 'use_gravatars' => false, 'use_um_gravatar_default_builtin_image' => 'default', 'use_um_gravatar_default_image' => false, - 'auto_user_approve' => false, + 'admin_ignore_user_status' => false, 'toggle_password' => false, 'require_strongpass' => false, 'password_min_chars' => 8, diff --git a/includes/core/um-actions-register.php b/includes/core/um-actions-register.php index 0dd11a1b..29a73e1a 100644 --- a/includes/core/um-actions-register.php +++ b/includes/core/um-actions-register.php @@ -142,7 +142,7 @@ add_action( 'um_registration_complete', 'um_send_registration_notification' ); * @param null|array $form_data */ function um_check_user_status( $user_id, $args, $form_data = null ) { - if ( ( is_null( $form_data ) || is_admin() ) && UM()->options()->get( 'auto_user_approve' ) ) { + if ( ( is_null( $form_data ) || is_admin() ) && UM()->options()->get( 'admin_ignore_user_status' ) ) { $registration_status = 'approved'; } else { $registration_status = um_user( 'status' );