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:
¡Cuéntame en comentarios si te ha servido este post!