感谢您阅读我的问题。我相信我的功能可能对社区有用。
我正在尝试销售我有库存的产品,但也允许我的供应商有库存的相同产品和其他产品延期交货。我使用 Advanced Custom Fields 和 WP All Import Plugins 将 2x 供应商位置的库存数量值导入到每个产品的自定义字段中。
然后,我使用最大数量插件将可以添加到购物车的商品数量限制为所有 3 个库存字段的组合值。目标是不允许添加到购物车中的数量超过总可用数量。
function backorder_autostock($post_id) {
$stockqty = get_post_meta($post_id, '_stock', true );
$autostocktotal = (get_field('autostock_cpt') + get_field('autostock_jhb'));
$maxstockqty = ($stockqty + $autostocktotal);
if ( get_field('autostock_enabled') == true && $autostocktotal > 0) {
update_post_meta($post_id,'_wc_max_qty_product', $maxstockqty);
update_post_meta($post_id,'_backorders', 'notify' );
update_field('autostock_total', $autostocktotal, $post_id);
}
else {
update_post_meta($post_id,'_backorders' , 'no' );
update_post_meta($post_id,'_wc_max_qty_product', '');
}
}
add_action('acf/save_post', 'backorder_autostock');
它工作得很好,但我有3个问题:
- 下订单时 $stockqty 会减少,但 $autostocktotal(延期交货数量)不会减少,因为它不是本地库存数量字段。
示例:$stockqty = 1 和 $autostocktotal = 6。客户订购了 2 件商品。现在 $stockqty = 0 但 $autostocktotal 仍然 = 6
_wc_max_qty_product 也没有减少,因此最大添加到购物车插件仍然允许所有 7 个单位。(这是因为功能挂钩仅在产品保存/更新时触发,而不是在下订单时触发)
即使我能够解决上述问题,我也需要从未来更新的 $stockqty 和 $autostocktotal 值中减少待处理订单中产品的数量,因为导出这些值以更新这些字段的系统将不准确,如果订单尚未处理。
有没有解决这些问题的实用方法?
我一直在网上寻找一个开箱即用的解决方案,只需要一个行为类似于 _stock 的专用字段,但仅用于缺货库存。