我自己非常熟悉 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">
对于 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);
它也应该适用于购物车和迷你车。