Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

Mostrar contenido Premium sin Plugins

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.

Contenido restringido mensaje

 

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;
        }
Ambos códigos puedes agregarlos como parte del archivo functions.php de tu tema hijo, o usar algún plugin de Snippets.

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.

Enregistrer un commentaire

0 Commentaires