Aquí hay algunos métodos, que van desde más simples hasta el más complejo:
Método 1:enfoque simple (usando PHP y una cookie) Este es el más fácil, pero menos preciso. Oculta contenido hasta que se envíe * cualquier * comentario, no necesariamente un comentario del usuario específico que ve la página.
1. Código PHP (en el archivo `functions.php` de su tema o un complemento personalizado):
`` `PHP
Php
add_action ('init', 'set_comment_cookie');
función set_comment_cookie () {
if (isset ($ _post ['comentario'])) {// verifique si se envía un comentario
setcookie ('comentado', 'verdadero', tiempo () + 31536000, '/'); // Establecer una cookie que dure un año
}
}
función show_content_after_comment () {
if (isset ($ _cookie ['comentado']) &&$ _cookie ['comentado'] =='verdadero') {
echo '
} demás {
echo '
}
}
add_shortcode ('Hidden_content', 'show_content_after_comment');
?>
`` `` ``
2. Uso: En el contenido de su página, use el código corto:`[Hidden_Content]`
Método 2:Enfoque más avanzado (usando PHP, JavaScript y Ajax) Este método requiere más codificación, pero ofrece una mejor experiencia de usuario, ya que no requiere una recarga de páginas.
1. Código PHP (en el `functions.php` de su tema o un complemento):
`` `PHP
Php
add_action ('wp_ajax_nopriv_check_comment', 'check_comment_ajax'); // para usuarios no registrados
add_action ('wp_ajax_check_comment', 'check_comment_ajax'); // para usuarios iniciados
función check_comment_ajax () {
// Compruebe si el usuario ha comentado (requiere una consulta de base de datos o un método más sofisticado para rastrear los comentarios de los usuarios. Ver más abajo).
$ user_id =get_current_user_id (); // Obtener ID de usuario actual
$ has_commented =check_if_user_commented ($ user_id); // Función para verificar si el usuario comentó (explicado a continuación).
if ($ has_commented) {
wp_send_json_success (array ('show' => true));
} demás {
wp_send_json_success (array ('show' => false));
}
wp_die ();
}
// Función para verificar si un usuario ha comentado (reemplace con su lógica real).
función check_if_user_commented ($ user_id) {
Global $ WPDB;
$ count =$ wpdb-> get_var ($ wpdb-> preparar ("select count (*) desde $ wpdb-> comentarios donde user_id =%d", $ user_id));
devolver $ count> 0;
}
?>
`` `` ``
2. Código JavaScript (en el `Header.php` de su tema o un archivo `js` separado en su tema):
`` `JavaScript
jQuery (documento) .Ready (function ($) {
var hiddencontent =$ ('#Hidden-Content'); // Reemplazar #Hidden-Content con la ID de su contenido oculto Div
$ .AJAX ({
URL:Ajaxurl,
Tipo:'Post',
datos:{
Acción:'check_comment',
},
éxito:function (respuesta) {
if (respuesta.show) {
HidDencontent.show ();
}
}
});
});
`` `` ``
3. Código HTML (en el contenido de su página):
`` `HTML
Este contenido es visible después de enviar un comentario.
`` `` ``
Consideraciones importantes para el método 2:
* Consulta de la base de datos: La función `check_if_user_commented` utiliza una consulta de base de datos simple para verificar si el usuario tiene algún comentario. Es probable que deba refinar esto para tener en cuenta las aprobaciones de comentarios y otros factores.
* Ajax URL: Asegúrese de que 'Ajaxurl` se define correctamente en su tema (generalmente manejado automáticamente por WordPress).
* Seguridad: Siempre desinfecte y valida la entrada del usuario para evitar vulnerabilidades de seguridad.
* Experiencia de usuario: Considere proporcionar comentarios claros al usuario mientras espera la solicitud de AJAX.
Método 3:Desarrollo de complementos Para una solución robusta y mantenible, considere crear un complemento de WordPress personalizado. Esto permitiría características más avanzadas, una mejor organización de código y actualizaciones más fáciles.
Recuerde reemplazar las ID de marcador de posición y ajustar el código para que coincida con su tema y necesidades específicas. El segundo método proporciona una experiencia de usuario mucho más suave, pero requiere una experiencia de codificación significativamente mayor. Elija el método que mejor se ajuste a sus habilidades y requisitos. Si no se siente cómodo con PHP y JavaScript, considere contratar a un desarrollador.