2015-05-13 6 views
7

Sto cercando di costruire un programma che testi me la mia woo ordine commercio, articoli di ordine e quantità,get_items WC_Order() e la loro quantità

Sono il 90% non,

function custom_woocommerce_complete_order_sms($order_id) { 
     global $woocommerce; 
     if (!$order_id) 
     return; 
     $order = new WC_Order($order_id); 

     $product_list = ''; 
     $order_item = $order->get_items(); 

     foreach($order_item as $product) { 
      $prodct_name[] = $product['name']; 
     } 

     $product_list = implode(',\n', $prodct_name); 






    require "twilio-php-master/Services/Twilio.php"; 


    $AccountSid = "xxxxxxxxx"; 
    $AuthToken = "xxxxxxxxx"; 

    $client = new Services_Twilio($AccountSid, $AuthToken); 


    $people = array(
     "xxxxxxxxxx" => "Me", 
    ); 


    foreach ($people as $number => $name) { 

     $sms = $client->account->messages->sendMessage(



      "+44xxxxxxxxxx", 

      // the number we are sending to - Any phone number 
      $number, 

      // the sms body 
      "Hey $name, there is a new Order, the order is, $product_list" 
     ); 


    } 

    } 

il mio problema è Non so come ottenere l'articolo Quantità, ad esempio il mio testo appare come elenco, articolo 1, elemento 2, elemento 3, voglio dire articolo 1 x1, elemento 2 x2, articolo3 x3

Ho provato e scavare nel file di email php nella cartella astratta woo commerce per vedere come fanno mentre inviano le quantità messaggi di posta elettronica, ma sono un po 'perso

anche nella classe WC_Abstract_Order l'unica altra cosa che ho trovato è get_item_total che restituisce al totale di tutti gli elementi

+0

Penso che hai trovato la risposta, ma 'var_dump ($ o rder-> get_items()) 'per vedere cosa è disponibile nell'array restituito. – helgatheviking

+1

Avrei dovuto fare il var_dump 1, mi avrebbe risparmiato un sacco di tempo, un buon consiglio per le sfide future – user2389087

+0

Lo è davvero. I 'var_dump()' molto per vedere cosa sta succedendo. Potrebbe esserci un modo migliore, ma funziona abbastanza bene. Grazie per essere tornato e migliorare la tua risposta. – helgatheviking

risposta

13

Dalla ricerca è anche possibile afferrare il qty dalla voce ordine

$product['qty']; 

Pertanto, è stato semplice per eseguire un ciclo più e aggiungere la quantità per il nome dell'elemento (sotto)

$product_details = array(); 
$order_items = $order->get_items(); 
foreach($order_items as $product) { 
       $product_details[] = $product['name']."x".$product['qty']; 

      } 

      $product_list = implode(',', $product_details); 
+0

Questa è la risposta? Alcune parole per spiegarlo sarebbero utili a qualcun altro che ha un problema simile. – helgatheviking

+0

Veramente, le mie scuse, se guardate qui -> http://docs.woothemes.com/wc-apidocs/source-class-WC_Abstract_Order.html#1047-1117 potete vedere che c'è un ['qty'] voi può anche estrarre, ho aggiunto questi due insieme e aggiunto alla matrice. Quindi imploso con una virgola, ora il testo sembra prodotto1x1, prodotto2x6 ecc., Quello che stavo cercando – user2389087

Problemi correlati