将类添加到 WooCommerce 中的购物车项目,尤其是迷你购物车中

问题描述 投票:0回答:1

我自己非常熟悉 php 和 wordpress hooks 等。但现在有了 JS 中的古腾堡块,我不明白。

我制作了一个简单的插件,它向产品添加了一些选项,如果检查了产品,则会将一些类添加到产品中。我也为购物车修复了这个问题,但我无法弄清楚 Woocommerce 迷你购物车块。

这是购物车页面的功能:

// Add the "is_alcohol" class to cart items
function custom_add_cart_item_classes($class, $values, $values_key) {
    if (isset($values['data'])) {
        $product = $values['data'];

        // Check if the product is alcohol (you should determine this based on your product data).
        $is_alcohol = get_post_meta($product->get_id(), 'is_alcohol', true);

        if ($is_alcohol === 'yes') {
            $class .= ' is_alcohol';
        }
    }

    return $class;
}
add_filter('woocommerce_cart_item_class', 'custom_add_cart_item_classes', 10, 3);

有人可以帮助我如何为迷你购物车块中的产品添加类别吗?

https://woocommerce.com/document/woocommerce-blocks/#section-18

<tr class="wc-block-cart-items__row MY_CUSTOM_CLASS" tabindex="-1">

php wordpress templates woocommerce hook-woocommerce
1个回答
0
投票

对于 Minicart,要使用的钩子是

woocommerce_mini_cart_item_class

请注意,Minicart 中的 HTML 结构有所不同,因为附加类应用于

<li>
元素,而不是购物车的
<tr>

尝试以下重新审视的代码替换,它也适用于 Minicart:

// Add the "is_alcohol" class to cart items
function add_custom_cart_item_class($class, $cart_item) {
    if ( ! isset($cart_item['data']) ) return $class;

    // Check if the product is alcohol (you should determine this based on your product data).
    if ( $cart_item['data']->get_meta('is_alcohol') === 'yes' ) {
        $class .= ' is_alcohol';
    }
    return $class;
}
add_filter('woocommerce_cart_item_class', 'add_custom_cart_item_class', 10, 2);
add_filter('woocommerce_mini_cart_item_class', 'add_custom_cart_item_class', 10, 2);

它也应该适用于购物车和迷你车。

© www.soinside.com 2019 - 2024. All rights reserved.