Invio di metadati a Stripe Payments

Volete inviare metadati a Stripe quando i pagamenti vengono elaborati attraverso il vostro modulo? Questo è particolarmente utile se desiderate aggiungere alcuni tag che possano essere facilmente identificati nei vostri pagamenti con Stripe.

In questo tutorial, vi mostreremo lo snippet PHP necessario per inviare i metadati come parte del pagamento attraverso WPForms.


Prima di iniziare, assicuratevi che WPForms sia installato e attivato sul vostro sito e che abbiate verificato la vostra licenza.

Creazione di un modulo di pagamento

Per prima cosa, è necessario creare un nuovo modulo di pagamento o modificarne uno esistente per accedere al costruttore di moduli. Nel costruttore di moduli, aggiungere il campo Carta di credito Stripe al modulo.

Aggiungete il campo della carta di credito Stripe al vostro modulo

È inoltre necessario impostare il modulo per accettare i pagamenti con Stripe. Se avete bisogno di assistenza per impostare Stripe sul vostro modulo, consultate questa documentazione.

Aggiunta dello snippet per inviare i metadati a Stripe

Ora è il momento di aggiungere al sito lo snippet che invierà i metadati quando i pagamenti con Stripe vengono elaborati.

Se avete bisogno di assistenza per aggiungere gli snippet al vostro sito, consultate questo tutorial.

Aggiunta sia per i pagamenti singoli che per i pagamenti dell'abbonamento iniziale

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

Nel frammento di codice sopra riportato, stiamo inviando due forme di metadati. Uno è assegnato da uno specifico campo del modulo con $fields[3][ 'value' ]. Ciò significa che qualsiasi valore inserito nel campo del modulo che ha l'ID di 3, lo prenderemo e lo invieremo a Stripe.

Il metadata[ 'key' ] = 'some value for single payment'; ma invece di prendere un valore dal modulo compilato dall'utente, lo impostiamo noi stessi nel codice.

È necessario ricordarsi di modificare ciascuno di essi in modo che corrisponda a ciò che serve nel proprio snippet. Ad esempio, è necessario modificare l'ID del campo 3 in modo che corrisponda all'ID del campo che si desidera inviare, nonché il testo di un valore per il pagamento singolo.

Nota: se avete bisogno di aiuto per trovare gli ID dei campi o se volete indirizzare un modulo specifico e avete bisogno di aiuto per trovare l'ID del modulo, consultate questa esercitazione.

Ora si vedono i metadati inviati a Stripe quando il pagamento viene elaborato.

Aggiunta solo per i 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 i pagamenti dell'abbonamento (esclusi i pagamenti singoli o i pagamenti iniziali dell'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 le 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 puntare a un modulo e inviare più campi di metadati, utilizzare il frammento di codice riportato di seguito.

/**
 * 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 );
è possibile inviare metadati a stripe con più campi o solo per un modulo specifico utilizzando questo frammento di codice

Nota: assicurarsi di modificare i numeri di ID del modulo e del campo in modo che corrispondano ai propri ID.

Ecco fatto! Ora avete imparato come inviare con successo i metadati a Stripe da WPForms.

Successivamente, si desidera modificare le sottoetichette del campo Carta di credito Stripe? Consultate la nostra guida per sapere come modificare le sottoetichette del campo Carta di credito Stripe.

Riferimento azione: wpforms_stripe_process_complete