Achtung!

Dieser Artikel enthält PHP-Code und richtet sich an Entwickler. Wir stellen diesen Code als Service zur Verfügung, bieten jedoch keine Unterstützung für Codeanpassungen oder die Entwicklung durch Dritte.

Für zusätzliche Hilfe siehe das Tutorial von WPBeginner zum Hinzufügen von benutzerdefiniertem Code.

Schließen

Metadaten an Stripe Payments senden

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

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


Stellen Sie vor Beginn sicher, dass WPForms auf Ihrer Website installiert und aktiviert ist und dass Sie Ihre Lizenz verifiziert haben.

Erstellung eines Zahlungsformulars

Zuerst müssen Sie ein neues Zahlungsformular erstellen oder ein bestehendes bearbeiten, um auf den Formular-Generator zuzugreifen. Fügen Sie im Formular-Generator das Feld Stripe-Kreditkarte zu Ihrem Formular hinzu.

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

Sie müssen Ihr Formular auch so einrichten, dass es Stripe-Zahlungen akzeptiert. Wenn Sie Hilfe bei der Einrichtung von Stripe in Ihrem Formular benötigen, lesen Sie bitte diese Dokumentation.

Hinzufügen des Snippets zum Senden von Metadaten an Stripe

Jetzt ist es an der Zeit, den Snippet zu Ihrer Website hinzuzufügen, der die Metadaten sendet, wenn Stripe-Zahlungen abgewickelt werden.

Wenn Sie Hilfe beim Hinzufügen von Snippets zu Ihrer Website benötigen, sehen Sie sich dieses Tutorial an.

Hinzufügen für einzelne Zahlungen und anfängliche 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 );

Im obigen Code-Snippet senden wir zwei Arten von Metadaten. Eines wird aus einem bestimmten Formularfeld mit $fields[3][ 'value' ] zugewiesen. Das bedeutet, dass wir welchen Wert auch immer in das Formularfeld mit der ID 3 eingegeben wird, greifen und ihn an Stripe senden.

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

Sie müssen sich daran erinnern, jede dieser Angaben zu ändern, damit sie zu dem passen, was Sie in Ihrem Snippet benötigen. Zum Beispiel müssen Sie die Feld-ID 3 ändern, um die Feld-ID anzugeben, die Sie senden möchten, sowie den Text von some value for single payment.

Hinweis: Wenn Sie Hilfe benötigen, wo Sie Ihre Feld-IDs finden, oder wenn Sie ein bestimmtes Formular ansprechen möchten und Hilfe beim Finden der Formular-ID benötigen, lesen Sie bitte dieses Tutorial.

Sie sehen nun die an Stripe gesendeten Metadaten, wenn die Zahlung verarbeitet wird

Hinzufügen nur für einzelne Zahlungen

/**
 * 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 Abonnementzahlungen (ausschließlich einzelner Zahlungen oder anfänglicher Abonnementzahlungen)

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

Dies sind Antworten auf einige der häufigsten Fragen, die wir zur Verwendung von Metadaten mit Stripe-Zahlungen erhalten.

F: Wie kann ich mehrere Felder senden und ein bestimmtes Formular ansprechen?

A: Um ein Formular anzusprechen und mehrere Metadatenfelder zu senden, verwenden Sie den folgenden Code-Snippet.

/**
 * 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 mit mehreren Feldern sowie für nur ein bestimmtes Formular mit diesem Code-Snippet an Stripe senden

Hinweis: Stellen Sie sicher, dass Sie die Formular- und Feld-ID-Nummern ändern, um Ihren eigenen IDs zu entsprechen.

Das ist alles! Sie haben jetzt gelernt, wie Sie Metadaten erfolgreich von WPForms an Stripe senden.

Möchten Sie als Nächstes die Unterbeschriftungen für das Stripe-Kreditkartenfeld ändern? Lesen Sie unbedingt unseren Leitfaden, um zu erfahren, wie Sie Unterbeschriftungen für das Stripe-Kreditkartenfeld ändern.

Aktionsreferenz: wpforms_stripe_process_complete