Senden von Metadaten an Stripe Payments

Möchten Sie Metadaten an Stripe senden, wenn Zahlungen über Ihr Formular verarbeitet werden? Dies ist besonders hilfreich, wenn Sie einige Tags hinzufügen möchten, die Sie bei Ihren Stripe-Zahlungen leicht identifizieren können.

In diesem Tutorial zeigen wir Ihnen das PHP-Snippet, das Sie benötigen, um Metadaten als Teil der Zahlung über WPForms zu senden.


Bevor Sie beginnen, stellen Sie sicher, dass WPForms auf Ihrer Website installiert und aktiviert ist und dass Sie Ihre Lizenz überprüft haben.

Erstellen eines Zahlungsformulars

Zunächst müssen Sie ein neues Zahlungsformular erstellen oder ein bestehendes bearbeiten, um Zugriff auf den Formularersteller zu erhalten. Fügen Sie im Formularersteller das Feld " Stripe Credit Card" zu Ihrem Formular hinzu.

Fügen Sie das Stripe-Kreditkartenfeld zu Ihrem Formular hinzu

Außerdem müssen Sie Ihr Formular für die Annahme von Stripe-Zahlungen einrichten. Wenn Sie Hilfe bei der Einrichtung von Stripe für Ihr Formular benötigen, lesen Sie bitte diese Dokumentation.

Hinzufügen des Snippets zum Senden von Metadaten an Stripe

Jetzt ist es an der Zeit, das Snippet zu Ihrer Website hinzuzufügen, das die Metadaten übermittelt, wenn Stripe-Zahlungen verarbeitet werden.

Wenn Sie Hilfe beim Hinzufügen von Snippets zu Ihrer Website benötigen, lesen Sie bitte diese Anleitung.

Hinzufügung sowohl für Einmalzahlungen als auch für erste Abonnementzahlungen

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

In dem obigen Codeschnipsel werden zwei Formen von Metadaten übermittelt. Eine wird von einem bestimmten Formularfeld mit $fields[3][ 'value' ]. Das bedeutet, dass jeder Wert, der in das Formularfeld eingegeben wird, das die ID von 3wird dies erfasst und an Stripe gesendet.

Die metadata[ 'key' ] = 'some value for single payment'; wird ebenfalls gesendet, aber anstatt einen Wert aus dem vom Benutzer ausgefüllten Formular zu übernehmen, setzen wir diesen Wert im Code selbst.

Sie müssen daran denken, jedes dieser Felder so zu ändern, dass es dem entspricht, was Sie in Ihrem Snippet benötigen. Beispielsweise müssen Sie die Feld-ID 3 so ändern, dass sie mit der Feld-ID übereinstimmt, die Sie senden möchten, sowie den Text eines Wertes für die Einzelzahlung.

Hinweis: Wenn Sie Hilfe benötigen, wo Sie Ihre Feld-IDs finden können, oder wenn Sie ein bestimmtes Formular anvisieren möchten und Hilfe bei der Suche nach der Formular-ID benötigen, lesen Sie bitte dieses Tutorial.

Sie sehen jetzt die Metadaten, die an Stripe gesendet werden, wenn die Zahlung verarbeitet wird

Hinzufügen nur für Einzelzahlungen

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

Hinzufügen nur für Abonnement-Zahlungen (ausgenommen Einmalzahlungen oder erste Abonnement-Zahlungen)

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

Häufig gestellte Fragen

Hier finden Sie Antworten auf einige der häufigsten Fragen, die wir zur Verwendung von Metadaten bei Stripe-Zahlungen erhalten.

F: Wie kann ich mehrere Felder übermitteln und ein bestimmtes Formular anvisieren?

A: Um ein Formular anzusteuern und mehrere Felder mit Metadaten zu senden, verwenden Sie den folgenden Codeausschnitt.

/**
 * 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 );
Sie können Metadaten sowohl mit mehreren Feldern als auch nur für ein bestimmtes Formular an Stripe senden, indem Sie diesen Codeschnipsel verwenden

Hinweis: Achten Sie darauf, die ID-Nummern von Formularen und Feldern so zu ändern, dass sie Ihren eigenen IDs entsprechen.

Das war's! Sie haben nun gelernt, wie Sie erfolgreich Metadaten von WPForms an Stripe senden können.

Möchten Sie als nächstes die Unteretiketten für das Feld Stripe Credit Card ändern? In unserer Anleitung erfahren Sie , wie Sie die Unteretiketten für das Stripe-Kreditkartenfeld ändern können.

Aktionsreferenz: wpforms_stripe_process_complete