Comment pré-remplir le champ e-mail de facturation sur la page de paiement WooCommerce avec le filtre woocommerce_checkout_get_value
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 :
- $value (mixed) : La valeur actuelle du champ de paiement.
- $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.