diff --git a/features/user.feature b/features/user.feature index cd22acdd6..76ede2740 100644 --- a/features/user.feature +++ b/features/user.feature @@ -267,6 +267,43 @@ Feature: Manage WordPress users Bob Jones """ + # The error message changed in WP 5.9. + @less-than-wp-5.9 + Scenario: Creating a user with an existing email in multisite shows a clean error message + Given a WP multisite install + + When I run `wp user create bobjones bobjones@example.com` + Then STDOUT should not be empty + + When I try `wp user create bobjones2 bobjones@example.com` + Then STDERR should contain: + """ + Sorry, that email address is already used! + """ + And STDERR should not contain: + """ + < + """ + And the return code should be 1 + + @require-wp-5.9 + Scenario: Creating a user with an existing email in multisite shows a clean error message + Given a WP multisite install + + When I run `wp user create bobjones bobjones@example.com` + Then STDOUT should not be empty + + When I try `wp user create bobjones2 bobjones@example.com` + Then STDERR should contain: + """ + This email address is already registered. + """ + And STDERR should not contain: + """ + < + """ + And the return code should be 1 + Scenario: Managing user roles Given a WP install diff --git a/src/User_Command.php b/src/User_Command.php index bc8d54eb1..461d6bd4b 100644 --- a/src/User_Command.php +++ b/src/User_Command.php @@ -460,7 +460,8 @@ public function create( $args, $assoc_args ) { if ( is_multisite() ) { $result = wpmu_validate_user_signup( $user->user_login, $user->user_email ); if ( ! empty( $result['errors']->errors ) ) { - WP_CLI::error( $result['errors'] ); + $error_message = implode( ' ', array_map( 'wp_strip_all_tags', $result['errors']->get_error_messages() ) ); + WP_CLI::error( $error_message ); } $user_id = wpmu_create_user( $user->user_login, $user->user_pass, $user->user_email ); if ( ! $user_id ) { @@ -1228,7 +1229,7 @@ public function import_csv( $args, $assoc_args ) { if ( is_multisite() ) { $result = wpmu_validate_user_signup( $new_user['user_login'], $new_user['user_email'] ); if ( ! empty( $result['errors']->errors ) ) { - WP_CLI::warning( $result['errors'] ); + WP_CLI::warning( implode( ' ', array_map( 'wp_strip_all_tags', $result['errors']->get_error_messages() ) ) ); continue; } $user_id = wpmu_create_user( $new_user['user_login'], $new_user['user_pass'], $new_user['user_email'] );