Ho una funzione che fa questo:Come ottenere i dettagli del cliente da ordine in WooCommerce?
$order = new WC_Order($order_id);
$customer = new WC_Customer($order_id);
Come posso ottenere dati dei clienti di questo ?. Ho provato di tutto nella documentazione, ma in qualche modo, solo alcuni dettagli sono presenti ma il resto arent, per esempio
$data['Address'] = $customer->get_address() . ' ' . $customer->get_address_2();
$data['ZipCode'] = $customer->get_postcode();
è vuoto.
Facendo
var_dump($customer)
produce:
oggetto (WC_Customer) # 654 (2) {[ "_data": protected] => array (14) {[ "paese"] = > string (2) "IT"> ["stato"] => stringa (0) "" ["codice postale"] => stringa (0) "" ["città"] => stringa (0) "" [" indirizzo "] =>> stringa (0)" "[" indirizzo_2 "] => stringa (0)" "[" shipping_country "] => stringa (2)" IT " [" shipping_state "] => stringa (2) "BG" ["shipping_postcode"] => string (0) "" ["shipping_city"] =>> string (0) "" ["shipping_address"] => string (0) "" ["shipping_address_2"] = > st ring (0) "" ["is_vat_exempt"] => bool (false) ["calculate_shipping"] => bool (false)}? [ "_changed": "WC_Customer": private] => bool (false)}
Come si può vedere, la città è presente, ma il resto sono vuoti. Ho controllato il WP_usermeta e nel pannello di amministrazione del cliente e tutti i dati sono lì.
Qualche idea?
in realtà è stato in qualche modo il metodo che ho seguito per risolvere questo quindi quindi contrassegno questa soluzione come accettata –
E se la persona che ha acquistato i prodotti nell'ordine fosse un ospite sul sito? Come ottenere quell'informazione ora? Non ci sarà user_id –
Sì, non ne sono sicuro. Forse puoi recuperarlo dal loro indirizzo email o (se sei fortunato) dalla sessione. Potrebbe non essere possibile, ma potrebbe valere la pena sollevare come una nuova domanda. :-) –