今天我们来看看 WooCommerce Checkout,特别是如果某些类别 ID 在购物车中,如何禁用支付网关。搏一搏!

禁用特定类别的付款方式

/**
 * @snippet       Disable Payment Method for Specific Category

 * @sourcecode    https://businessbloomer.com/?p=19892
 * @author        Rodolfo Melogli
 * @testedwith    WooCommerce 2.5.2
 */

add_filter('woocommerce_available_payment_gateways','bbloomer_unset_gateway_by_category');

function bbloomer_unset_gateway_by_category($available_gateways){
global $woocommerce;
$category_IDs = array(316,317);
foreach ($woocommerce->cart->cart_contents as $key => $values ) {
$terms = get_the_terms( $values['product_id'], 'product_cat' );    
foreach ($terms as $term) {        
if(in_array($term->term_id, $category_IDs)){
    unset( $available_gateways['cod'] );
            break;
        }
    break;
    }
 }
    return $available_gateways;
}


可以在哪里添加此代码?

您可以将 PHP 代码片段放置在主题或子主题的 functions.php 文件的底部(如果是 CSS 代码,请添加到主题的 style.css 文件底部),修改之前建议先备份原始文件,若出现错误请先删除此代码。


这段代码是否正常可用?

或者是您有更好的解决方案想要分享?请到薇晓朵 WooCommerce 中文论坛留言告知,我们希望可以帮到更多国内的 WooCommerce 用户也希望您的参与。


需要关于 WooCommerce 的帮助?

请观看我们提供的免费视频教程或到薇晓朵 WooCommerce 中文论坛提问,会有专业技术团队提供相关帮助。