Buenas, señor.
La idea sería hacer algo como lo siguiente:
SI
rol = comentador
ENTONCES
muestra cuadro de comentarios
Si te creas un rol de comentador (que puedes crearlo con Role Scoper o cualquier otro plugin de creación de roles), después lo que tendrás que hacer en la plantilla de las entradas de categoría es filtrar a los usuarios, y mostrar el cuadro de responder comentarios o no dependiendo de su rol.
Hola Rafa, gracias por responderme tan rápido, me das un gran punto de partida. Me aprovecho un poco más. Para hacer eso de
en la plantilla de las entradas de categoría es filtrar a los usuarios, y mostrar el cuadro de responder comentarios
¿existe algún plugin o hay que hacerlo a manita? ¿algún ejemplo iluminador?
Muchas gracias! ; )
Pues me temo que para cosas tan específicas hay que ir a mano.
Para saber si un usuario tiene un rol específico:
$user = wp_get_current_user();
if ( in_array( 'comentador', (array) $user->roles ) ) {
//The user has the "comentador" role
}
Usa eso para, en la plantilla de comentarios, filtrar a los usuarios que pueden comentar o no.
Normalmente las plantillas de comentarios tiene algo como comment_form($comments_args);
Sería escribir algo así en la plantilla:
$user = wp_get_current_user();
if ( !in_array( 'comentador', (array) $user->roles ) ) {
comment_form($comments_args);
}
Es decir, si el usuario NO es comentador, entonces el formulario para comentar aparece.
El dónde esté el formulario dependerá de tu tema, pero probablemente tengas un archivo comments.php
por ahí.
Un saludo.
Solucionado, como bien decías, solo he editado el archivo de comentarios (coments.php) y he verificado que para la categoría «foro» los usuarios «subscriber» no puedan comentar. Dejo el código que es muy sencillo por si le sirve a alguien más.
$categories = get_the_category();
if ( ! empty( $categories ) ) {
$cat=$categories[0]->slug;
}
$current_user = wp_get_current_user();
$role=$current_user->roles[0];
if (strcmp($cat,"foro")!==0 || strcmp($role,"subscriber")!==0) {
comment_form();
}
-
Esta respuesta fue modificada hace 8 años, 3 meses por manvilfer.
-
Esta respuesta fue modificada hace 8 años, 3 meses por manvilfer. Razón: corrección