En este artículo veremos como mostrar el contenido de una categoría de WordPress sólo para usuarios que tengan un determinado rol, veremos como realizarlo directamente a través de código.
Resultado Final
Al final queremos restringir el contenido para usuarios que no tengan el rol de «premium» y que aparezca en su lugar un mensaje de contenido exclusivo.
Generalidades
Existen muchos plugins con la funcionalidad de contenido restringido para WordPress, sin embargo en este artículo veremos algo que sirva como base para una funcionalidad simple de restricción de contenido por categoría y para un determinado rol.
Código de creación de rol y restricción de categoría
Puedes usar el siguiente código para crear un nuevo rol llamado «Premium» en WordPress
// Crea un nuevo rol llamado Premium
add_action( 'init', 'add_affiliate_role' );
function add_affiliate_role(): void {
if ( get_role( 'premium' ) ) {
return;
}
add_role( 'premium', 'Premium', array( 'read' => true ) );
}
El siguiente código restringe el contenido para una categoría llamada «Premium» si el usuario no tiene el rol de «Premium».
// Muestra contenido de la categoría Premium sólo a los usuarios que tenga el rol Premium
add_filter( 'the_content', 'show_premium_content' );
function show_premium_content( $content ) {
if ( in_category( 'premium' ) && ! current_user_can( 'premium' ) ) {
$content = '➜ <strong>Este contenido es exclusivo para usuarios Premium.</strong>';
}
return $content;
}
El código anterior:
- Primero creamos el nuevo rol, usamos el Hook init de WordPress que hace referencia a la función add_affiliate_role
- Comprobamos si el rol premium ya existe, sino usamos la función add_role para agregarlo.
- Para la restricción de contenido usamos el Hook de filtro the_content que hace referencia a la función show_premium_content
- Dentro de la función hacemos la comprobación si el contenido que vemos corresponde a la categoría «premium» y además si el usuario tiene el rol de «premium»
- Si estas condiciones no se cumplen entonces mostramos un mensaje en lugar del contenido original
Conclusión
Como has podido comprobar, podemos restringir fácilmente a través de código el contenido de entradas de una categoría y que sólo sea visible por usuarios que tengan un determinado rol.
La entrada Mostrar contenido Premium sin Plugins es un artículo reciente del sitio DecodeCMS.
0 Commentaires