Se abre en una pestaña nueva

Estás viendo

Añadir casilla de aceptación de la política de privacidad en los comentarios

Permite añadir un checkbox para recabar el consentimiento del tratamiento de los datos y así cumplir con una parte del RGPD. Si el usuario no acepta le muestra un error explicándole el motivo, y si acepta se guarda en la base de datos como prueba. No olvides modificar el enlace a la política de privacidad.

<?php
/** Aceptación después del formulario de comentarios **/
add_filter( 'comment_form_field_comment', 'mi_campo_de_privacidad_en_comentarios' );
function mi_campo_de_privacidad_en_comentarios( $comment_field ) {
    return $comment_field.'<p class="pprivacy"><input type="checkbox" name="privacy" value="privacy-key" class="privacyBox" aria-req="true">  Acepto la <a target="blank" href="https://dominio.com/privacidad/">política de privacidad</a><p>';
}
//validación por javascript
add_action('wp_footer','validate_privacy_comment_javascript');
function validate_privacy_comment_javascript(){
 if (! is_admin() && is_single() && comments_open() ){
        wp_enqueue_script('jquery');
        ?>
        <script type="text/javascript">
        jQuery(document).ready(function($){
            $("#submit").click(function(e)){
                if (!$('.privacyBox').prop('checked')){
                    e.preventDefault();
                    alert('Debes aceptar nuestra política de privacidad <p><a href="javascript:history.back()">' . __('« Volver') . '</a></p>');
                    return false;
                }
            }
        });
        </script>
        <?php
}
}

//sin validación js
add_filter( 'preprocess_comment', 'verify_comment_privacy' );
function verify_comment_privacy( $commentdata ) {
if ( ! isset( $_POST['privacy'] ) && ! is_admin() )
wp_die( __( 'Error: Debes confirmar que estás de acuerdo con nuestra política de privacidad<p><a href="javascript:history.back()">' . __('« Volver') . '</a></p>' ) );

    return $commentdata;
}

//guarda el campo como comment meta
function save_comment_meta_data ( $post_id ) {
$privacy_comment = $_POST['privacy'];
if ( $privacy_comment ) {
add_comment_meta( $post_id, 'privacy', $privacy_comment, true );
}}
 
add_action( 'comment_post', 'save_comment_meta_data', 1 );

// Mostramos el valor del metadato en la página de administración de comentarios
if ( is_admin() ) {
function show_commeta() {
   echo get_comment_text().'<br><br><strong>'.get_comment_meta(get_comment_ID(), 'privacy',1).'<strong>';
   }
add_action('comment_text', 'show_commeta');
}