Predisporre la possibilità di iscrizione alla newsletter del sito da parte di un sicuro cliente è fondamentale per l’attività di Email Marketing.
Vediamo come inserire una spunta sul checkout senza plugin.

Tutti coloro che gestiscono un eCommerce sanno quanto è importante allacciare e mantenere un canale comunicativo con i clienti che hanno già effettuato degli acquisti sul sito.
Sono clienti che hanno già testato la nostra efficienza, il nostro prodotto e sono certi che il nostro sia un sito affidabile.
Molti siti eCommerce non sfruttano fino in fondo i vantaggi di un rapporto dalle basi già solide, non inseriscono nelle loro liste di indirizzi per email marketing i nuovi clienti.
Certo, forse hanno un form di raccolta indirizzi email rivolto agli utenti, ovvero a chi naviga il sito ma non necessariamente acquista, ma non hanno uno strumento che possa renderli certi che l’utente che sta per terminare l’acquisto lascerà il suo indirizzo email in una lista.
Capita perchè spesso la piattaforma professionale di invio newsletter non mette a disposizione strumenti di integrazione con il Cms utilizzato.

checkbox inscrizione newsletter nel checkout di woocommerce
Posizionata fra la spunta per la privacy (obbligatoria) ed il pulsante per concludere l’ordine, la checkbox per l’iscrizione alla newsletter è pronta a ricevere preziose adesioni.

Se avete un eCommerce realizzato utilizzando WordPress con il plugin Woocommerce potreste rimediare a questa mancanza inserendo poche righe di codice nel file function.php del vostro tema.
L’azione che andrete ad inserire sulla pagina del checkout, mostrerà la checkbox di iscrizione e registrerà la preferenza di chi ha appena acquistato nel riepilogo ordine del vostro backend. Dovrete essere poi voi, manualmente, ad inserire indirizzo email ed altri eventuali dati nella vostra lista.

Individuato il file nella cartella del tema (meglio se utilizzate un tema child in modo che l’aggiornamento non vi sovrascriva le modifiche), inserire il codice seguente:

La prima parte di codice non fa altro che aggiungere la checkbox subito prima del pulsante di acquisto.
Come potete notare ho inserito anche un semplice ciclo if che imposta in italiano o in inglese la label. Il codice si riferisce alle variabili del plugin WPML.

/* inserisco la  checkbox newsletter nel checkout di woocommerce*/

add_action( ‘woocommerce_review_order_before_submit’, ‘iosonoweb_add_newsletter_ok’, 9 );

function iosonoweb_add_newsletter_ok() {

/* cambio lingua alla label nel caso utilizzi WPML */
if (ICL_LANGUAGE_CODE == “en”) {
   $label= “I wish to receive promotions, offers and news!”;
} else {
   $label= “Desidero ricevere promozioni, sconti e novità!”;
}

woocommerce_form_field( ‘newsletter_ok’, array(
‘type’ => ‘checkbox’,
‘class’ => array(‘form-row newsletter’),
‘label_class’ => array(‘woocommerce-form__label woocommerce-form__label-for-checkbox checkbox’),
‘input_class’ => array(‘woocommerce-form__input woocommerce-form__input-checkbox input-checkbox’),
‘required’ => false,
‘label’ => $label,
));

}

Adesso è necessario memorizzare la scelta dell’utente. Aggiungo all’order meta un campo in più chiamato “Iscrizione news”. Andrò poi a mostrarlo nei dati dell’ordine acquisito e sarà valorizzato 1 se l’utente ha scelto di ricevere le nostre comunicazioni di email marketing.

/**
* Aggiorno l’ordine con un campo in più (iscrizione newsletter)
*/
add_action( ‘woocommerce_checkout_update_order_meta’, ‘my_custom_checkout_field_update_order_meta’ );

function my_custom_checkout_field_update_order_meta( $order_id ) {
if ( ! empty( $_POST[‘newsletter_ok’] ) ) {
update_post_meta( $order_id, ‘Iscrizione newsletter’, sanitize_text_field( $_POST[‘newsletter_ok’] ) );
}
}

Come ultimo passaggio mi premuro di visualizzare il campo “iscrizione newsletter” fra i dati dell’ordine.

/**
* Mostro la scelta dell’utente nei dettagli dell’ordine.
*/
add_action( ‘woocommerce_admin_order_data_after_billing_address’, ‘my_custom_checkout_field_display_admin_order_meta’, 10, 1 );

function my_custom_checkout_field_display_admin_order_meta($order){
echo ‘<p><strong>’.__(‘Iscrizione newsletter’).’:</strong> ‘ . get_post_meta( $order->id, ‘Iscrizione newsletter’, true ) . ‘</p>’;
}

 

Privacy Preference Center