Souhaitez-vous envoyer des métadonnées à Stripe lorsque des paiements sont traités via votre formulaire ? Ceci est particulièrement utile si vous souhaitez ajouter des balises que vous pouvez facilement identifier dans vos paiements Stripe.
Dans ce tutoriel, nous allons vous montrer l'extrait PHP dont vous avez besoin pour envoyer des métadonnées dans le cadre du paiement via WPForms.
Avant de commencer, assurez-vous que WPForms est installé et activé sur votre site et que vous avez vérifié votre licence.
Création d'un formulaire de paiement
Tout d'abord, vous devez créer un nouveau formulaire de paiement ou modifier un formulaire existant pour accéder au générateur de formulaires. Dans le générateur de formulaires, ajoutez le champ Stripe Credit Card à votre formulaire.

Vous devrez également configurer votre formulaire pour qu'il accepte les paiements Stripe. Si vous avez besoin d'aide pour configurer Stripe sur votre formulaire, veuillez consulter cette documentation.
Ajouter l'extrait pour envoyer les métadonnées à Stripe
Il est maintenant temps d'ajouter le snippet à votre site qui enverra les métadonnées lorsque les paiements Stripe sont traités.
Si vous avez besoin d'aide pour ajouter des snippets à votre site, veuillez consulter ce tutoriel.
Ajout des paiements uniques et des abonnements initiaux
/**
* 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 );
Dans l'extrait de code ci-dessus, nous envoyons deux formes de métadonnées. L'une est attribuée à partir d'un champ de formulaire spécifique avec $fields[3][ 'value' ]
. Cela signifie que quelle que soit la valeur saisie dans le champ du formulaire dont l'ID est 3et nous l'enverrons à Stripe.
Le metadata[ 'key' ] = 'some value for single payment';
est également envoyée, mais plutôt que de récupérer une valeur du formulaire rempli par l'utilisateur, nous la définissons nous-mêmes dans le code.
Vous devrez vous rappeler de modifier chacun d'eux pour qu'il corresponde à ce dont vous avez besoin dans votre extrait. Par exemple, vous devrez modifier le champ ID 3 pour qu'il corresponde au champ ID que vous souhaitez envoyer, ainsi que le texte d'une certaine valeur pour le paiement unique.
Remarque : si vous avez besoin d'aide pour trouver les identifiants de vos champs ou si vous souhaitez cibler un formulaire spécifique et avez besoin d'aide pour trouver l'identifiant du formulaire, veuillez consulter ce tutoriel.

Ajout pour les paiements uniques uniquement
/**
* 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 );
Ajout pour les paiements d'abonnements uniquement (à l'exclusion des paiements uniques ou des paiements initiaux d'abonnements)
/**
* 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 );
Questions fréquemment posées
Voici les réponses aux questions les plus fréquentes sur l'utilisation des métadonnées avec les paiements Stripe.
Q : Comment puis-je envoyer plusieurs champs et cibler un formulaire spécifique ?
R : Pour cibler un formulaire et envoyer plusieurs champs de métadonnées, utilisez l'extrait de code ci-dessous.
/**
* 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 );

Remarque : Veillez à modifier les numéros d'identification des formulaires et des champs pour qu'ils correspondent à vos propres numéros d'identification.
Voilà, c'est fait ! Vous avez maintenant appris comment envoyer avec succès des métadonnées à Stripe depuis WPForms.
Ensuite, vous souhaitez modifier les sous-étiquettes du champ Carte de crédit Stripe ? Consultez notre guide pour savoir comment modifier les sous-étiquettes du champ Carte de crédit Stripe.
En rapport
Référence de l'action : wpforms_stripe_process_complete