Sinds de ingang van de GDPR/AVG (de nieuwe Europese privacywetgeving) op 25 mei 2018 is het verplicht om bij alle formulieren waarbij persoonsgegevens worden opgeslagen expliciete toestemming aan website bezoekers te vragen. In deze post leg ik je uit hoe je een checkbox toevoegt waarmee je de gebruiker hiervoor toestemming laat geven.

Lees ook: Is jouw website al AVG/GDPR-proof?

De GDPR/AVG checkbox toevoegen

Door onderstaande functie toe te voegen aan je functions.php bestand of een site-specifieke plugin, voeg je een extra checkbox toe aan de checkout-pagina, onder de betaalmogelijkheden.

Lees hier hoe je code snippets op de juiste manier toevoegt aan je website.
Lees hier hoe je een site specifieke plugin maakt.

/**
 * Add terms and policy check box in checkout page
 */
add_action( 'woocommerce_checkout_after_terms_and_conditions', 'add_terms_and_policy', 20 );

function add_terms_and_policy() {

    $gdpr_private_policy_link = sprintf( '<a href="%s" target="_blank">%s</a>',
        home_url("/privacy-policy/"), // The link to your GDPR privacy policy page
        __( "Privacy Policy", 'your-text-domain' )       // The link text
    );

    woocommerce_form_field( 'gdpr_terms', array(
        'type'          => 'checkbox',
        'class'         => array( 'terms gdpr_terms' ),
        'input_class'   => array('woocommerce-form__input-checkbox'),
        'label_class'   => array('woocommerce-form__label-for-checkbox'),
        'label'         => '<span>' . sprintf(
            __( "I have read and accept the %s and understand how you manage my Data under GDPR", 'your-text-domain' ),
            $gdpr_private_policy_link
        ) . '</span>',
        'required'      => true,
    ), '');
}

Afhankelijk van de vormgeving van je theme (ik heb hier het WooCommerce Storefront thema gebruikt) komt het er dan ongeveer zo uit te zien:

Validatie

Maar dan zijn we er nog niet, want er mist nog validatie van het veld. Dat wil zeggen dat er een foutmelding verschijnt wanneer de bezoeker deze checkbox niet aanvinkt, maar wel de bestelling probeert af te ronden.

Voeg onderstaande code toe onder bovenstaande code in je functions.php bestand of site-specifieke plugin:

/**
 * Validate required GDPR private policy checkbox
 */
add_action( 'woocommerce_after_checkout_validation', 'terms_and_policy_validation', 20, 2 );
function terms_and_policy_validation( $data, $errors ) {
    if ( ! isset( $_POST['gdpr_terms'] ) ){

        $gdpr_text = sprintf(
            __( "I have read and accept the %s and understand how you manage my Data under GDPR", 'your-text-domain' ),
            __( "Privacy Policy", 'your-text-domain' )
        );

        $errors->add( 'gdpr_terms', sprintf( __( 'You must accept "%s".', 'your-text-domain' ), $gdpr_text ), 'error' );
    }
}

De foutmelding ziet er dan als volgt uit:

Lees ook: Een Een GDPR/AVG checkbox aan het blog post ‘reactie’ formulier toevoegen

Beoordeel deze post:

Gemiddeld: 0 / 5. Aantal beoordelingen: 0

Nog geen beoordelingen

Whoops! 😔

Zou je ons willen laten weten hoe we (deze post) kunnen verbeteren?