| 1 |
<?php |
| 2 |
/** |
| 3 |
* Handles environments where users can't register. |
| 4 |
* |
| 5 |
* @package WP Approve User |
| 6 |
*/ |
| 7 |
|
| 8 |
/** |
| 9 |
* Whitelists all users. |
| 10 |
* |
| 11 |
* @author Konstantin Obenland |
| 12 |
* @since 2.2.0 - 30.03.2013 |
| 13 |
* |
| 14 |
* @param bool $new_value New option value. |
| 15 |
* @return bool New option value. |
| 16 |
*/ |
| 17 |
function wpau_whitelist_users( $new_value ) { |
| 18 |
if ( $new_value ) { |
| 19 |
$user_ids = get_users( |
| 20 |
array( |
| 21 |
'blog_id' => '', |
| 22 |
'fields' => 'ID', |
| 23 |
) |
| 24 |
); |
| 25 |
|
| 26 |
foreach ( $user_ids as $user_id ) { |
| 27 |
update_user_meta( $user_id, 'wp-approve-user', 'approved' ); |
| 28 |
update_user_meta( $user_id, 'wp-approve-user-mail-sent', true ); |
| 29 |
} |
| 30 |
} |
| 31 |
|
| 32 |
return $new_value; |
| 33 |
} |
| 34 |
add_filter( 'pre_update_option_users_can_register', 'wpau_whitelist_users' ); |
| 35 |
|
| 36 |
/** |
| 37 |
* Register info message to turn on user registration. |
| 38 |
* |
| 39 |
* @author Konstantin Obenland |
| 40 |
* @since 4 - 27.07.2018 |
| 41 |
*/ |
| 42 |
function wpau_add_settings_error() { |
| 43 |
if ( ! current_user_can( 'manage_options' ) || 0 === stripos( get_current_screen()->id, 'options' ) ) { |
| 44 |
return; |
| 45 |
} |
| 46 |
|
| 47 |
$url = is_multisite() ? network_admin_url( 'settings.php' ) : admin_url( 'options-general.php' ); |
| 48 |
|
| 49 |
add_settings_error( |
| 50 |
'wp-approve-user', |
| 51 |
'no-users-can-register', |
| 52 |
sprintf( |
| 53 |
/* translators: Link to options page. */ |
| 54 |
wp_kses_post( __( 'Please <a href="%s">enable user registrations</a> for WP Approve User to work.', 'wp-approve-user' ) ), |
| 55 |
esc_url( $url ) |
| 56 |
), |
| 57 |
'notice-info' |
| 58 |
); |
| 59 |
} |
| 60 |
add_action( 'admin_head', 'wpau_add_settings_error' ); |
| 61 |
|
| 62 |
/** |
| 63 |
* Display all messages registered to this plugin. |
| 64 |
* |
| 65 |
* @author Konstantin Obenland |
| 66 |
* @since 4 - 27.07.2018 |
| 67 |
*/ |
| 68 |
function wpau_settings_errors() { |
| 69 |
settings_errors( 'wp-approve-user' ); |
| 70 |
} |
| 71 |
add_action( 'all_admin_notices', 'wpau_settings_errors' ); |
| 72 |
|