Zurück zum Blog

So füllen Sie das Feld für die Rechnungs-E-Mail auf der WooCommerce-Checkout-Seite automatisch mit dem woocommerce_checkout_get_value-Filter

2023-03-122 Minuten Lesezeit

Der woocommerce_checkout_get_value-Filter ist ein Filter, der vom WooCommerce-Plugin für WordPress bereitgestellt wird. Dieser Filter ermöglicht es Ihnen, den Wert eines Checkout-Feldes zu ändern, bevor es dem Benutzer während des Checkout-Prozesses angezeigt wird.

Der woocommerce_checkout_get_value-Filter akzeptiert zwei Parameter:

  1. $value (mixed): Der aktuelle Wert des Checkout-Feldes.
  2. $input (string): Der Name des Checkout-Feldes.
/**
 * Filter zum Ändern der Checkout-Feldwerte.
 * @param $value
 * @param $input
 * @return mixed|string
 */
function filter_woocommerce_checkout_get_value( $value, $input ) {
    // wenn das Feld das Rechnungs-E-Mail-Feld ist
    if ( 'billing_email' === $input ) {
        $current_user = wp_get_current_user();
	// wenn der aktuelle Benutzer angemeldet ist, erzwingen Sie, dass die E-Mail die E-Mail des aktuellen Benutzers ist
	if ( $current_user->ID ) {
	    // Holen Sie sich die Benutzer-E-Mail
	    $value = $current_user->user_email;
	}
    }

    return $value;
}
add_filter( 'woocommerce_checkout_get_value', 'filter_woocommerce_checkout_get_value', 10, 2 );

Im obigen Codeausschnitt prüfen wir, ob das aktuelle Checkout-Feld das Feld „billing_email“ ist. Wenn ja, ruft die Funktion die E-Mail-Adresse des aktuell angemeldeten Benutzers ab und setzt sie als Wert für das Feld „billing_email“. Für Gastbenutzer folgt sie dem Standardprozess, ihnen die Eingabe des Feldes für die Rechnungs-E-Mail zu ermöglichen.

Dies geschieht, um sicherzustellen, dass die E-Mail-Adresse des Benutzers korrekt mit der Bestellung verknüpft ist. Wenn Sie das Rechnungsfeld ausblenden und/oder schreibgeschützt machen möchten, können Sie diesen Beitrag lesen, in dem ich erkläre, wie das mit dem woocommerce_checkout_fields-Filter geht.