woocommerce自定义订单状态和REST API

时间:2019-07-02 12:06:30

标签: php wordpress woocommerce woocommerce-rest-api

我在function.php中使用php向woocommerce添加了自定义订单状态。

我可以在管理界面上查看/设置此状态,但是我想使用REST API(v2或v3)并更新订单以设置此新状态。

API返回此错误: 错误:处于:状态[rest_invalid_param]

我可以为订单设置预设状态,但不能为新订单设置。我该怎么办?

Wordpress 5.2.2,WooCommerce 3.6.4

function wpblog_wc_register_post_statuses() {
register_post_status( 'wc-invoicing', array(
    'label'                     => 'XXXX',
    'public'                    => true,
    'exclude_from_search'       => false,
    'show_in_admin_all_list'    => true,
    'show_in_admin_status_list' => true,
    'label_count'               => _n_noop( 'XXXX <span class="count"> 
    (%s)</span>', 'XXXX alatt <span class="count">(%s)</span>' )
));
}
add_filter( 'init', 'wpblog_wc_register_post_statuses' );

function wpblog_wc_add_order_statuses( $order_statuses ) {
   $order_statuses['wc-invoicing'] = 
   _x( 'XXXX alatt', 'Order Status', '' );
    return $order_statuses;
}
add_filter( 'wc_order_statuses', 'wpblog_wc_add_order_statuses', 10, 1 );

1 个答案:

答案 0 :(得分:0)

不要在自定义订单状态前使用“wc-”。

即在 WooCommerce 中,我创建了一个名为“wc-new-quote”的订单状态。 现在,当我尝试发布时 REST API 给了我一个错误:

$data['status'] = 'wc-new-quote';

正确的做法是:

$data['status'] = 'new-quote';