Retour au blog

Comment pré-remplir le champ e-mail de facturation sur la page de paiement WooCommerce avec le filtre woocommerce_checkout_get_value

2023-03-122 min de lecture

Le filtre woocommerce_checkout_get_value est un filtre fourni par le plugin WooCommerce pour WordPress. Ce filtre vous permet de modifier la valeur d'un champ de paiement avant qu'il ne soit affiché à l'utilisateur pendant le processus de paiement.

Le filtre woocommerce_checkout_get_value accepte deux paramètres :

  1. $value (mixed) : La valeur actuelle du champ de paiement.
  2. $input (string) : Le nom du champ de paiement.
/**
 * Filtre pour modifier les valeurs des champs de paiement.
 * @param $value
 * @param $input
 * @return mixed|string
 */
function filter_woocommerce_checkout_get_value( $value, $input ) {
    // si le champ est le champ e-mail de facturation
    if ( 'billing_email' === $input ) {
        $current_user = wp_get_current_user();
	// si l'utilisateur actuel est connecté, forcer l'e-mail à être l'e-mail de l'utilisateur actuel
	if ( $current_user->ID ) {
	    // obtenir l'e-mail de l'utilisateur
	    $value = $current_user->user_email;
	}
    }

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

Dans l'extrait de code ci-dessus, nous vérifions si le champ de paiement actuel est le champ « billing_email ». Si c'est le cas, la fonction récupère l'adresse e-mail de l'utilisateur actuellement connecté et la définit comme valeur du champ « billing_email ». Pour les utilisateurs invités, elle suit le processus par défaut qui leur permet de saisir le champ e-mail de facturation.

Ceci est fait pour s'assurer que l'adresse e-mail de l'utilisateur est correctement associée à la commande. Si vous souhaitez masquer le champ de facturation et/ou le rendre non modifiable, vous pouvez consulter ce article où j'explique comment le faire avec le filtre woocommerce_checkout_fields.