2017-02-14 215 views
0

我想獲得購物車中的產品的product_id,然後將其回顯到一個類(自定義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'; ?>"> 

這部分已經在微型cart.php模板,所以是li但沒有階級屬性,這是我補充道。

$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; 
} 

(也測試了它沒有休息,所以它已經內和環外測試)沒有

然後我重複這兩個回聲,但還是空白回聲結果( )。

我在這裏做錯了什麼?

+0

你可以轉儲WC() - > cart-> get_cart()和$ cart_item [ 'PRODUCT_ID'(如果這些看似細小,然後還dump $ product_id調用apply_filters函數 – flynorc

+0

@flynorc - 你說的是var_dump()對嗎?我該怎麼做?我的php技巧我很弱。 –

+0

你會添加var_dump(WC() - > cart-> get_cart ));在foreach循環之前,你會在foreach循環中添加var_dump($ cart_item ['product_id']); – flynorc

回答

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); 
+0

它從迷你車下來,從菜單,而不是車本身,但這仍然是有用的,因爲我以後可能需要購物車。謝謝。你知道小車的修理嗎? –

+0

對不起,我誤解了你的問題。它看起來像迷你車有一個類似的過濾器稱爲['woocommerce_mini_cart_item_class'](https://github.com/woocommerce/woocommerce/blob/b81e56b597b44b920af0e90095baea655dcd2394/templates/cart/mini-cart.php#L46)。我會編輯,但它應該幾乎相同。 – helgatheviking

+0

似乎沒有工作。不適用任何課程。奇怪的。 –

相關問題