Il caso
Avete a disposizione una struttura XML che contiene lo SKU e lo stock (quantità) dei prodotti del vostro negozio e-commerce fatto con WooCommerce e volete scorrerlo aggiornando tutte le quantità dei vostri prodotti; questo potrebbe succedere ad esempio se lavorate in dropshipping.
Soluzione
Di seguito vi riporto il codice che potete utilizzare per scorrere la struttura XML che avete e aggiornare lo stock dei vostri prodotti utilizzando la function update_post_meta().
Nel caso in cui aveste la struttura XML in un file txt come prima cosa potrete fare così:
$xml_data = file_get_contents('strutturaXML.txt', true);
Nel caso invece in cui vi ciene passata tramite POST la struttura potrete recuperarla in questo modo:
$xml_data = $_POST['xml'];
Una volta creata la variabile $xml_data basterà utilizzare il seguente codice:
$data = simplexml_load_string($xml_data); foreach($data as $row){ $product_sku = $row->Code; $product_id = wc_get_product_id_by_sku($product_sku); $product_in_stock = $row->AvailableQty; if(empty($product_sku)) continue; //UPDATE PRODUCT QUANTITY update_post_meta($product_id, '_stock', (int)$product_in_stock); }
Nel codice utilizzo Code e AvailableQty perché nell’XML a cui faccio riferimento utilizzo questi campi. Di seguito l’esempio dell’XML di origine:
<Products>
<Product>
<Code>001981</Code>
<AvailableQty>10.0</AvailableQty>
</Product>
</Products>
Conclusioni
Chiaramente il codice può essere modificato a piacimento a seconda della struttura XML che avete a disposizione.
Buon lavoro 😉