【问题标题】:Hide "remove item" from cart for a specific product in WooCommerce从购物车中隐藏 WooCommerce 中特定产品的“删除项目”
【发布时间】:2018-07-11 22:11:00
【问题描述】:

我正在为我的网站使用 woocommerce,我想为一个特定项目隐藏“删除此项目/产品”,您能告诉我该怎么做吗?

我将不胜感激任何帮助。

【问题讨论】:

    标签: php wordpress woocommerce cart product


    【解决方案1】:

    更新(用于数组中的多个产品 ID)

    对于以下代码中的特定产品 ID(您应该定义),以下是禁用/删除“删除此项目”按钮的正确方法:

    add_filter('woocommerce_cart_item_remove_link', 'customized_cart_item_remove_link', 20, 2 );
    function customized_cart_item_remove_link( $button_link, $cart_item_key ){
        //SET HERE your specific products IDs
        $targeted_products_ids = array( 25, 22 );
    
        // Get the current cart item
        $cart_item = WC()->cart->get_cart()[$cart_item_key];
    
        // If the targeted product is in cart we remove the button link
        if( in_array($cart_item['data']->get_id(), $targeted_products_ids) )
            $button_link = '';
    
        return $button_link;
    }
    

    代码进入活动子主题(或活动主题)的 function.php 文件中。

    经过测试并且有效。

    【讨论】:

    • 感谢您的重播,但是我想隐藏产品数量的删除项,所以当我尝试使用数组相应地更改代码时,它不起作用,请您查看一下: $targeted_product_ids = 数组 (25, 22); if( $cart_item['data']->get_id() == $targeted_product_ids ) 谢谢
    【解决方案2】:

    您可以使用挂钩绑定到链接操作并针对特定 SKU 将其删除,如下所示,尽管未经测试它应该可以工作。

    function my_woocommerce_cart_item_remove_link($link){
        preg_match('/data-product_sku=\"(.*?)\"/', $link, $matches);
    
        if($matches[1] == 'PRODUCT_SKU_TO_TRIGGER')
            return '';
    
        return $link;
    }
    add_filter('woocommerce_cart_item_remove_link', 'my_woocommerce_cart_item_remove_link');
    

    您也可以只在 SKU 上使用strpos,但它可能会在 URL 的其他部分触发。您也可以将 data-product_sku 更改为 data-product_id 以改为按 ID 搜索。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-27
      • 2021-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-22
      • 2021-08-24
      • 2017-04-27
      相关资源
      最近更新 更多