【发布时间】:2021-10-02 21:47:38
【问题描述】:
当任何用户使用优惠券时,我正在使用此代码禁用 Paypal:
add_filter('woocommerce_available_payment_gateways', 'applied_coupons_hide_payment_gateways', 20, 1 );
function applied_coupons_hide_payment_gateways( $available_gateways){
// Not in backend (admin)
if( is_admin() )
return $available_gateways;
// If at least a coupon is applied
if( sizeof( WC()->cart->get_applied_coupons() ) > 0 ){
// Loop through payment gateways
foreach ( $available_gateways as $gateway_id => $gateway ) {
// Remove all payment gateways except BACS (Bank Wire)
if( $gateway_id != 'stripe' )
if( $gateway_id != 'bacs' )
unset($available_gateways[$gateway_id]);
}
}
return $available_gateways;
}
但是现在我需要为特定的优惠券“PAYPALMSI”创建一个例外,我一直在使用其他代码进行测试,它可以工作,但它们相互覆盖,我如何同时使用它们?在第一个代码上为 paypalmsi 做一个例外?
add_filter('woocommerce_available_payment_gateways', 'unset_gatway_by_applied_coupons');
function unset_gatway_by_applied_coupons($available_gateways)
{
$coupons = WC()->cart->applied_coupons;
foreach ($coupons as $coupon) {
if ($coupon == 'paypalmsi') {
unset($available_gateways['stripe']);
unset($available_gateways['bacs']);
}
}
return $available_gateways;
}
【问题讨论】:
标签: woocommerce paypal code-snippets coupon