¿Quieres ofrecer contenido exclusivo en WordPress y aumentar tu base de correos electrónicos? Con este sistema, puedes captar emails de manera profesional y efectiva. Los usuarios deberán ingresar su correo para desbloquear contenido premium, asegurando así que los datos recopilados sean válidos y de personas realmente interesadas en tus productos o servicios.
El proceso es simple: los visitantes ingresan su email, aceptan términos y reciben un código de verificación en su bandeja de entrada. Una vez validado, acceden de inmediato al contenido exclusivo sin restricciones. Además, este método permite registrar la actividad de cada usuario, vinculando su email con el contenido que consulta, lo que facilita la personalización de campañas de email marketing.
Ideal para negocios que buscan mejorar la conversión y fidelizar clientes, este sistema es fácil de configurar y adaptable a cualquier sitio web. Implementa esta estrategia en WordPress y convierte tus visitantes en leads de calidad.
Debes agregar el siguiente código en el archivo functions.php de tu tema hijo o, si prefieres una opción más organizada y segura, utilizar un plugin como Code Snippets. Esto asegurará que los cambios se mantengan incluso después de actualizar tu tema.
// Agrega una acción para insertar contenido en el del sitio
add_action('wp_head', 'custom_blur_content_styles_and_scripts');
function custom_blur_content_styles_and_scripts() {
// Si el usuario actual es un administrador, no se aplica el difuminado ni se cargan estilos y scripts
if (current_user_can('administrator')) {
return;
}
?>
Para ver este contenido, ingresa tu email:
Recibirás un código de 6 dígitos en tu correo electrónico que debes ingresar en el formulario. Una vez validado el código tendrás acceso directo al contenido. Si cambias de página o la actualizas tendrás que volver a solicitar el código.
Para continuar, acepta los términos y condiciones.
Términos y Condiciones
Tu email será usado para enviarte contenido relevante. No se compartirá con terceras personas. Puedes darte de baja en cualquier momento enviándonos un correo a [email protected].
current_time('mysql'), // Fecha y hora actual
'articulo' => array( // Información del artículo
'title' => $post_title,
'url' => $post_url,
),
'acepto_terminos' => true, // Marca como que aceptó términos
);
// Actualiza la lista de visitantes en las opciones de WordPress
if (!update_option('visitantes_emails', $visitantes)) {
error_log("No se pudo actualizar visitantes_emails.");
}
}
// Genera un código aleatorio de 6 caracteres
$code = substr(str_shuffle('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'), 0, 6);
// Guarda el código en un transitorio (temporal) asociado al email, válido por 15 minutos
set_transient('email_code_' . $email, $code, 15 * MINUTE_IN_SECONDS);
// Construye el mensaje de correo electrónico con el código
$message = "
Tu Código de Verificación
Usa este código: $code
Válido por 15 minutos.
";
// Envía el correo electrónico con el código
wp_mail($email, 'Código de Verificación', $message, array('Content-Type: text/html; charset=UTF-8'));
// Responde al frontend indicando que el código fue enviado
wp_send_json_success(['unlocked' => false]);
}
// Registra las acciones AJAX para verificar el código, tanto para usuarios autenticados como para visitantes
add_action('wp_ajax_nopriv_verify_code', 'verify_user_code');
add_action('wp_ajax_verify_code', 'verify_user_code');
function verify_user_code() {
// Sanitiza y obtiene el email y código enviados desde el frontend
$email = sanitize_email($_POST['email']);
$code = sanitize_text_field($_POST['code']);
// Recupera el código almacenado en el transitorio para el email proporcionado
$stored_code = get_transient('email_code_' . $email);
// Verifica si el código existe o ha expirado
if (!$stored_code) {
// Responde con un error si el transitorio no existe
wp_send_json_error('Código expirado o no encontrado.');
}
// Compara el código ingresado con el almacenado (sin considerar espacios en blanco)
if (trim($stored_code) === trim($code)) {
// Si el código es correcto, elimina el transitorio para evitar reutilización
delete_transient('email_code_' . $email);
// Crea una cookie que indica que el email ha sido verificado, válida por 1 día
setcookie('email_verified', $email, time() + DAY_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN);
// Responde con éxito al frontend
wp_send_json_success('Código correcto.');
} else {
// Responde con un error si el código no coincide
wp_send_json_error('Código incorrecto o expirado.');
}
}
// Agrega una página personalizada al menú de administración
add_action('admin_menu', 'create_visitantes_page');
function create_visitantes_page() {
// Usa la función `add_menu_page` para agregar una nueva página al menú de administración
add_menu_page(
'Visitantes', // Título de la página
'Visitantes', // Texto del menú
'manage_options', // Capacidad requerida para acceder
'visitantes', // Slug de la página
'render_visitantes_page', // Función que renderiza el contenido de la página
'dashicons-email-alt', // Icono del menú
20 // Posición en el menú
);
}
// Función que renderiza la página de administración de visitantes
function render_visitantes_page() {
// Obtiene la lista de visitantes almacenada en las opciones de WordPress
$visitantes = get_option('visitantes_emails', array());
// Asegura que la lista sea un array
if (!is_array($visitantes)) {
$visitantes = array();
}
// Maneja las acciones del formulario (eliminar o exportar)
if (isset($_POST['action']) && $_POST['action'] === 'delete') {
// Si se seleccionaron emails para eliminar
if (!empty($_POST['emails'])) {
foreach ($_POST['emails'] as $email) {
unset($visitantes[$email]); // Elimina el email de la lista
}
update_option('visitantes_emails', $visitantes); // Actualiza la lista en la base de datos
}
} elseif (isset($_POST['action']) && $_POST['action'] === 'export_csv') {
// Si se solicita la exportación a CSV
export_visitantes_to_csv($visitantes); // Llama a la función para exportar
}
// HTML para mostrar la tabla de visitantes
?>
$info) {
fputcsv($output, array(
$email, // Email del visitante
$info['fecha'] ?? 'N/A', // Fecha de registro o 'N/A'
$info['articulo']['title'] ?? 'N/A', // Título del artículo o 'N/A'
$info['articulo']['url'] ?? 'N/A', // URL del artículo o 'N/A'
!empty($info['acepto_terminos']) ? 'Sí' : 'No', // Indicador de aceptación de términos
));
}
// Cierra el puntero de salida
fclose($output);
exit; // Termina la ejecución del script
}
Explicación del Código para mostrar contenido exclusivo en WordPress
- Agregar estilos y scripts personalizados
- Acción:
add_action('wp_head', 'custom_blur_content_styles_and_scripts') - Función: Inserta los estilos CSS y el JavaScript necesarios en la cabecera del sitio.
- Detalles:
- Define los estilos para el contenido desenfocado, el formulario de email y la superposición.
- Incluye un script para gestionar la interacción del usuario (mostrar términos y condiciones, enviar código de verificación y desbloquear contenido).
- Se excluye a los administradores para evitar carga innecesaria.
- Acción:
- Habilitar AJAX en el frontend
- Acción:
add_action('wp_enqueue_scripts', 'add_ajaxurl_to_frontend') - Función: Define la variable global
ajaxurlpara facilitar solicitudes AJAX al backend de WordPress. - Detalles:
ajaxurlapunta aadmin-ajax.php, permitiendo la comunicación entre el frontend y el servidor.
- Acción:
- Shortcode para desenfoque de contenido
- Acción:
add_shortcode('blur_content', 'custom_blur_content_shortcode') - Función: Permite proteger contenido con un shortcode
[blur_content]. - Detalles:
- Genera el HTML con desenfoque, superposición y formulario.
- Usa el contenido entre el shortcode como el texto a proteger.
- Se implementa fácilmente en cualquier página o entrada.
- Acción:
- Procesamiento del código de verificación
- Función:
check_or_send_code() - Propósito: Gestiona solicitudes AJAX para validar o enviar códigos de verificación.
- Detalles:
- Verifica el email ingresado por el usuario.
- Genera un código único de 6 caracteres y lo almacena temporalmente.
- Envía el código por correo electrónico.
- Registra el email, la fecha y la URL del contenido accedido.
- Función:
- Verificación del código ingresado
- Función:
verify_user_code() - Propósito: Confirma si el usuario ingresó el código correcto.
- Detalles:
- Compara el código almacenado con el ingresado.
- Si es correcto, elimina el código temporal y configura una cookie para desbloquear el contenido.
- Si es incorrecto o ha expirado, muestra un mensaje de error.
- Función:
- Creación de la página «Visitantes»
- Función:
create_visitantes_page() - Propósito: Agrega una sección en el panel de administración para gestionar emails recopilados.
- Detalles:
- Añade un menú llamado «Visitantes».
- Muestra una tabla con emails, fecha, artículo visitado y aceptación de términos.
- Permite eliminar registros o exportarlos en CSV.
- Función:
- Renderización de la página de visitantes
- Función:
render_visitantes_page() - Propósito: Muestra la lista de usuarios registrados.
- Detalles:
- Tabla con datos recopilados.
- Opciones para eliminar o exportar emails.
- Botón para descargar el listado en CSV.
- Función:
- Exportación de datos a CSV
- Función:
export_visitantes_to_csv() - Propósito: Genera un archivo CSV descargable con los visitantes registrados.
- Detalles:
- Incluye los campos: email, fecha, artículo visitado y términos aceptados.
- Configura los encabezados HTTP para descarga inmediata.
- Función:
- Estilos CSS personalizados
- Propósito: Definir el diseño del contenido desenfocado y los formularios.
- Detalles:
- Usa
filter: blur(8px)para desenfoque del contenido. - Estiliza el formulario para facilitar la interacción.
- Aplica transiciones suaves para mejorar la experiencia del usuario.
- Usa
- JavaScript en el frontend
- Propósito: Gestionar la interacción del usuario en la web.
- Detalles:
- Mostrar términos: Expande la sección de términos y condiciones al hacer clic.
- Enviar código: Solicita el código de verificación vía AJAX.
- Verificar código: Confirma si el código ingresado es correcto para desbloquear contenido.
- Manejo de errores: Informa al usuario en caso de fallos.
Resumen:
En resumen, integrar un sistema de captura de emails en WordPress, como el detallado en este artículo, es una estrategia eficaz para expandir tu base de clientes potenciales. Este código no solo protege el contenido exclusivo, sino que también permite recopilar datos valiosos de los visitantes, optimizando la personalización de ofertas y campañas. Además, su capacidad para exportar y gestionar registros lo convierte en una herramienta clave para cualquier estrategia de email marketing.
¿Listo para potenciar tu presencia en el mundo digital? En Full Tech Solutions, sabemos lo que necesitas: planes de Cloud Hosting diseñados para ofrecer rendimiento, seguridad y flexibilidad.
No importa si estás comenzando o escalando tu proyecto, tenemos la solución perfecta para ti. 🚀 ¡Da el salto al siguiente nivel con nuestro servicio confiable y adaptado a tus objetivos!
Contáctanos hoy mismo y comienza a construir un futuro digital sin límites.



