Attention !

Cet article contient du code PHP et est destiné aux développeurs. Nous fournissons ce code à titre de courtoisie, mais nous n'offrons pas de support pour les personnalisations de code ou le développement tiers.

Pour obtenir de l'aide supplémentaire, veuillez consulter le tutoriel de WPBeginner sur l'ajout de code personnalisé.

Ignorer

Envoi de métadonnées à Stripe Payments

Souhaitez-vous envoyer des métadonnées à Stripe lorsque les 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 vous montrerons l'extrait de code 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 devrez créer un nouveau formulaire de paiement ou modifier un formulaire existant pour accéder au constructeur de formulaires. Dans le constructeur de formulaires, ajoutez le champ Carte de crédit Stripe à votre formulaire.

Ajoutez le champ de carte de crédit Stripe à votre formulaire

Vous devrez également configurer votre formulaire pour accepter les paiements Stripe. Si vous avez besoin d'aide pour configurer Stripe sur votre formulaire, veuillez consulter cette documentation.

Ajout de l'extrait pour envoyer des métadonnées à Stripe

Il est maintenant temps d'ajouter l'extrait à votre site qui enverra les métadonnées lors du traitement des paiements Stripe.

Si vous avez besoin d'aide pour ajouter des extraits à votre site, veuillez consulter ce tutoriel.

Ajout pour les paiements uniques et les paiements d'abonnement 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 3, nous la récupérerons et l'enverrons à Stripe.

Le metadata[ 'key' ] = 'some value for single payment'; est également envoyé, mais au lieu de récupérer une valeur du formulaire que l'utilisateur a rempli, nous la définissons nous-mêmes dans le code.

Vous devrez vous souvenir de modifier chacun de ces éléments pour qu'ils correspondent à ce dont vous avez besoin dans votre extrait. Par exemple, vous devrez modifier l'ID de champ 3 pour qu'il corresponde à l'ID de champ que vous souhaitez envoyer, ainsi que le texte de some value for single payment.

Remarque : Si vous avez besoin d'aide pour trouver vos ID de champ ou si vous souhaitez cibler un formulaire spécifique et que vous avez besoin d'aide pour trouver l'ID du formulaire, veuillez consulter ce tutoriel.

Vous voyez maintenant les métadonnées envoyées à Stripe lors du traitement du paiement

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'abonnement uniquement (à l'exclusion des paiements uniques ou des paiements d'abonnement initiaux)

/**
 * 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

Ce sont les réponses à certaines des questions les plus fréquentes que nous recevons concernant 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 );
vous pouvez envoyer des métadonnées à Stripe avec plusieurs champs ainsi que pour un seul formulaire spécifique en utilisant cet extrait de code

Remarque : Assurez-vous de modifier les numéros d'ID de formulaire et de champ pour qu'ils correspondent à vos propres ID.

C'est tout ! Vous avez maintenant appris comment envoyer avec succès des métadonnées à Stripe depuis WPForms.

Ensuite, souhaitez-vous modifier les sous-libellés du champ Carte de crédit Stripe ? Assurez-vous de consulter notre guide pour savoir comment modifier les sous-libellés pour le champ Carte de crédit Stripe.

Référence d'action : wpforms_stripe_process_complete