2013-10-03 11 views

risposta

10

È possibile effettuare le seguenti per ottenere/impostare codici di avviamento postale di fatturazione/spedizione,

Per impostare i valori,

$customer = new WC_Customer(); 
$customer->set_postcode('123456');  //for setting billing postcode 
$customer->set_shipping_postcode('123456'); //for setting shipping postcode 

Se si desidera solo per prendere i codici di avviamento postale, è possibile recuperare dal meta table dell'utente stesso,

$shipping_postcode = get_user_meta($current_user->ID, 'shipping_postcode', true); 
$billing_postcode = get_user_meta($current_user->ID, 'billing_postcode', true); 
4

È possibile utilizzare la classe WC_Customer che fornisce questa funzione. È caricato all'interno della classe Woocommerce. Questa informazione è memorizzata all'interno della sessione corrente.

function set_shipping_zip() { 
    global $woocommerce; 

    //set it 
    $woocommerce->customer->set_shipping_postcode(12345); 
    $woocommerce->customer->set_postcode(12345); 

    //get it 
    $woocommerce->customer->get_shipping_postcode();  
    $woocommerce->customer->get_postcode(); 
} 

La documentazione completa per questa classe: http://docs.woothemes.com/wc-apidocs/class-WC_Customer.html

Spero che questo aiuti.

+0

Funziona anche. Grazie! – Rao

+2

Voglio anche sottolineare che questo metodo imposta solo i dati nella variabile di sessione e non è memorizzato nel DB. Se desideri impostarlo nel db, devi impostare 'billing_postcode' e' shipping_postcode' nella tabella 'wp_usermeta'. – Rao

+0

@Rao, questo è esattamente quello che voglio :-) Vorrei chiedere l'indirizzo di consegna sulla mia home page (per informare gli utenti in anticipo se non spedisco qui), e averlo già impostato nella pagina di Checkout . –

4

Grazie @rao! L'ho cercato per ore ... Sono stato in grado di prendere il tuo codice e usarlo per estrarre l'intero indirizzo dell'utente, così posso utilizzare ciascun campo dell'indirizzo per pre-compilare un modulo di indirizzo che sto creando altrove.

$fname = get_user_meta($current_user->ID, 'first_name', true); 
$lname = get_user_meta($current_user->ID, 'last_name', true); 
$address_1 = get_user_meta($current_user->ID, 'billing_address_1', true); 
$address_2 = get_user_meta($current_user->ID, 'billing_address_2', true); 
$city = get_user_meta($current_user->ID, 'billing_city', true); 
$postcode = get_user_meta($current_user->ID, 'billing_postcode', true); 

echo $fname . "<BR>"; 
echo $lname . "<BR>"; 
echo $address_1 . "<BR>"; 
echo $address_2 . "<BR>"; 
echo $city . "<BR>"; 
echo $postcode . "<BR>"; 
+0

So che è un vecchio post ma puoi anche accedere al nome dell'indirizzo di fatturazione utilizzando 'billing_first_name' e' billing_last_name', nel caso venga usato un nome diverso :) Dovrebbe essere applicato anche all'indirizzo di spedizione –