Skip to content

Commit 5f92520

Browse files
Merge pull request #21 from soulseekah/fix-user-get-email-login
Support emails in user_login field
2 parents 1e7f946 + 5e25b05 commit 5f92520

File tree

2 files changed

+24
-3
lines changed

2 files changed

+24
-3
lines changed

features/user.feature

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,3 +306,19 @@ Feature: Manage WordPress users
306306
http://example.com/?author=1
307307
http://example.com/?author=2
308308
"""
309+
310+
Scenario: Get user with email as login
311+
Given a WP install
312+
And I run `wp user create testuser4@example.com testemail4@example.com`
313+
314+
When I run `wp user get testemail4@example.com --field=user_login`
315+
Then STDOUT should be:
316+
"""
317+
318+
"""
319+
320+
When I run `wp user get testuser4@example.com --field=user_login`
321+
Then STDOUT should be:
322+
"""
323+
324+
"""

src/WP_CLI/Fetchers/User.php

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,17 @@ class User extends Base {
2020
*/
2121
public function get( $id_email_or_login ) {
2222

23-
if ( is_numeric( $id_email_or_login ) )
23+
if ( is_numeric( $id_email_or_login ) ) {
2424
$user = get_user_by( 'id', $id_email_or_login );
25-
else if ( is_email( $id_email_or_login ) )
25+
} elseif ( is_email( $id_email_or_login ) ) {
2626
$user = get_user_by( 'email', $id_email_or_login );
27-
else
27+
// Logins can be emails
28+
if ( ! $user ) {
29+
$user = get_user_by( 'login', $id_email_or_login );
30+
}
31+
} else {
2832
$user = get_user_by( 'login', $id_email_or_login );
33+
}
2934

3035
return $user;
3136
}

0 commit comments

Comments
 (0)