【问题标题】:Hide payment method if specific variation in Cart/Checkout | Woocommerce + Product Addons Plugin如果购物车/结帐中有特定变化,则隐藏付款方式 | Woocommerce + 产品插件插件
【发布时间】:2022-06-12 18:55:05
【问题描述】:

不要认为它与其他 2 个问题重复。请阅读下面关于我面临的问题!

我正在使用https://woocommerce.com/products/product-add-ons/ 插件在整个类别(在其所有产品上)添加产品插件。我有很多选项作为所有特定类别产品的插件,例如拼接、匹配插件、匹配边框等,如下图所示

如果选择了匹配插件和拼接并且在购物车/结帐中,我想隐藏货到付款 (COD) 支付网关。

现在,我很难找到任何特定的变体 id 来实施这样的解决方案:https://stackoverflow.com/a/68994195/9513172

由于在购物车/结帐中,它显示为带有 dt 类标签,如下图所示:

这里测试产品链接:here

【问题讨论】:

    标签: php wordpress woocommerce


    【解决方案1】:

    花了几个小时解决这个问题后,我现在想出了这个解决方案:

    add_filter('woocommerce_available_payment_gateways', 'conditional_payment_gateways', 10, 1);
    function conditional_payment_gateways( $available_gateways ) {
        $in_cart = false;
        
        $cart_item = WC()->cart->get_cart();
        $addons = array_values($cart_item)[0]['addons'];
    
        foreach ( $addons as $subKey => $value ) {
            if ($addons[$subKey]['name'] == "Stitching" || $addons[$subKey]['name'] == "Matching Borders"){
                $in_cart = true;
            }
        }
    
        if ( $in_cart )
            unset($available_gateways['cod']); // unset ‘cod’
        return $available_gateways;
    }
    

    【讨论】:

      猜你喜欢
      • 2020-08-09
      • 1970-01-01
      • 1970-01-01
      • 2020-11-15
      • 2016-07-28
      • 2023-03-09
      • 2019-05-11
      • 1970-01-01
      • 2019-10-02
      相关资源
      最近更新 更多