【问题标题】:Disable payment methods based on WooCommerce cart total根据 WooCommerce 购物车总数禁用付款方式
【发布时间】:2020-10-15 23:31:28
【问题描述】:

当结帐总额 == 400 但不起作用时,我尝试使用以下代码在 Woo commerce(WordPress) 上隐藏/禁用信用卡/借记卡和直接银行转帐付款方式。请任何想法如何实现这一目标?非常感谢。

function payment_gateway_disable_total_amount( $available_gateways ) {
global $woocommerce;

    if ( isset( $available_gateways['bacs'] ) && $woocommerce->cart->total == 400 ) {
        unset(  $available_gateways['bacs'] );
    }
    
    if ( isset( $available_gateways['youpay'] ) && $woocommerce->cart->total == 400 ) {
        unset(  $available_gateways['youpay'] );
    }
    return $available_gateways;
}
add_filter( 'woocommerce_available_payment_gateways', 'payment_gateway_disable_total_amount' );

【问题讨论】:

    标签: php wordpress woocommerce payment-method array-unset


    【解决方案1】:

    为什么要使用固定总数?任何客户总共获得 400 个的机会都很少。它应该是“最多 400”,所以类似于 if( $tolal >= 400 )

    此外,“借记卡/信用卡”似乎不是正确的付款方式 ID……请参阅 [this thread][1] 以找出“借记卡/信用卡”支付网关的正确付款方式 ID。

    尝试以下操作(假设“借记卡/信用卡”付款方式 ID 正确)

    add_filter( 'woocommerce_available_payment_gateways', 'show_hide_payment_methods' );
    function show_hide_payment_methods( $available_gateways ) {
    
        if ( WC()->cart->total >= 400 ) {
            if ( isset($available_gateways['bacs']) ) {
                unset($available_gateways['bacs']);
            }
            if ( isset($available_gateways['Debit/Credit Cards']) ) {
                unset($available_gateways['Debit/Credit Cards']);
            }
        }
    
        return $available_gateways;
    }
    

    代码进入活动子主题(或活动主题)的functions.php 文件中。它应该可以工作。

    【讨论】:

    • 谢谢你,它很有效。我也能够获得付款方式ID。谢谢
    猜你喜欢
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 2019-08-29
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    • 2013-05-22
    相关资源
    最近更新 更多