🔐 Mejorando el Código de Zona Privada con Diferente CPT

Si has seguido los artículos anteriores sobre como crear una Zona Privada por Usuarios o por Roles, sabrás que de forma predeterminada la Zona Privada se encarga de privatizar automáticamente las páginas y restringir su acceso según los roles o usuarios asignados.

Pero, ¿qué pasa si queremos utilizar un Custom Post Type (CPT) personalizado, como Reservas, Soporte, Consultas, etc.?

En este artículo, vamos a ver cómo privatizar un CPT llamado «Consultas», demostrando lo fácil que es hacerlo simplemente cambiando algunas condiciones en el código.

Antes de continuar, lo primero es tener el CPT creado. Si no sabes cómo crear uno, aquí te enseño cómo hacerlo con pocas líneas de código para que puedas generar CPTs a tu antojo.

Ahora que ya tenemos el CPT listo, vamos a ver cómo privatizarlo. En este ejemplo, usaré el código de privatización por roles, pero si utilizas la versión que restringe por usuario, también te sirve; solo necesitarás reemplazar is_page() por is_singular('consultas').

A continuación, te explico más detalladamente cómo hacerlo paso a paso.

1️⃣ Restricción de acceso

ANTES

El código original restringía el acceso a páginas (is_page()).

AHORA

He cambiado is_page() por is_singular('consultas'), para que la restricción se aplique a las Consultas.

Cambio en el código

🔐 Este contenido es solo para suscriptores premium.

*Actualmente no se aceptan nuevos suscriptores.

✔️ Ahora, los usuarios solo podrán acceder a Consultas si su rol está asignado a ellas.

2️⃣ Área privada del usuario

ANTES

El shortcode [user_private_area] mostraba páginas (post_type => 'page').

AHORA

Ahora muestra Consultas (post_type => 'consultas').

Cambio en el código

🔐 Este contenido es solo para suscriptores premium.

*Actualmente no se aceptan nuevos suscriptores.

✔️ Ahora, los usuarios verán en su área privada solo las «Consultas» asignadas a su rol, en lugar de páginas.

3️⃣ Notificaciones por correo cuando se publica o actualiza una consulta

ANTES

El sistema de notificaciones enviaba correos cuando se publicaban o actualizaban páginas.

AHORA

Ahora envía correos cuando se publican o actualizan Consultas.

Cambio en el código

🔐 Este contenido es solo para suscriptores premium.

*Actualmente no se aceptan nuevos suscriptores.

✔️ Ahora, cuando una Consulta es publicada o actualizada, los usuarios con el rol asignado recibirán una notificación por correo.

📌 Resumen de Cambios

FuncionalidadAntes (Páginas)Ahora (Consultas)
Restricción de accesois_page()is_singular('consultas')
Shortcode del área privadaMuestra páginas (post_type => 'page')Muestra consultas (post_type => 'consultas')
Notificaciones por correoSe enviaban al publicar páginasSe envían al publicar consultas

Tanto si utilizas el código que restringe el acceso por roles como el que lo hace por usuarios específicos, el principio es el mismo:
Simplemente cambia la condición is_page() por is_singular('consultas') en el código correspondiente.

Esto significa que puedes aplicar esta misma lógica a cualquier otro CPT que crees en el futuro, como Reservas, Soporte, Pedidos, etc., adaptando la restricción a tus necesidades sin complicaciones.

Nos vemos en el siguiente tutorial. Un saludo.

ℹ️ Nota:
Estos códigos de la zona premium se mantienen regularmente. Si usas un código y no te funciona correctamente, puedes abrir un ticket de soporte explicando los detalles y lo vemos.
Compartir Artículo