RGPD, WooCommerce et paniers abandonnés

Tous les propriétaires de sites web vivent en ce moment un immense moment de joie et d’allégresse ! En effet, la RGPD arrive à grand pas et nous devons tous nous mettre en conformité. (Un article très concret est disponible sur WP Marmite)

Ce que cela va changer pour l’utilisateur : rien (car à quelques exceptions près, l’utilisateur s’en tamponne sévère 99% du temps et gueule quand il s’aperçoit qu’il est un bon mouton – 1% du temps…), mais cela responsabilisera probablement les inconscients à la tête des GAFAs (et les favorisera car ils sont les seuls à avoir les moyens de respecter entièrement la règle). Pour ma part, et malgré mes efforts, je vais avoir du mal à faire en sorte que tous mes sites soient dans les clous dans les délais… Mais cela sera fait sous peu, c’est sûr !

La problématique des paniers abandonnés

Mais venons en à nos moutons :

J’utilise WooCommerce pour mon business en ligne et également AutomateWoo pour les relances de paniers abandonnés. Par principe (et car j’ai constaté en faisant une fausse manip que c’était totalement improductif dans le cadre de mon business), je ne « récolte » pas d’adresse e-mails dans tous les champs de mon site. Je « récolte » donc des e-mails que lors du passage de commande.

Ainsi et afin d’être en règle avec la RGPD, il fallait que je trouve un moyen pour que les utilisateurs valident la politique de confidentialité du site AVANT de saisir leur e-mail pour pouvoir utiliser leurs e-mails afin de les relancer par mail s’ils ne passaient pas commande.

Snippet Time !

Voici donc un petit snippet pour votre boutique WooCommerce pour cacher le champs e-mail et le faire apparaître uniquement après avoir cliqué sur la validation de la politique de confidentialité…

A intégrer dans votre fichier functions.php

/* Notification RGPD Abandon de panier */
 
add_filter( 'woocommerce_checkout_fields' , 'mw_display_checkbox_and_new_checkout_field' );
  
function mw_display_checkbox_and_new_checkout_field( $fields ) {
 //On ajoute une checkbox et un lien vers la politique de confidentialité
    $fields['billing']['checkbox_rgpd'] = array(
        'type'      => 'checkbox',
        'priority'  => 80,
        'label'     => __('J\'ai lu et j\'accepte la <a href="https://www.votre-site.fr/votre-politique-confidentialite/" target="_blank">politique de confidentialit&eacute;</a>*.', 'woocommerce'),
        'class'     => array('form-row-wide'),
        'clear'     => true,
        'default'   => 0
        ); 
  
return $fields;
 
}
  
add_action( 'woocommerce_after_checkout_form', 'mw_conditionally_hide_show_new_field', 6);
  
function mw_conditionally_hide_show_new_field() {
 
    
  ?>
    <script type="text/javascript">
    // On masque le champs e-mail après chargement
    jQuery(function($){
        var events = 'update_checkout',
            billingFields = '#billing_email_field';
 
        $('body').on( events, function(){
            $(billingFields).hide( 0,function(){
                $('form.checkout.woocommerce-checkout').css('visibility','visible').fadeIn();
            });
        });
    });
    //On fait apparaitre le champs e-mail après validation de la politique de confidentialité
        jQuery('input#checkbox_rgpd').change(function(){
              
            if (!this.checked) {
                jQuery('#billing_email_field').fadeOut();
     
            } else {
                jQuery('#billing_email_field').fadeIn();
            }
              
        });
    </script>
    <?php
}
 
// Erreur affichée si l’utilisateur ne coche pas la case
   
add_action( 'woocommerce_checkout_process', 'mw_woocommerce_rgpd_erreur' );
  
function mw_woocommerce_rgpd_erreur() {
    if ( ! (int) isset( $_POST['checkbox_rgpd'] ) ) {
        wc_add_notice( __( 'Vous devez accepter la politique de confidentialit&eacute; du site' ), 'error' );
    }
}

Bon courage à tous dans l’implémentation de la RGPD !

Un commentaire sur “RGPD, WooCommerce et paniers abandonnés

  1. Cdrik says:

    Bonjour,

    Merci pour ce très bon code, je suis en train de ‘développer’ un site dans le cadre de ma formation et avec la venue de la RGPD, le site va être décortiqué.
    J’ai quand même du apporter une modification dans ce code et ajouter dans l’array de la checkbox:
    ‘required’ => true
    et de fait supprimer l’étoile à la fin du texte.
    Sinon woocommerce ajoute (facultatif) juste derrière le texte
    Cdrik

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *