Añadir campo checkbox de Términos y condiciones en Finalizar Compra de WooCommerce

A continuación, te explico cómo añadir las casillas de verificación de «Términos y condiciones» en la página de pago de WooCommerce. Tienes dos opciones para poder añadir un campo en la página de checkout de WooCommerce los checkboxes que exige El Reglamento general de protección de datos (RGPD).

Por fin, podrás cambiar el texto legal en el apartado de Finalizar Compra en WooCommerce para cumplir con la RGPD.

Opción 1: Plugin de WordPress para añadir campos RGPD a la página de pago de WooCommerce

Como siempre, existen plugins para esta función que, en este caso, suelen ser de pago. Puedes usar Flexible checkout fields Pro de WPDesk.

Cuando haya añadido el plugin a tu WordPress, podrás configurarlo desde WooCommerce – Checkout Fields – Settings. Lo importante es escoger «Before Submit» en «Custom Sections».

Opción 2: Modificar el archivo functions.php de WordPress para añadir una casilla de aceptación para los Términos y condiciones en la página de Finalizar compra de WooCommerce

A continuación te dejo el código que debes añadir a tu archivo functions.php. Lo ideal es crear un tema hijo para o child theme para que, cuando actualices la plantilla padre, los cambios realizados en el archivo functions.php no se borren.

// Mostrar campo obligatorio Política de privacidad en el checkout
// @autora - Ruth Gascón https://ruthgascon.com
  
function anadir_politica_privacidad_checkout() {
woocommerce_form_field( 'politica_privacidad', array(
	'type'		=> 'checkbox',
	'required'	=> true,
	'label'		=> __('He leído y acepto la <a target="blank" href="/politica-de-privacidad">política de privacidad y protección de datos.</a>'),
)); 
}

add_action( 'woocommerce_review_order_before_submit', 'anadir_politica_privacidad_checkout', 9 );

// Mostrar mensaje de error si no se acepta la Política de privacidad
  
function mostrar_error_politica_privacidad() {
    if ( ! (int) isset( $_POST['politica_privacidad'] ) ) {
		wc_add_notice(('Por favor acepta la política de privacidad'), 'error');
    }
}

add_action( 'woocommerce_checkout_process', 'mostrar_error_politica_privacidad' );

// Añade campo en el pedido
function anadir_campo_politica_privacidad_en_pedido( $order_id ) {
    if ( ! empty( $_POST['politica_privacidad'] ) ) {
        update_post_meta( $order_id, 'Politica privacidad aceptada', sanitize_text_field( $_POST['terminos_condiciones'] ) );
    }
}

add_action( 'woocommerce_checkout_update_order_meta', 'anadir_campo_politica_privacidad_en_pedido' );

// Mostrar campo obligatorio Términos y condiciones en el checkout
// @autora - Ruth Gascón https://ruthgascon.com
    
function anadir_terminos_checkout() {
woocommerce_form_field( 'terminos_condiciones', array(
	'type'		=> 'checkbox',
	'required'	=> true,
	'label'		=> __('He leído y acepto las <a target="blank" href="/condiciones-generales-de-venta">condiciones generales de contratación.</a>'),
)); 
}

add_action( 'woocommerce_review_order_before_submit', 'anadir_terminos_checkout', 9 );

// Mostrar mensaje de error si no se aceptan los Términos y condiciones    
   
function mostrar_error_terminos() {
    if ( ! (int) isset( $_POST['terminos_condiciones'] ) ) {
		wc_add_notice(('Por favor acepta las condiciones generales de contratación'), 'error');
    }
}

add_action( 'woocommerce_checkout_process', 'mostrar_error_terminos' );

// Añade campo en el pedido
function anadir_campo_terminos_en_pedido( $order_id ) {
    if ( ! empty( $_POST['terminos_condiciones'] ) ) {
        update_post_meta( $order_id, 'Terminos y condiciones aceptadas', sanitize_text_field( $_POST['terminos_condiciones'] ) );
    }
}

add_action( 'woocommerce_checkout_update_order_meta', 'anadir_campo_terminos_en_pedido' );

Este es el resultado:

Espero haberte ayudado a adaptar correctamente tu web al RGPD en WooCommerce. Tanto el plugin como la modificación de código te servirán.

¡Cuéntame en comentarios si te ha servido este post!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos: Responsable: Ruth Gascón Barba. Finalidad: Gestión y publicación de los comentarios del blog. Legitimación: Consentimiento del interesado. Destinatarios: no se cederán datos a terceros, salvo obligación legal. Derechos: Acceder, rectificar y suprimir los datos, así como otros derechos como se explica en la información adicional. También se puede instar reclamación ante la Agencia Española de Protección de Datos.