// 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.