2016-10-05 3 views
1

에 각 제품의 카트 항목 메타 저장해야 현재 내가 $woocommerce->cart->add_to_cart(21, 1, 0, $item,$cart_item_data)woocommerce : 주문

이제 ID (21)와 제품이 장바구니에 추가하여 장바구니에 제품을 추가 할 수 있습니다. 나는 $ cart_item_data에 많은 세부 사항을 저장합니다. 내가 원하는 것은이 장바구니 제품에 대한 주문이 생성되었을 때 $cart_item_data가 db에 저장해야하며 관리자의 주문 섹션에는 $cart_item_data과 함께 각 제품의 세부 정보가 표시됩니다. .

주문 항목 메타를 저장하는 방법을 알고 있습니다.

add_action('woocommerce_add_order_item_meta',function($item_id, $values, $cart_item_key){ 

wc_add_order_item_meta($item_id, 'Reference', 12345 , false); 

     },10,2); 

하지만 내 문제는 내가 $cart_item_data에서 값을 얻을 woocommerece_order_itemmeta 테이블에 저장해야합니다.

주 : $의 cart_item_data은 = 내가 카트

이 문제를 해결하기 위해 도와주세요

에 추가의 시간 동안 일부 사용자 지정 내용을 저장 한 배열입니다.

답변

1

귀하의 제품에 맞는 맞춤 데이터를 장바구니에 올바르게 추가 한 경우 아래 코드의 $ item에 해당 데이터가 저장되며 아래 코드를 사용하여 추가로 저장할 수 있습니다.

add_action('woocommerce_add_order_item_meta','add_order_item_meta',1,2); 

function add_order_item_meta($item_id, $values) { 

    if(isset($values['_my_custom_info']) && !empty($values['_my_custom_info'])) { 
     // Get the custom array 
     $arrCustomInfo = $values['_my_custom_info']; 

     // For each custom element 
     foreach($arrCustomInfo AS $key => $arrInfo) { 

      if(isset($arrInfo['quantity']) && !empty($arrInfo['quantity'])) { 
       // Save variation addon info 
       $strKey = $arrInfo['name'] . ' X ' . $arrInfo['quantity']; 

       // Save custom order item meta 
       wc_add_order_item_meta($item_id, $strKey . ' ', wc_price($arrInfo['price'] * $arrInfo['quantity'])); 
       wc_add_order_item_meta($item_id, 'Product Image ', $arrInfo['image']); 
      } 
     } 
    } 
}