【问题标题】:How to make arguments compulsory in WP CLI command如何在 WP CLI 命令中强制参数
【发布时间】:2023-03-20 08:55:01
【问题描述】:

我想使用 WP CLI 删除 WooCommerce 订单。

我有 3 个参数( product_id,start_date,end_date )。如何检查所有 3 个参数是否在命令中传递?

我该如何做这样的事情?

if ( ! empty( ALL THE ARGS ) ) {
      WP_CLI::success( "Success" );
} else {
      WP_CLI::error( "args missing" );
}

下面是我的代码。

$delete_woo_orders = function( $args,$assoc_args ) {

      WP_CLI::line( $assoc_args['product_id'] );
      WP_CLI::line( $assoc_args['start_date'] );
      WP_CLI::line( $assoc_args['end_date'] );

};
WP_CLI::add_command( 'delete_woo_orders', $delete_woo_orders );

这是我的命令:wp delete_woo_orders --product_id=1 --start_date="some_date" end_date="some_date"

【问题讨论】:

    标签: php wordpress command-line wp-cli


    【解决方案1】:

    你可以试试下面的代码:-

    if( defined( 'WP_CLI' ) && WP_CLI ) {
      function delete_order ( $args, $assoc_args ) {
         global $wpdb; 
         if( $assoc_args['product_id'] && $assoc_args['start_date'] && 
           $assoc_args['end_date'] ){ 
            WP_CLI::success( "all args passed" ); // Success Message
         }else{
            WP_CLI::error( "args missing" );  // Failed Message
         }
      }
      WP_CLI::add_command( 'delete_woo_orders', 'delete_order' );
    }
    

    我稍微修改了您的代码并检查了 $assoc_args 是否有价值并显示成功和错误消息。

    【讨论】: