From 5d430900b8c0851189fe4fc029f4f79b221ae5ab Mon Sep 17 00:00:00 2001 From: Floppy Date: Mon, 5 Aug 2019 10:56:33 +0100 Subject: [PATCH 1/4] (feat) specify user by ID in assign-user-to-coauthor --- php/class-wp-cli.php | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/php/class-wp-cli.php b/php/class-wp-cli.php index b5123c15..5a5cf332 100644 --- a/php/class-wp-cli.php +++ b/php/class-wp-cli.php @@ -210,22 +210,28 @@ public function assign_coauthors( $args, $assoc_args ) { * @since 3.0 * * @subcommand assign-user-to-coauthor - * @synopsis --user_login= --coauthor= + * @synopsis --user_login= --user_id= --coauthor= */ public function assign_user_to_coauthor( $args, $assoc_args ) { global $coauthors_plus, $wpdb; $defaults = array( - 'user_login' => '', + 'user_login' => NULL, + 'user_id' => NULL, 'coauthor' => '', ); $assoc_args = wp_parse_args( $assoc_args, $defaults ); - $user = get_user_by( 'login', $assoc_args['user_login'] ); + $user_id = $assoc_args['user_login']; + if ( $assoc_args['user_login'] ) { + $user = get_user_by( 'login', $assoc_args['user_login'] ); + $user_id = $user->ID; + } + $coauthor = $coauthors_plus->get_coauthor_by( 'login', $assoc_args['coauthor'] ); - if ( ! $user ) { - WP_CLI::error( __( 'Please specify a valid user_login', 'co-authors-plus' ) ); + if ( ! $user_id ) { + WP_CLI::error( __( 'Please specify a valid user_login or user_id', 'co-authors-plus' ) ); } if ( ! $coauthor ) { @@ -233,7 +239,7 @@ public function assign_user_to_coauthor( $args, $assoc_args ) { } $post_types = implode( "','", $coauthors_plus->supported_post_types ); - $posts = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_author=%d AND post_type IN ('$post_types')", $user->ID ) ); + $posts = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_author=%d AND post_type IN ('$post_types')", $user_id ) ); $affected = 0; foreach ( $posts as $post_id ) { $coauthors = cap_get_coauthor_terms_for_post( $post_id ); From 868695e5efe5bc8190556bf9804ae508c2d2859d Mon Sep 17 00:00:00 2001 From: James Smith Date: Mon, 5 Aug 2019 11:24:30 +0100 Subject: [PATCH 2/4] (fix) typo: should be user_id instead of user_login --- php/class-wp-cli.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/php/class-wp-cli.php b/php/class-wp-cli.php index 5a5cf332..7720c765 100644 --- a/php/class-wp-cli.php +++ b/php/class-wp-cli.php @@ -222,7 +222,7 @@ public function assign_user_to_coauthor( $args, $assoc_args ) { ); $assoc_args = wp_parse_args( $assoc_args, $defaults ); - $user_id = $assoc_args['user_login']; + $user_id = $assoc_args['user_id']; if ( $assoc_args['user_login'] ) { $user = get_user_by( 'login', $assoc_args['user_login'] ); $user_id = $user->ID; From cad564bdf6da20a67b1c6b77002cbc772d05dd80 Mon Sep 17 00:00:00 2001 From: James Smith Date: Mon, 5 Aug 2019 11:51:20 +0100 Subject: [PATCH 3/4] (fix) check user exists before getting ID --- php/class-wp-cli.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/php/class-wp-cli.php b/php/class-wp-cli.php index 7720c765..c2195e2e 100644 --- a/php/class-wp-cli.php +++ b/php/class-wp-cli.php @@ -225,7 +225,9 @@ public function assign_user_to_coauthor( $args, $assoc_args ) { $user_id = $assoc_args['user_id']; if ( $assoc_args['user_login'] ) { $user = get_user_by( 'login', $assoc_args['user_login'] ); - $user_id = $user->ID; + if ($user) { + $user_id = $user->ID; + } } $coauthor = $coauthors_plus->get_coauthor_by( 'login', $assoc_args['coauthor'] ); From f6a3f44d589f6914df3c6774a30e03327802b118 Mon Sep 17 00:00:00 2001 From: James Smith Date: Mon, 5 Aug 2019 11:51:51 +0100 Subject: [PATCH 4/4] (fix) parse user_id into int properly --- php/class-wp-cli.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/php/class-wp-cli.php b/php/class-wp-cli.php index c2195e2e..f1610a7c 100644 --- a/php/class-wp-cli.php +++ b/php/class-wp-cli.php @@ -222,7 +222,7 @@ public function assign_user_to_coauthor( $args, $assoc_args ) { ); $assoc_args = wp_parse_args( $assoc_args, $defaults ); - $user_id = $assoc_args['user_id']; + $user_id = intval($assoc_args['user_id']); if ( $assoc_args['user_login'] ) { $user = get_user_by( 'login', $assoc_args['user_login'] ); if ($user) {