Resumo de IA
Você gostaria de enviar metadados para o Stripe quando os pagamentos forem processados através do seu formulário? Isso é particularmente útil se você quiser adicionar algumas tags que possa identificar facilmente em seus pagamentos do Stripe.
Neste tutorial, mostraremos o trecho de PHP que você precisa para enviar metadados como parte do pagamento através do WPForms.
Antes de começar, certifique-se de que o WPForms está instalado e ativado em seu site e que você verificou sua licença.
Criando um Formulário de Pagamento
Primeiro, você precisará criar um novo formulário de pagamento ou editar um existente para acessar o construtor de formulários. No construtor de formulários, prossiga e adicione o campo Stripe Credit Card ao seu formulário.

Você também precisará configurar seu formulário para aceitar pagamentos do Stripe. Se precisar de ajuda para configurar o Stripe em seu formulário, revise esta documentação.
Adicionando o Trecho para Enviar Metadados para o Stripe
Agora é hora de adicionar o trecho ao seu site que enviará os metadados quando os pagamentos do Stripe forem processados.
Se precisar de ajuda para adicionar trechos ao seu site, consulte este tutorial.
Adicionando para Pagamentos Únicos e Pagamentos Iniciais de Assinatura
/**
* Send metadata to Stripe when payment is processed for single payments and initial subscription payments.
*
* @link https://wpforms.com/developers/how-to-send-metadata-to-stripe-payments/
*/
function wpf_stripe_single_payment_and_initial_subscription_payment_custom_metadata( $fields, $form_data, $entry_id, $payment ) {
if ( ! ( $payment instanceof \WPForms\Vendor\Stripe\PaymentIntent ) && ! ( $payment instanceof \WPForms\Vendor\Stripe\Charge ) ) {
return;
}
// Check if the field with id equals 3 value exists and assign it.
if ( isset( $fields[3][ 'value' ] ) ) {
$payment->metadata[ 'something' ] = $fields[3][ 'value' ];
}
// Assign fixed value (no additional checks required).
$payment->metadata[ 'key' ] = 'some value for single payment';
$payment->save();
}
add_action( 'wpforms_stripe_process_complete', 'wpf_stripe_single_payment_and_initial_subscription_payment_custom_metadata', 10, 4 );
No trecho de código acima, estamos enviando duas formas de metadados. Uma é atribuída a partir de um campo de formulário específico com $fields[3][ 'value' ]. Isso significa que qualquer valor inserido no campo do formulário com o ID 3 será capturado e enviado ao Stripe.
O metadata[ 'key' ] = 'some value for single payment'; também está sendo enviado, mas em vez de capturar algum valor do formulário que o usuário preencheu, estamos definindo isso no próprio código.
Você precisará se lembrar de alterar cada um deles para corresponder ao que você precisa em seu trecho. Por exemplo, você precisará alterar o ID do campo 3 para corresponder ao ID do campo que deseja enviar, bem como o texto de some value for single payment.
Observação: Se precisar de ajuda para encontrar seus IDs de campo ou se quiser direcionar um formulário específico e precisar de ajuda para encontrar o ID do formulário, revise este tutorial.

Adicionando Apenas para Pagamentos Únicos
/**
* Send metadata to Stripe when payment is processed for single payments only.
*
* @link https://wpforms.com/developers/how-to-send-metadata-to-stripe-payments/
*/
function wpf_stripe_single_payment_custom_metadata( $fields, $form_data, $entry_id, $payment, $subscription ) {
if ( ! empty( $subscription->id ) ) {
return;
}
if ( ! ( $payment instanceof \WPForms\Vendor\Stripe\PaymentIntent ) && ! ( $payment instanceof \WPForms\Vendor\Stripe\Charge ) ) {
return;
}
// Check if the field with id equals 3 value exists and assign it.
if ( isset( $fields[3][ 'value' ] ) ) {
$payment->metadata[ 'something' ] = $fields[3][ 'value' ];
}
// Assign fixed value (no additional checks required).
$payment->metadata[ 'key' ] = 'some value for single payment';
$payment->save();
}
add_action( 'wpforms_stripe_process_complete', 'wpf_stripe_single_payment_custom_metadata', 10, 5 );
Adicionando Apenas para Pagamentos de Assinatura (Excluindo Pagamentos Únicos ou Pagamentos Iniciais de Assinatura)
/**
* Send metadata to Stripe when payment is processed for subscription payments (excluding single payments and initial subscription payments).
*
* @link https://wpforms.com/developers/how-to-send-metadata-to-stripe-payments/
*/
function wpf_stripe_subscription_custom_metadata( $fields, $form_data, $entry_id, $payment, $subscription ) {
if ( ! ( $subscription instanceof \WPForms\Vendor\Stripe\Subscription ) ) {
return;
}
// Check if the field with id equals 3 value exists and assign it.
if ( isset( $fields[3][ 'value' ] ) ) {
$subscription->metadata[ 'something' ] = $fields[3][ 'value' ];
}
// Assign fixed value (no additional checks required).
$subscription->metadata[ 'key' ] = 'some value for subscription';
$subscription->save();
}
add_action( 'wpforms_stripe_process_complete', 'wpf_stripe_subscription_custom_metadata', 10, 5 );
Perguntas Frequentes
Estas são respostas para algumas das principais perguntas que vemos sobre o uso de metadados com pagamentos do Stripe.
P: Como posso enviar vários campos e direcionar um formulário específico?
R: Para direcionar um formulário e enviar vários campos de metadados, use o trecho de código abaixo.
/**
* Send metadata to Stripe when payment is processed based on form ID.
*
* @link https://wpforms.com/developers/how-to-send-metadata-to-stripe-payments/
*/
function wpf_stripe_single_payment_and_initial_subscription_payment_custom_metadata_multiple( $fields, $form_data, $entry_id, $payment ) {
// Only run this code on form ID 2614
if ( absint( $form_data[ 'id' ] ) !== 2614 ) {
return;
}
if ( ! ( $payment instanceof \WPForms\Vendor\Stripe\PaymentIntent ) && ! ( $payment instanceof \WPForms\Vendor\Stripe\Charge ) ) {
return;
}
// Capture the value listed in the field ID 0
if ( isset( $fields[0][ 'value' ] ) ) {
$payment->metadata[ 'Name' ] = $fields[0][ 'value' ];
}
// Capture the value listed in the field ID 1
if ( isset( $fields[1][ 'value' ] ) ) {
$payment->metadata[ 'Email' ] = $fields[1][ 'value' ];
}
// Capture the value listed in the field ID 2
if ( isset( $fields[2][ 'value' ] ) ) {
$payment->metadata[ 'Phone' ] = $fields[2][ 'value' ];
}
// Capture the value listed in the field ID 3
if ( isset( $fields[3][ 'value' ] ) ) {
$payment->metadata[ 'Address' ] = $fields[3][ 'value' ];
}
$payment->save();
}
add_action( 'wpforms_stripe_process_complete', 'wpf_stripe_single_payment_and_initial_subscription_payment_custom_metadata_multiple', 10, 4 );

Observação: Certifique-se de alterar os números dos IDs do formulário e dos campos para corresponder aos seus próprios IDs.
É isso! Você aprendeu como enviar metadados com sucesso para o Stripe a partir do WPForms.
Em seguida, você gostaria de alterar os subrótulos no campo Stripe Credit Card? Certifique-se de verificar nosso guia para saber como alterar subrótulos para o campo Stripe Credit Card.
Relacionado
Referência de Ação: wpforms_stripe_process_complete