2016-10-05 1 views
1

actuellement j'ajouter le produit au panier par $woocommerce->cart->add_to_cart(21, 1, 0, $item,$cart_item_data)WooCommerce: Nécessité d'enregistrer Panier article méta du chaque produit aux commandes

maintenant produit avec identifiant 21 est ajouté au panier. Je sauvegarde de nombreux détails dans $ cart_item_data. Ce que je veux, c'est quand la commande est créée pour ce produit panier puis le $cart_item_data besoin d'enregistrer à la db, et dans la section d'ordre des admins je peux voir les détails de chaque produit avec ce $cart_item_data .

Je sais comment enregistrer la méta de l'article de commande.

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

Mais mon problème est que je dois obtenir des valeurs de $cart_item_data et enregistrer dans le tableau woocommerece_order_itemmeta.

Note: cart_item_data de $ = est un tableau dans lequel je sauvé quelques détails personnalisés pendant le temps d'ajouter au panier

S'il vous plaît aider à résoudre ce problème.

Répondre

1

Si vous avez correctement ajouté des données personnalisées au panier pour votre produit, vous l'aurez dans $ item dans le code ci-dessous et vous pourrez utiliser le code ci-dessous pour économiser davantage.

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']); 
      } 
     } 
    } 
}