2013-12-13 32 views
3

我有,当我试图将数据设置为我的项目的问题:问题woocommerce add_to_cart数据

add_filter('woocommerce_add_cart_item_data', '_add_custom_item_data', 10, 2); 
add_filter('woocommerce_get_cart_item_from_session', '_get_cart_item_from_session', 10, 2); 

function _add_custom_item_data($cart_item_data, $product_id){ 
    if(!empty($cart_item_data)){ 
     $cart_item_data['custom_field'] = 'aaaa'; 
    } 
    return $cart_item_data; 
} 
function _get_cart_item_from_session($cart_item, $values){ 
    if (isset($values['custom_field'])) { 
      $cart_item['custom_field'] = $values['custom_field']; 
     } 
    return $cart_item; 
} 

当我使用:

$woocommerce->cart->add_to_cart($id,'1','','',array('_my_data','000000000000000000000000000000')); 

的_add_custom_item_data功能被执行,以及我有_my_data变量。

但我试图用我的产品,以获得变量:

$items = $woocommerce->cart->get_cart(); 
foreach($items as $item){ 
    echo $woocommerce->cart->get_item_data($item) . "<br>"; 
} 

我没有看到我的变量...

任何想法?

回答

0

在最后一个函数尝试以下操作以获取数据

<?php 
       $cart = $woocommerce->cart->get_cart(); 
       $items = 0; 
       $total = 0; 
       foreach ($cart as $p) { 
        $total += $p['line_total']; 
        $items += $p['quantity']; 
       } 
       echo $items; 
       echo $total; 
      ?> 
0

,而不是直接分配数据的索引,你应该将其分配给product_meta第一,比如,你可以试试这个

$item_meta['your_key] = 'your_value'; 
$cart_item_data ['product_meta'] = array('meta_data' => $item_meta);