fbpx
León Desarrollo - Programación WordPress

Añadir RGPD al checkout de WooCommerce


Para añadir RGPD al checkout de WooCommerce con dos casillas de verificación (checkbox) obligatorias, puedes usar los hooks de WooCommerce para añadir estos campos y validar su presencia antes de que se complete la compra.

A continuación, te muestro cómo hacerlo paso a paso:

1. Agregar los campos al formulario de checkout

Primero, debes agregar los campos al formulario de checkout usando el hook woocommerce_after_order_notes.

function add_privacy_policy_and_refund_policy_checkbox( $checkout ) {
    echo '<div id="privacy_policy_and_refund_policy_checkbox"><h3>' . __('Términos y condiciones') . '</h3>';

    woocommerce_form_field( 'privacy_policy', array(
        'type'          => 'checkbox',
        'class'         => array('form-row privacy-policy'),
        'label'         => __('He leído y acepto la política de privacidad'),
        'required'      => true,
    ), $checkout->get_value( 'privacy_policy' ) );

    woocommerce_form_field( 'refund_policy', array(
        'type'          => 'checkbox',
        'class'         => array('form-row refund-policy'),
        'label'         => __('He leído y acepto la política de devoluciones'),
        'required'      => true,
    ), $checkout->get_value( 'refund_policy' ) );

    echo '</div>';
}
add_action( 'woocommerce_after_order_notes', 'add_privacy_policy_and_refund_policy_checkbox' );

2. Validar los campos antes de completar el pedido

A continuación, debes validar los campos antes de que se complete el pedido usando el hook woocommerce_checkout_process.

function validate_privacy_policy_and_refund_policy_checkbox() {
    if ( ! isset( $_POST['privacy_policy'] ) ) {
        wc_add_notice( __( 'Debes aceptar la política de privacidad para continuar.' ), 'error' );
    }

    if ( ! isset( $_POST['refund_policy'] ) ) {
        wc_add_notice( __( 'Debes aceptar la política de devoluciones para continuar.' ), 'error' );
    }
}
add_action( 'woocommerce_checkout_process', 'validate_privacy_policy_and_refund_policy_checkbox' );

3. Guardar los valores de los campos

Para guardar los valores de los campos en los datos del pedido, puedes usar el hook woocommerce_checkout_update_order_meta.

function save_privacy_policy_and_refund_policy_checkbox( $order_id ) {
    if ( isset( $_POST['privacy_policy'] ) ) {
        update_post_meta( $order_id, 'privacy_policy', sanitize_text_field( $_POST['privacy_policy'] ) );
    }
    if ( isset( $_POST['refund_policy'] ) ) {
        update_post_meta( $order_id, 'refund_policy', sanitize_text_field( $_POST['refund_policy'] ) );
    }
}
add_action( 'woocommerce_checkout_update_order_meta', 'save_privacy_policy_and_refund_policy_checkbox' );

4. Mostrar los valores en el backend (opcional)

Si quieres mostrar los valores de estos campos en el backend de WooCommerce, puedes usar los siguientes hooks:

function display_privacy_policy_and_refund_policy_in_admin_order_meta( $order ) {
    $privacy_policy = get_post_meta( $order->get_id(), 'privacy_policy', true );
    $refund_policy = get_post_meta( $order->get_id(), 'refund_policy', true );

    if ( $privacy_policy ) {
        echo '<p><strong>' . __( 'Política de Privacidad' ) . ':</strong> ' . __( 'Aceptada' ) . '</p>';
    }

    if ( $refund_policy ) {
        echo '<p><strong>' . __( 'Política de Devoluciones' ) . ':</strong> ' . __( 'Aceptada' ) . '</p>';
    }
}
add_action( 'woocommerce_admin_order_data_after_billing_address', 'display_privacy_policy_and_refund_policy_in_admin_order_meta', 10, 1 );

Con estos pasos, podrás hacer frente a las peticiones de añadir RGPD al checkout de WooCommerce, comunes con los cambios de legislación y tendrás dos casillas de verificación obligatorias en tu formulario de checkout, que el cliente debe aceptar antes de completar la compra.

Suscríbete

Si quieres estar al día con las novedades de este sitio te recomiendo que te suscribas.

Comentarios

Deja un comentario


2018 animaciones animación Aranda array atributos añade base de datos buscar categoría css curso diseño Duero emprendimiento fechas fiduero guía imagen imagenes inauguracion instalar Isilla linux local mac node.js pagina pagina web php post problemas producto red servicio servidor solución split sql sql server stock string windows woocommerce wordpress