将产品ID添加到购物车项目类

时间:2017-02-14 22:51:20

标签: php wordpress woocommerce

我想获取购物车中商品的product_id,然后将其回显给某个类(自定义id),这样我就可以单独设置商品。

我有这个:

<?php
    foreach( WC()->cart->get_cart() as $cart_item ){
        $product_id = $cart_item['product_id'];
        break;
    }
    $product_id   = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );
?> 

<li id="mcitem-<?php echo esc_attr($cart_item_key); ?>" class="custom-<?php echo $product_id'; ?>">

此部分已经在mini-cart.php模板中,li也是如此,但没有我添加的class属性。

$product_id   = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );

我在课堂上以不同的方式尝试echo $product_id

echo '$product_id';
echo esc_attr($product_id);

测试两者并且不起作用。然后我找到了这个片段:

foreach( WC()->cart->get_cart() as $cart_item ){
    $product_id = $cart_item['product_id'];
    break;
}

(也测试它没有中断,所以它已经在循环内外进行了测试)

然后我重复了两个回声,但仍然是空白的回声结果(无)。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

如果要将某个类添加到购物车行,可以过滤woocommerce_cart_item_class

/**
 * Changes the tr class of cart items.
 *
 * @param  string  $class
 * @param  array   $values
 * @param  string  $values_key
 * @return string
 */
function so_42237701_cart_item_class( $class, $values, $values_key ) {

    if ( isset( $values[ 'product_id' ] ) ) {
        $class .= ' custom-' . $values[ 'product_id' ];
    }

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

对于迷你车:

/**
 * Changes the tr class of items in the mini-cart.
 *
 * @param  string  $class
 * @param  array   $values
 * @param  string  $values_key
 * @return string
 */
function so_42237701_mini_cart_item_class( $class, $cart_item, $cart_item_key ) {

    if ( isset( $cart_item[ 'product_id' ] ) ) {
        $class .= ' custom-' . $cart_item[ 'product_id' ];
    }

    return $class;
}
add_filter( 'woocommerce_mini_cart_item_class', 'so_42237701_mini_cart_item_class', 10, 3 );