隐藏"删除项目"来自WooCommerce中特定产品的购物车

时间:2018-02-01 14:35:20

标签: php wordpress woocommerce cart product

我在我的网站上使用woocommerce,我想隐藏"删除此项目/产品"对于一个特定的项目,你能告诉我我该怎么做。

我非常感谢对此有任何帮助。

2 个答案:

答案 0 :(得分:2)

已更新(对于阵列中的多个产品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文件。

经过测试和工作。

答案 1 :(得分:0)

您可以使用钩子绑定到链接操作并将其删除以用于特定的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,但它可能会在其他网址上触发。您还可以将data-product_sku更改为data-product_id,以便按ID搜索。