php - 隐藏 Woocommerce 中延期交货的购物车商品的货到付款付款方式

标签 php wordpress woocommerce cart payment-method

在 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/

相关文章:

php - Mysql 将序列化表从一个数据库复制到另一个数据库

php - 将 Gravity Forms 中的字段连接到 WooCommerce 中的字段

php - 在 Woocommerce 3.3 中设置某些产品类别或产品 ID 的最小数量

php - 如何清理复选框?

mysql - Order By multiple - 对于 wordpress 属性

javascript - Jquery PHP Mysql 表单提交不起作用

wordpress - 停止过滤WordPress函数wp_insert_post

php - 在 Woocommerce 中以编程方式自定义运费

php - Elasticsearch :使用通配符作为属性名称来映射属性类型

php - 无法在 PHP 中获得正确的响应以引用 Android 应用程序 StringReqeust