如果在WooCommerce中将优惠券应用于购物车,则仅对登录用户显示BACS支付网关

时间:2019-05-02 22:24:51

标签: php wordpress woocommerce cart payment-method

我拥有的代码可用于为宾客和客户隐藏BACS支付网关,但是我需要对其进行更改,以便仅在客户/管理员在CART或CHECKOUT上应用称为FOOD的特定优惠券代码时,BACS网关才可用。

换句话说:隐藏BACS网关,直到将名为FOOD的COUPON应用于CART或CHECKOUT。

这是我拥有的代码:

add_filter('woocommerce_available_payment_gateways', 'show_bacs_if_coupon_is_used', 99, 1);
function show_bacs_if_coupon_is_used( $available_gateways ) {

        $current_user = wp_get_current_user();

        if ( isset($available_gateways['bacs']) && (current_user_can('customer'))) {
             unset($available_gateways['bacs']);
             } else if ( isset($available_gateways['bacs']) && !is_user_logged_in())  {
             unset($available_gateways['bacs']);
         }
         return $available_gateways;
}

1 个答案:

答案 0 :(得分:0)

仅当登录用户仅将特定优惠券应用于购物车时显示BACS付款方式(使用ALTER SEQUENCE ad_group_action_id_seq RESTART WITH 100; WC_Cart方法)

get_applied_coupons()

代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。