WooCommerce 中的购物车总数是不是为 0 时未显示付款方式

Posted

技术标签:

【中文标题】WooCommerce 中的购物车总数是不是为 0 时未显示付款方式【英文标题】:Payment methods not showing if cart total is 0 in WooCommerceWooCommerce 中的购物车总数是否为 0 时未显示付款方式 【发布时间】:2021-08-20 10:39:50 【问题描述】:

我正在为具有多个用户角色的客户设置商店。其中之一的价格需要为 0 美元,因为该公司按月计费。其他角色必须使用“按用户角色划分的产品价格”根据其角色支付不同的乘数。

无论如何,当用户以 0 美元购买某些产品时,COD 方式没有显示,我需要该支付网关来设置自定义状态。

以前有人遇到过这个问题吗?如果有,不胜感激!

【问题讨论】:

【参考方案1】:

“以前有人遇到过这个问题吗?”这是 WooCommerce 中的默认行为

为防止这种情况,请使用:

// Looks at the totals to see if payment is actually required.
function filter_woocommerce_cart_needs_payment( $needs_payment, $cart ) 
    // Set true
    $needs_payment = true;
    
    return $needs_payment;

add_filter( 'woocommerce_cart_needs_payment', 'filter_woocommerce_cart_needs_payment', 10, 2 );

简而言之

add_filter( 'woocommerce_cart_needs_payment', '__return_true' );

// Checks if an order needs payment, based on status and order total.
function filter_woocommerce_order_needs_payment( $needs_payment, $order, $valid_order_statuses )   
    // Set true
    $needs_payment = true;

    return $needs_payment;

add_filter( 'woocommerce_order_needs_payment', 'filter_woocommerce_order_needs_payment', 10, 3 );

简而言之

add_filter( 'woocommerce_order_needs_payment', '__return_true' );

【讨论】:

以上是关于WooCommerce 中的购物车总数是不是为 0 时未显示付款方式的主要内容,如果未能解决你的问题,请参考以下文章

WooCommerce:如果购物车总金额 = 0,则更改支付网关

php WooCommerce - 在Ajax之后更新购物车中的商品数量和总数

仅将 woocommerce 优惠券应用于购物车总数,而非税线

php WooCommerce:购物车数量和总数

php WooCommerce:购物车数量和总数

php WooCommerce - 显示购物车总数/更新