2

在 Woocommerce 中,如果任何购物车商品被延期交货,我想隐藏货到付款付款方式,这意味着如果客户将任何允许延期交货但没有足够库存的商品添加到购物车中。

我主要担心的是,如果我们在商店里没有这个产品,就不允许他们付款,如果我们可以延期交货,我们只需输入所需的数量并要求他们付款。

任何帮助表示赞赏。

4

1 回答 1

3

如果任何购物车商品延期交货,以下代码将隐藏“货到付款” ('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 文件中。测试和工作。

于 2018-10-15T20:47:22.147 回答