diff --git a/README.md b/README.md index 86c38910..918c3bce 100644 --- a/README.md +++ b/README.md @@ -6426,7 +6426,7 @@ wp user signup get [--field=] [--fields=] [--format==] [--field=] [--fields=] [--format=] +wp user signup list [--=] [--field=] [--fields=] [--format=] [--per_page=] ~~~ [--=] @@ -6451,6 +6451,9 @@ wp user signup list [--=] [--field=] [--fields=] [- - yaml --- + [--per_page=] + Limits the signups to the given number. Defaults to none. + **AVAILABLE FIELDS** These fields will be displayed by default for each signup: diff --git a/features/signup.feature b/features/signup.feature index ad290f2a..d7c72976 100644 --- a/features/signup.feature +++ b/features/signup.feature @@ -41,6 +41,13 @@ Feature: Manage signups in a multisite installation 1,bobuser,bobuser@example.com,1 """ + When I run `wp user signup list --fields=signup_id,user_login,user_email,active --format=csv --per_page=1` + Then STDOUT should be: + """ + signup_id,user_login,user_email,active + 1,bobuser,bobuser@example.com,1 + """ + Scenario: Get signup Given a WP multisite install And I run `wp eval 'wpmu_signup_user( "bobuser", "bobuser@example.com" );'` diff --git a/src/Signup_Command.php b/src/Signup_Command.php index dcd1ec67..21a647ac 100644 --- a/src/Signup_Command.php +++ b/src/Signup_Command.php @@ -76,6 +76,9 @@ public function __construct() { * - yaml * --- * + * [--per_page=] + * : Limits the signups to the given number. Defaults to none. + * * ## AVAILABLE FIELDS * * These fields will be displayed by default for each signup: @@ -125,7 +128,14 @@ public function list_( $args, $assoc_args ) { $signups = array(); - $results = $wpdb->get_results( "SELECT * FROM $wpdb->signups", ARRAY_A ); + $per_page = (int) Utils\get_flag_value( $assoc_args, 'per_page' ); + + $limit = $per_page ? $wpdb->prepare( 'LIMIT %d', $per_page ) : ''; + + $query = "SELECT * FROM $wpdb->signups {$limit}"; + + // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared -- Prepared properly above. + $results = $wpdb->get_results( $query, ARRAY_A ); if ( $results ) { foreach ( $results as $item ) {