Aggiungi campo di testo personalizzato

Se vendi prodotti personalizzabili nel tuo negozio online con una frase scelta dal cliente, questo frammento di codice è ciò di cui hai bisogno. Con questo codice puoi aggiungere una casella in cui i tuoi clienti possono inserire il loro testo personalizzato.

PHP
/*
* Snippet Name:     Aggiungi campo di testo personalizzato.
* Snippet Author:   Matteo De Maria
* Version:          1.0.0
*/

// Crea il campo di testo
add_action( 'woocommerce_before_add_to_cart_button', 'dmm_custom_product_text_field' );
function dmm_custom_product_text_field() {
   global $product;
   echo '<div class="dmm_custom_product_text_field">
      <label for="custom-text">Personalizza il prodotto</label><br>
      <input type="text" id="custom-text" name="custom-text" placeholder="Scrivi qui il tuo testo personalizzato">
   </div>';
}

// Salva il testo
add_filter( 'woocommerce_add_cart_item_data', 'dmm_save_custom_text_to_cart_data', 10, 3 );
function dmm_save_custom_text_to_cart_data( $cart_item_data, $product_id, $variation_id ) {
   if ( !empty( $_POST['custom-text'] ) ) {
      $cart_item_data['custom-text'] = sanitize_text_field( $_POST['custom-text']);
   }
   return $cart_item_data;

}

// Mostra il testo nel carrello, checkout e thankyou page
add_filter( 'woocommerce_get_item_data', 'dmm_show_custom_field_data_under_product_name', 10, 2 );
function dmm_show_custom_field_data_under_product_name( $item_data, $cart_item ) {
   if ( !empty( $cart_item['custom-text'] ) ) {
      $item_data[] = array(
         'key'     => 'Testo personalizzato',
         'value'   => $cart_item['custom-text'],
      );
   }
   return $item_data;
}

// Salva il testo nell'ordine
add_action( 'woocommerce_checkout_create_order_line_item', 'dmm_add_custom_field_data_as_order_meta', 10, 4 );
function dmm_add_custom_field_data_as_order_meta( $item, $cart_item_key, $values, $order ) {
   if ( !empty( $values['custom-text'] ) ) {
      $item->add_meta_data( 'Testo personalizzato:', $values['custom-text'] );
   }
}

Copia il codice nel file functions.php del tuo tema child attivo o utilizza il plugin Code Snippets.

Lascia un commento

I commenti non pertinenti allo snippet o offensivi non verranno approvati.

Se desideri condividere del codice, per favore fallo in questo modo: [php]il tuo codice[/php].

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

DMM WEB DESIGN
Questo sito utilizza cookie tecnici e di profilazione. Cliccando su accetta si autorizzano tutti i cookie di profilazione. Cliccando su rifiuta o la X si rifiutano tutti i cookie di profilazione. Cliccando su personalizza è possibile selezionare quali cookie di profilazione attivare.