在 Woocommerce 中,如果任何购物车商品缺货,我想隐藏货到付款付款方式,这意味着如果客户将任何允许缺货的商品添加到购物车,但添加的数量没有足够的库存。
我主要担心的是,如果我们商店里没有该产品,就不允许他们付款,如果我们可以延期交货,我们只需输入所需的数量并要求他们付款。
感谢任何帮助。
最佳答案
如果任何购物车商品缺货,以下代码将隐藏“货到付款”('cod')付款方式:
add_filter( 'woocommerce_available_payment_gateways', 'backordered_items_hide_cod', 90, 1 );
function backordered_items_hide_cod( $available_gateways ) {
// Only on front end
if ( is_admin() )
return $available_gateways;
// Loop through cart items
foreach( WC()->cart->get_cart() as $cart_item ){
if( $cart_item['data']->is_on_backorder( $cart_item['quantity'] ) ) {
// Hide "COD" payment gateway
unset($available_gateways['cod']);
break; // Stop the loop
}
}
return $available_gateways;
}
代码位于事件子主题(或事件主题)的functions.php 文件中。经过测试并有效。
关于php - 隐藏 Woocommerce 中延期交货的购物车商品的货到付款付款方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52819449/