En el episodio de hoy os traemos algunas novedades de WordPress pero sobretodo enfocaremos nuestro tema central en proyectos que requieran restringir el contenido de alguna u otra forma.
Novedades
Malas noticias para los poseedores de un hosting en OVH. Arden los servidores del mayor centro de datos de la empresa OVH, aunque nosotros nos hemos librado…
Vemos a un Elías con bastante hype por las mejoras en SiteGround y no es para menos ya que prometen mucha más velocidad y mejor optimización de los contenidos, además de un nuevo panel. Toda la información en el siguiente enlace:
Ya habíamos comentado por aquí las novedades de WordPress 5.7 pero como ya ha salido oficialmente, os dejamos un enlace al artículo publicado por Fernando Tellado.
Otra cosa que le encanta a Elías es Easy Digital Downloads, plugin que mencionaremos también más adelante en el tema central. Pero ahora nos centramos en las novedades de la versión 2.10 que entre otras cosas, ahora incluye la pasarela de pago Stripe.
Como cada semana, comentaremos los tutoriales y novedades de Yannick en La Máquina del Branding. Esta semana, conexiones con REST API y Jet Engine, AffiliateWP y elementos responsive de los listing items.
Además, anunciamos el primer directo de Yannick en La Máquina del Branding (sobre el DevTools KIT de Crocoblock) y os invitamos a una meetup que dará lugar el 25 de marzo, sobre Jet Engine, que por supuesto presentará Yannick.
Contenido restringido en WordPress
Como siempre, os dejamos aquí el guion del del tema central.
- Pequeña introducción acerca de los permisos y roles en WordPress.
- Caso 1 – Protegido con contraseña.
Podemos hacerlo de forma nativa en WordPress, aunque para personalizar la apariencia tendremos que incluir un poco de CSS ya que por defecto lo dejará un poco… simple. Podemos editar un poco la apariencia haciendo referencia al hook the_password_form, y con un poco de CSS o incluso utilizar la función post_password_required y poner un condicional, etc…
También tenemos opción de utilizar un plugin que permita más personalización tanto en diseño como en funciones: WordPress Protect Password Page.
Y para los Elementers, cualquiera de los clásicos que todo el mundo tiene (The plus addons o Essential Addons) tienen widgets para configurar a medida estas opciones. - Caso 2 – Restringir el contenido con permisos.
Podemos crear un rol (o un permiso) para los usuarios que puedan acceder a cierto contenido. Hay 2 plugins importantes. Content Control y Restrict User Access. - Caso 3 – Restringir el contenido a usuarios que hayan comprado un producto virtual.
También debemos crear un rol. Pero en este caso, utilizamos el plugin Restrict (a secas) para que solo los usuarios que hayan comprado un producto obtengan el contenido asociado. Funciona con WooCommerce pero también con Easy Digital Downloads.- WooCommerce Memberships (con o sin producto vinculado): https://woocommerce.com/products/woocommerce-memberships/
- Contenido faseado (dripping content)
- Productos limitados a miembros
- Métodos de envío para miembros
- Descuentos para miembros
- EDD Content Restriction: https://easydigitaldownloads.com/downloads/content-restriction/
- Proteger cualquier single de un CPT compelto, o parcial con shortcode, accesible a quién haya comprado un determinado producto (o a cualquier producto)
- Compatible con bbPress
- WooCommerce Memberships (con o sin producto vinculado): https://woocommerce.com/products/woocommerce-memberships/
- Caso 4 – Restringir el contenido a usuarios con un plan de suscripción o membresía.
En este caso podemos encontrar plugins que nos hacen las 2 funciones, es decir, la restricción y la membresía. Tenemos Restrict Content PRO o también, si queremos tener WooCommerce como base, WooCommerce Memberships. - Caso 5 – Restringir la compra de productos.
Si simplemente queremos indicar que ciertos roles no puedan ver o comprar productos. Podemos utilizar el plugin gratuito Product Visibility by Role. En caso de que solamente miembros de un plan de suscripción puedan acceder a ellos, podemos utilizar un addon para Restrict Content PRO, se trata de la integración de RCP con WooCommerce. - Otros casos, control de visibilidad y métodos artesanos
En ocasiones podemos querer utilizar algo más sencillo. Podemos crear un rol y que solamente ciertos usuarios con ese tipo de rol puedan ver esos contenidos. En WordPress podemos utilizar cosas como: if ( current_user_can( ‘tu permiso’ )
Y en Elementor, herramientas como Jet Engine o Dynamic Content for Elementor, con sus ajustes de visibilidad condicional nos permite hacer la misma jugada.
Del mismo modo, también podemos jugar con condiciones como si el usuario ha iniciado sesión, etc. Los formularios de Jet Engine o Gravity Forms nos permiten crear formularios que registren usuarios con un rol específico. Esto puede ser útil en combinación con todo lo descrito anteriormente. - NOTA EXTRA: La clase WP_USER tiene varios métodos (funciones) para gestionar roles:
- remove_role, que le quita el rol al usuario
- add_role, que añade el rol al usuario
- set_role, que quita los que tenga y le pone el nuevo
- Además, hay hooks correspondientes a estas tres funciones, por lo que podríamos hacer acciones adicionales como mandar un email, crear un post, etc.