diff --git a/php/class-wp-cli.php b/php/class-wp-cli.php index b5123c15..f1610a7c 100644 --- a/php/class-wp-cli.php +++ b/php/class-wp-cli.php @@ -210,22 +210,30 @@ 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 = intval($assoc_args['user_id']); + if ( $assoc_args['user_login'] ) { + $user = get_user_by( 'login', $assoc_args['user_login'] ); + if ($user) { + $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 +241,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 );