gpt4 book ai didi

php - 根据批准状态和特定订单项目更改 WooCommerce 订单状态

转载 作者:行者123 更新时间:2023-12-05 03:52:47 24 4
gpt4 key购买 nike

当当前状态为“已批准”且订单包含特定产品(id = 10)时,我尝试将 WooCommerce 订单状态更改为“处理中”。

我尝试了下面的代码,但它不起作用。我是 php 的新手,非常感谢任何指导!

add_action('woocommerce_order_status_changed', 'ts_auto_complete_business_cards');

function ts_auto_complete_business_cards($order_id)
{

if ( ! $order_id ) {
return;
}

global $product;
$order = wc_get_order( $order_id );

if ($order->data['status'] == 'approved') {
$items=$order->get_items();
foreach ( $items as $item ) {
$product_id = $item->get_product_id();
if ($product_id!="10")
{
$order->update_status( 'completed' );
}

}

}
}

最佳答案

  • woocommerce_order_status_changed 有 4 个参数
  • 这一行 -> if ($product_id!="10") 表示不等于,你也比较一个字符串而不是一个数值

这样试试

function action_woocommerce_order_status_changed( $order_id, $old_status, $new_status, $order ) {

// Compare
if( $old_status === 'approved' ) {
// Get items
$items = $order->get_items();

foreach ( $items as $item ) {
// Get product id
$product_id = $item->get_product_id();

if ($product_id == 10 ) {
$order->update_status( 'processing' );
break;
}
}
}
}
add_action( 'woocommerce_order_status_changed', 'action_woocommerce_order_status_changed', 10, 4 );

关于php - 根据批准状态和特定订单项目更改 WooCommerce 订单状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62049612/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com