Come aggiungere metadati personalizzati agli ordini WooCommerce? In particolare un secondo ID ordine esterno

14 giu 2017, 15:23:32
Visualizzazioni: 22.3K
Voti: 1

Sto lavorando alla creazione di un'integrazione personalizzata tra WooCommerce e il nostro ERP interno. Ho agganciato l'hook woocommerce_checkout_order_processed in modo che quando viene effettuato un ordine invio tutte le informazioni pertinenti al nostro ERP e la risposta è un ID ordine. Questo è un ID ordine diverso da quello presente in WooCommerce e ho bisogno di un modo per mappare l'ID ordine dell'ERP con quello di WooCommerce. Qual è il modo migliore per realizzarlo?

Ho provato ad aggiungere metadati personalizzati, ma finora non ha funzionato. add_metadata( "shop_order", $order->id, "mapics_order", (string) $orderNumber, TRUE ); e sto cercando di evitare di utilizzare wc_add_order_item_meta poiché questo non è specifico per l'articolo, ma per l'intero ordine stesso.

0
Tutte le risposte alla domanda 1
3

puoi utilizzare l'hook woocommerce_checkout_update_order_meta per aggiornare i meta dell'ordine. Controlla il codice di esempio

add_action('woocommerce_checkout_update_order_meta', 'custom_checkout_field_update_order_meta');

function custom_checkout_field_update_order_meta($order_id)
{
    session_start();
    if ($_SESSION['mapics_order'])
        update_post_meta($order_id, 'mapics_order', esc_attr(htmlspecialchars($_SESSION['mapics_order'])));
}
14 giu 2017 15:52:14
Commenti

Fantastico, grazie! L'ho semplificato usando solo update_post_meta che sembra funzionare bene, ma dovrò fare qualche controllo per esserne sicuro.

fwho fwho
14 giu 2017 16:02:35

sessioni? sono ancora permesse in php? ;) più seriamente, dove dovrebbero esattamente finire i dati nella sessione?

Mark Kaplun Mark Kaplun
14 giu 2017 16:14:06

Passare dati in una sessione è semplice, e anche se non è la soluzione perfetta mi ha dato il pezzo mancante che mi serviva per continuare il mio progetto.

fwho fwho
14 giu 2017 16:24:48