diff --git a/includes/common/class-users.php b/includes/common/class-users.php index 6505ec0e..d83d545e 100644 --- a/includes/common/class-users.php +++ b/includes/common/class-users.php @@ -979,14 +979,34 @@ class Users { public static function get_empty_status_users() { global $wpdb; - $total_users = $wpdb->get_var( - "SELECT COUNT(DISTINCT u.ID) - FROM {$wpdb->users} u - LEFT JOIN {$wpdb->usermeta} um ON u.ID = um.user_id AND um.meta_key = 'account_status' - LEFT JOIN {$wpdb->usermeta} um2 ON u.ID = um2.user_id AND um2.meta_key = '_um_registration_in_progress' - WHERE ( um.meta_value IS NULL OR um.meta_value = '' ) AND - ( um2.meta_value IS NULL OR um2.meta_value != '1' )" - ); + /** + * Filters whitelisted usermeta keys that can be stored inside DB after UM Form submission. + * + * @param {int} $total_users Count of the users with empty status. Query result, by default is null. + * + * @return {int} Count of the users with empty status. Or null. + * + * @since 2.10.6 + * @hook um_get_empty_status_users_query_result + * + * @example Customize the empty status users query. + * function my_get_empty_status_users_query( $total_users ) { + * $total_users = $wpdb->get_var( "your custom DB query here" ); + * return $total_users; + * } + * add_filter( 'um_get_empty_status_users_query_result', 'my_get_empty_status_users_query' ); + */ + $total_users = apply_filters( 'um_get_empty_status_users_query_result', null ); + if ( is_null( $total_users ) ) { + $total_users = $wpdb->get_var( + "SELECT COUNT(DISTINCT u.ID) + FROM {$wpdb->users} u + LEFT JOIN {$wpdb->usermeta} um ON u.ID = um.user_id AND um.meta_key = 'account_status' + LEFT JOIN {$wpdb->usermeta} um2 ON u.ID = um2.user_id AND um2.meta_key = '_um_registration_in_progress' + WHERE ( um.meta_value IS NULL OR um.meta_value = '' ) AND + ( um2.meta_value IS NULL OR um2.meta_value != '1' )" + ); + } $total_users = absint( $total_users ); if ( $total_users > 0 ) { diff --git a/readme.txt b/readme.txt index 002955c8..42f7ba9d 100644 --- a/readme.txt +++ b/readme.txt @@ -172,6 +172,7 @@ IMPORTANT: PLEASE UPDATE THE PLUGIN TO AT LEAST VERSION 2.6.7 IMMEDIATELY. VERSI **Enhancements** * Added: Avoid caching of the UM Forms on the mobile devices via adding the nocache headers to the screens with UM Forms. +* Added: Filter hook `um_get_empty_status_users_query_result` for changing default query on the different websites to optimize it. **Bugfixes**