Riassunto AI
Desideri inviare metadati a Stripe quando i pagamenti vengono elaborati tramite il tuo modulo? Questo è particolarmente utile se desideri aggiungere alcuni tag che puoi identificare facilmente nei tuoi pagamenti Stripe.
In questo tutorial, ti mostreremo lo snippet PHP necessario per inviare metadati come parte del pagamento tramite WPForms.
Prima di iniziare, assicurati che WPForms sia installato e attivato sul tuo sito e che tu abbia verificato la tua licenza.
Creazione di un modulo di pagamento
Innanzitutto, dovrai creare un nuovo modulo di pagamento o modificare uno esistente per accedere al generatore di moduli. Nel generatore di moduli, procedi e aggiungi il campo Stripe Credit Card al tuo modulo.

Dovrai anche configurare il tuo modulo per accettare pagamenti Stripe. Se hai bisogno di assistenza nella configurazione di Stripe sul tuo modulo, ti preghiamo di consultare questa documentazione.
Aggiungere lo Snippet per Inviare Metadati a Stripe
Ora è il momento di aggiungere lo snippet al tuo sito che invierà i metadati quando verranno elaborati i pagamenti Stripe.
Se hai bisogno di assistenza nell'aggiungere snippet al tuo sito, consulta questo tutorial.
Aggiunta per Pagamenti Singoli e Pagamenti Iniziali di Abbonamento
/**
* 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 );
Nello snippet di codice sopra, stiamo inviando due forme di metadati. Uno è assegnato da un campo modulo specifico con $fields[3][ 'value' ]. Ciò significa che qualunque valore venga inserito nel campo modulo con ID 3, lo prenderemo e lo invieremo a Stripe.
Anche metadata[ 'key' ] = 'some value for single payment'; viene inviato, ma invece di prendere un valore dal modulo che l'utente ha compilato, lo stiamo impostando noi stessi nel codice.
Dovrai ricordarti di cambiare ciascuno di questi per corrispondere a ciò di cui hai bisogno nel tuo snippet. Ad esempio, dovrai cambiare l'ID del campo 3 per corrispondere all'ID del campo che desideri inviare, così come il testo di some value for single payment.
Nota: Se hai bisogno di aiuto per trovare i tuoi ID campo o se vuoi indirizzare un modulo specifico e hai bisogno di aiuto per trovare l'ID del modulo, ti preghiamo di consultare questo tutorial.

Aggiunta solo per Pagamenti Singoli
/**
* 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 );
Aggiunta solo per Pagamenti di Abbonamento (Esclusi Pagamenti Singoli o Pagamenti Iniziali di Abbonamento)
/**
* 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 );
Domande frequenti
Queste sono risposte ad alcune delle domande più frequenti sull'utilizzo dei metadati con i pagamenti Stripe.
D: Come posso inviare più campi e indirizzare un modulo specifico?
R: Per indirizzare un modulo e inviare più campi di metadati, usa lo snippet di codice qui sotto.
/**
* 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 );

Nota: Assicurati di cambiare i numeri degli ID modulo e campo per corrispondere ai tuoi ID.
Fatto! Ora hai imparato come inviare correttamente i metadati a Stripe da WPForms.
Successivamente, desideri modificare le sottolabel sul campo Stripe Credit Card? Assicurati di consultare la nostra guida per scoprire come modificare le sottolabel per il campo Stripe Credit Card.
Correlati
Riferimento azione: wpforms_stripe_process_complete