Aprende en este tutorial a restringir la visualización del contenido de un bloque a suscriptores con un nivel de membresía determinado de Restrict Content Pro.
Pero, ¿qué ocurre si tienes varios niveles de membresía y quieres que el contenido de alguno de ellos solo se muestre a los que tengan un nivel determinado?
No pasa nada porque puedes usar una estrategia similar aplicando algunos cambios.
Como comentaba en el tutorial anterior, algunos ejemplos de bloques donde sería muy práctico tener esta opción son:
- Audio
- Imagen
- Fichero
- Código
Vamos a ver cómo podemos conseguirlo combinando varias estrategias de tutoriales anteriores:
- Crear una variación de bloque
- El filtro
render_block
- La función
rcp_get_customer_membership_level_ids
Vamos a ello:
Instrucciones para ocultar el contenido de un bloque a los usuarios de un nivel de suscripción de RCP concreto
1. Registra una nueva variación de bloque
Lo primero que tienes que hacer es registrar las nuevas variaciones.
Para ello crea un fichero llamado block-variations.js dentro de la carpeta /assets/js/ de tu tema (si no existe puedes crearla) con alguno de los siguientes códigos:
Para ver este código y los otros 2057 snippets de esta web,
identifícate o suscríbete aquí.
En los 4 snippets anteriores la variación contiene los siguientes campos:
- Nombre del bloque:
core/audio
,core/image
,core/file
ycore/code
respectivamente. name
: nombre interno de la variación de bloque.title
: título de la variación de bloque.label
: etiqueta de la variación de bloque que se muestra en el editor.icon
: icono de la variación de bloque. En este caso un candado (lock
).
En los atributos indicas, dependiendo del ejemplo:
className
: permite añadir una clase de CSS específica. En este caso, añade la claserestricted-level-x
que será la que usaremos posteriormente para controlar la visualización del contenido del bloque.
La clase CSS la puedes cambiar por la que tú quieras, por ejemplo, restricted-level-
gold o restringido-nivel-oro
. Lo único importante es que lo sustituyas en el paso 3.
2. Encola las nuevas variaciones de bloques
Una vez que tienes el fichero donde has registrado los estilos, debes encolarlos al tema. Para ello añade el siguiente snippet al final de functions.php:
// Encolar las variaciones de bloque
add_action( 'enqueue_block_editor_assets', 'cg_add_block_variations' );
function cg_add_block_variations() {
wp_enqueue_script( 'cg-block-variations', get_stylesheet_directory_uri() . '/assets/js/block-variations.js', [ 'wp-blocks' ] );
}
3. Limita la visualización del contenido de los bloques
Una vez que ya has creado las variaciones de bloques que añaden una clase CSS, puedes limitar la visualización de su contenido.
Añade el siguiente fragmento a tu plugin de funcionalidades:
Para ver este código y los otros 2057 snippets de esta web,
identifícate o suscríbete aquí.
En este código usas la función de rcp_get_customer_membership_level_ids
para comprobar si el usuario tiene una suscripción activa de la membresía con el identificador 1. Además te aseguras de que el bloque tiene la clase de CSS restricted-level-x
. Todo esto dentro del filtro render_block
que te permite mostrar un mensaje en caso de que se cumplan las condiciones.
Es decir, a los usuarios que no tengan una suscripción de Restrict Content Pro activa del nivel de membresía que elijas, en lugar de ver el contenido del bloque, verán un mensaje que les indica que para ver el contenido tienen que identificarse o suscribirse.
Puedes modificar el texto a tu gusto, por supuesto.
4. Personaliza el CSS del mensaje que se muestra al usuario
Una vez que has ocultado el contenido de los bloques a los no suscriptores, solo te falta darle un poco de estilo al mensaje que aparece en lugar del contenido.
Para ello, añade este bloque al final de style.css:
Para ver este código y los otros 2057 snippets de esta web,
identifícate o suscríbete aquí.
Esto es solo un ejemplo, pero te invito a que lo personalices acorde al diseño del tema.
Conclusiones
Ahora ya sabes cómo crear bloques que solo muestren el contenido a suscriptores activos de un determinado nivel de membresía de Restrict Content Pro y mostrar un mensaje personalizado invitando a que se registren o identifiquen al resto.
Si tienes alguna duda te leo en los comentarios. Y si quieres dejarme una sugerencia para futuros tutoriales, envíamela a través del formulario de contacto.
Todo ventajas de ser suscriptor. 😉