<html lang="pt-br" dir="ltr"><head></head><body># Campos Personalizados de Checkout

Adicionar campos personalizados ao formulário de checkout é fácil com apenas algumas funções. O código abaixo permitirá que você adicione dois campos adicionais, um para Telefone e outro para Empresa.

**Observação: criamos configurações para [personalizar os campos de endereço de checkout](https://easydigitaldownloads.com/docs/customizing-checkout-address-fields/ "Personalizar Campos de Endereço de Checkout") **e organizá-los como desejar.** Alternativamente, também temos uma extensão oficial que permite criar campos de checkout personalizados.** [Ver extensão Checkout Fields Manager](https://easydigitaldownloads.com/extensions/checkout-fields-manager/).

O código abaixo adiciona um campo de Número de Telefone ao formulário de checkout.

```
&lt;?php
/**
 * Adicionando um campo personalizado à tela de checkout
 *
 * Abrange:
 *
 * Adicionando um campo de número de telefone ao checkout
 * Tornando o campo de número de telefone obrigatório
 * Definindo um erro quando o campo de número de telefone não é preenchido
 * Armazenando o número de telefone nos metadados do pagamento
 * Adicionando o número de telefone do cliente à tela "detalhes do pedido"
 * Adicionando uma nova tag de e-mail {phone} para que você possa exibir o número de telefone nas notificações por e-mail (recibo de compra padrão ou notificação do administrador)
 */

/**
 * Exibir campo de número de telefone no checkout
 * Adicione mais aqui se precisar
 */
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( 'Número de Telefone', '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( 'Digite seu número de telefone para que possamos entrar em contato com você.', '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( 'Número de Telefone', 'easy-digital-downloads' ); ?&gt;"&gt;
    &lt;/p&gt;
 &lt;?php
}
add_action( 'edd_purchase_form_user_info_fields', 'sumobi_edd_display_checkout_fields' );

/**
 * Tornar o número de telefone obrigatório
 * Adicione mais campos obrigatórios aqui se precisar
 */
function sumobi_edd_required_checkout_fields( $required_fields ) {
    $required_fields['edd_phone'] = array(
        'error_id' =&gt; 'invalid_phone',
        'error_message' =&gt; 'Por favor, insira um número de telefone válido'
    );

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

/**
 * Definir erro se o campo de número de telefone estiver vazio
 * Você pode fazer verificações de erro adicionais aqui, se necessário
 */
function sumobi_edd_validate_checkout_fields( $valid_data, $data ) {
    if ( empty( $data['edd_phone'] ) ) {
        edd_set_error( 'invalid_phone', 'Por favor, insira seu número de telefone.' );
    }
}
add_action( 'edd_checkout_error_checks', 'sumobi_edd_validate_checkout_fields', 10, 2 );

/**
 * Armazenar os dados do campo personalizado nos metadados do pedido do 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 );

/**
 * Adicionar o número de telefone à página "Ver detalhes do pedido"
 */
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;Telefone: &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 );

/**
 * Adicionar uma tag {phone} para uso no e-mail de recibo de compra ou nos e-mails de notificação do administrador
 */
function sumobi_edd_add_email_tag() {

	edd_add_email_tag( 'phone', 'Número de telefone do cliente', 'sumobi_edd_email_tag_phone' );
}
add_action( 'edd_add_email_tags', 'sumobi_edd_add_email_tag' );

/**
 * A tag de e-mail {phone}
 */
function sumobi_edd_email_tag_phone( $payment_id ) {
	$phone = edd_get_order_meta( $payment_id, 'phone', true );
	return $phone;
}
```

O formulário de checkout ficará semelhante a isto:

![](https://easydigitaldownloads.com/wp-content/uploads/2022/07/6184cc82374c2.png)E então, ao visualizar a transação em Histórico de Pagamentos de Downloads, você verá uma caixa de metadados semelhante a esta:

![](https://easydigitaldownloads.com/wp-content/uploads/2022/07/6184cc8278c1b.png)Este código é simplesmente um exemplo e pode ser ajustado como desejar para adicionar ainda mais campos.



Para adicionar este exemplo de código ao seu site, recomendamos usar

[Pluginception](https://wordpress.org/plugins/pluginception/) para criar um novo plugin personalizado e colar o código no novo plugin.</body></html>