【发布时间】:2020-11-26 00:28:57
【问题描述】:
我为 WooCommerce 创建了一个自定义产品类型。使用此产品类型,可以连接按 ID 存在的其他产品。
如果下单且付款成功,WooCommerce 会自动减少库存数量。 例如,我将 ID 为 4082 的产品添加到购物车,数量为 3。 下订单后,WooCommerce 将产品 4082 的库存更新为 -3。
好的,回到我的自定义产品类型。正如我所说,可以通过 ID 连接另一个产品。 例如,我将产品 4082 与产品 ID 10988 连接。
如果客户将产品 4082 添加到购物车并下订单,我想从产品 ID 10988 而不是从 4082 减少库存数量。
<?php
add_action('woocommerce_checkout_order_processed', 'stocktest');
function stocktest($order_id){
$order = wc_get_order( $order_id );
$order_item = $order->get_items();
foreach( $order_item as $product ) {
//for the topic I programmed the IDs hardcoded
if($product->ID == '4082'){
wc_update_product_stock( 10998, $product['qty'], 'decrease', '' );
}
}
}
?>
我尝试了上面的代码,ID 10998 的库存正确减少了,但 ID 4082 的库存也减少了。
我是否使用了错误的钩子?以及如何才能正确地实现功能?
希望有人可以帮助我。
非常感谢
【问题讨论】:
标签: php wordpress woocommerce