<html lang="it-it" dir="ltr"><head></head><body># Campi di Checkout Personalizzati

Aggiungere campi personalizzati al modulo di checkout è facile con un paio di funzioni. Il codice seguente ti permetterà di aggiungere due campi aggiuntivi, uno per il Telefono e uno per l'Azienda.

**Nota: abbiamo impostazioni integrate per [personalizzare i campi dell'indirizzo di checkout](https://easydigitaldownloads.com/docs/customizing-checkout-address-fields/ "Personalizza i campi dell'indirizzo di checkout") **e organizzarli come preferisci.** In alternativa, abbiamo anche un'estensione ufficiale che ti consente di creare campi di checkout personalizzati.** [Visualizza l'estensione Checkout Fields Manager](https://easydigitaldownloads.com/extensions/checkout-fields-manager/).

Il codice seguente aggiunge un campo Numero di Telefono al modulo di checkout.

```
&lt;?php
/**
 * Aggiunta di un campo personalizzato alla schermata di checkout
 *
 * Copre:
 *
 * Aggiunta di un campo numero di telefono al checkout
 * Rendere obbligatorio il campo numero di telefono
 * Impostazione di un errore quando il campo numero di telefono non è compilato
 * Archiviazione del numero di telefono nei metadati del pagamento
 * Aggiunta del numero di telefono del cliente alla schermata "dettagli ordine visualizzati"
 * Aggiunta di un nuovo tag email {phone} in modo da poter visualizzare il numero di telefono nelle notifiche email (ricevuta di acquisto standard o notifica amministratore)
 */

/**
 * Visualizza il campo numero di telefono al checkout
 * Aggiungi altro qui se necessario
 */
function sumobi_edd_display_checkout_fields() {
?&gt;
    &lt;p id="edd-phone-wrap"&gt;
        &lt;label class="edd-label" for="edd-phone"&gt;
		&lt;?php esc_html_e( 'Numero di Telefono', 'easy-digital-downloads' ); ?&gt;
		&lt;?php if ( edd_field_is_required( 'edd_phone' ) ) : ?&gt;
			&lt;span class="edd-required-indicator"&gt;*&lt;/span&gt;
		&lt;?php endif; ?&gt;
		&lt;/label&gt;
        &lt;span class="edd-description" id="edd-phone-description"&gt;&lt;?php esc_html_e( 'Inserisci il tuo numero di telefono in modo che possiamo contattarti.', 'easy-digital-downloads' ); ?&gt;&lt;/span&gt;
        &lt;input class="edd_phone edd-input&lt;?php if ( edd_field_is_required( 'edd_phone' ) ) { echo ' required'; } ?&gt;" type="text" name="edd_phone" id="edd-phone" placeholder="&lt;?php _e( 'Numero di Telefono', 'easy-digital-downloads' ); ?&gt;"&gt;
    &lt;/p&gt;
 &lt;?php
}
add_action( 'edd_purchase_form_user_info_fields', 'sumobi_edd_display_checkout_fields' );

/**
 * Rende obbligatorio il numero di telefono
 * Aggiungi altri campi obbligatori qui se necessario
 */
function sumobi_edd_required_checkout_fields( $required_fields ) {
    $required_fields['edd_phone'] = array(
        'error_id' =&gt; 'invalid_phone',
        'error_message' =&gt; 'Inserisci un numero di telefono valido'
    );

    return $required_fields;
}
add_filter( 'edd_purchase_form_required_fields', 'sumobi_edd_required_checkout_fields' );

/**
 * Imposta un errore se il campo numero di telefono è vuoto
 * Puoi fare ulteriori controlli di errore qui se necessario
 */
function sumobi_edd_validate_checkout_fields( $valid_data, $data ) {
    if ( empty( $data['edd_phone'] ) ) {
        edd_set_error( 'invalid_phone', 'Inserisci il tuo numero di telefono.' );
    }
}
add_action( 'edd_checkout_error_checks', 'sumobi_edd_validate_checkout_fields', 10, 2 );

/**
 * Archivia i dati del campo personalizzato nei metadati dell'ordine di EDD
 */
function sumobi_edd_store_custom_fields( $order_id, $order_data ) {

	if ( 0 !== did_action('edd_pre_process_purchase') ) {
		$phone = isset( $_POST['edd_phone'] ) ? sanitize_text_field( $_POST['edd_phone'] ) : '';
		edd_add_order_meta( $order_id, 'phone', $phone );
	}

}
add_action( 'edd_built_order', 'sumobi_edd_store_custom_fields', 10, 2 );

/**
 * Aggiunge il numero di telefono alla pagina "Visualizza dettagli ordine"
 */
function sumobi_edd_view_order_details( $order_id ) {
	$phone = edd_get_order_meta( $order_id, 'phone', true );
?&gt;
	&lt;div class="column-container"&gt;
		&lt;div class="column"&gt;
			&lt;strong&gt;Telefono: &lt;/strong&gt;
			&lt;?php echo $phone; ?&gt;
		&lt;/div&gt;
	&lt;/div&gt;
 &lt;?php
}
add_action( 'edd_payment_view_details', 'sumobi_edd_view_order_details', 10, 1 );

/**
 * Aggiunge un tag {phone} da utilizzare nelle email di ricevuta di acquisto o nelle email di notifica amministratore
 */
function sumobi_edd_add_email_tag() {

	edd_add_email_tag( 'phone', 'Numero di telefono del cliente', 'sumobi_edd_email_tag_phone' );
}
add_action( 'edd_add_email_tags', 'sumobi_edd_add_email_tag' );

/**
 * Il tag email {phone}
 */
function sumobi_edd_email_tag_phone( $payment_id ) {
	$phone = edd_get_order_meta( $payment_id, 'phone', true );
	return $phone;
}
```

Il modulo di checkout apparirà quindi simile a questo:

![](https://easydigitaldownloads.com/wp-content/uploads/2022/07/6184cc82374c2.png)E poi, guardando la transazione nella Cronologia pagamenti download, vedrai una meta box simile a questa:

![](https://easydigitaldownloads.com/wp-content/uploads/2022/07/6184cc8278c1b.png)Questo codice è inteso semplicemente come esempio e può essere modificato come desideri per aggiungere ancora più campi.



Per aggiungere questo esempio di codice al tuo sito, ti consigliamo di utilizzare

[Pluginception](https://wordpress.org/plugins/pluginception/) per creare un nuovo plugin personalizzato e incollare il codice nel nuovo plugin.</body></html>