Documentación de Charitable

Aprende a sacar el máximo partido a Charitable con instrucciones claras y paso a paso.

Enlace Mágico

La función de Enlace Mágico permite a los donantes acceder a su panel de donante sin necesidad de una cuenta de usuario de WordPress ni de iniciar sesión. Los donantes pueden solicitar un enlace seguro y de tiempo limitado por correo electrónico que les otorga acceso para ver su historial de donaciones e información de cuenta.


Tabla de Contenidos


Ganchos y filtros

Los siguientes hooks y filtros de PHP están disponibles para extender y personalizar la funcionalidad del enlace mágico:

  • charitable_magic_link_logout_redirect – Filtra la URL de redirección después del cierre de sesión del enlace mágico
    • Parámetros: $redirect_url (string)
    • Devuelve: Cadena de URL de redirección modificada
    • Nota: El resultado del filtro se valida para evitar redirigir de nuevo al panel del donante
  • charitable_is_magic_link_on_page – Determina si la funcionalidad del enlace mágico debe estar activa en la página actual
    • Parámetros: $is_magic_link_on_page (bool)
    • Devuelve: Booleano
    • Por defecto: Verdadero si está en la página del panel del donante, tiene la acción donor_dashboard, o tiene magic_link_token
  • charitable_magic_link_verify_throttle – Filtra el período de limitación para las solicitudes de clave de verificación (en segundos)
    • Parámetros: Ninguno
    • Devuelve: Entero (por defecto: 300 segundos / 5 minutos)
  • charitable_magic_link_limit_throttle – Filtra el número máximo de solicitudes de enlace mágico permitidas por período de limitación
    • Parámetros: Ninguno
    • Devuelve: Entero (por defecto: 3 solicitudes)
  • charitable_magic_link_token_expiration – Filtra el tiempo de expiración del token (en segundos)
    • Parámetros: Ninguno
    • Devuelve: Entero (por defecto: 7200 segundos / 2 horas)
  • charitable_magic_link_token_expired_message – Filtra el mensaje de error que se muestra cuando el token expira
    • Parámetros: $message (string)
    • Devuelve: Cadena de mensaje modificada

Filtros de Correo Electrónico

  • charitable_email_magic_link_name – Filtra el nombre/título del correo electrónico
    • Parámetros: $name (string)
    • Devuelve: Cadena de nombre de correo electrónico modificado
  • charitable_email_magic_link_default_subject – Filtra la línea de asunto del correo electrónico predeterminada
    • Parámetros: $subject (string), $email (instancia de Charitable_Email_Magic_Link)
    • Devuelve: Cadena de asunto modificado
  • charitable_email_magic_link_default_headline – Filtra el titular predeterminado del correo electrónico
    • Parámetros: $headline (string), $email (instancia de Charitable_Email_Magic_Link)
    • Devuelve: Cadena de titular modificado
  • charitable_email_magic_link_default_body – Filtra el contenido del cuerpo del correo electrónico predeterminado
    • Parámetros: $body (string), $email (instancia de Charitable_Email_Magic_Link)
    • Devuelve: Cadena de cuerpo modificado

Filtros de plantilla del panel

  • charitable_magic_link_dashboard_access_heading – Filtra el texto del encabezado para el formulario de acceso al enlace mágico
    • Parámetros: $heading (string)
    • Devuelve: Encabezado modificado
  • charitable_magic_link_dashboard_access_description – Filtra el texto de la descripción para el formulario de acceso al enlace mágico
    • Parámetros: $description (string)
    • Devuelve: Descripción modificada
  • charitable_magic_link_form_shortcode – Filtra la salida del shortcode del formulario de enlace mágico
    • Parámetros: $output (string)
    • Devuelve: Salida del shortcode modificado

Flujo de autenticación

  1. Usuarios registrados: Si un usuario de WordPress ha iniciado sesión, se omite el enlace mágico y se utiliza la autenticación de usuario estándar
  2. Usuarios de enlace mágico: Si no ha iniciado sesión, el sistema comprueba si el token del enlace mágico es válido
  3. Sin autenticación: Si no existe ninguno de los dos, se muestra el formulario de enlace mágico (si está habilitado)

Ajustes y Configuración

La funcionalidad del enlace mágico se puede configurar en Charitable → Ajustes → Donantes → Enlace mágico.

Configuración

  • Habilitar enlace mágico – Activar/desactivar la funcionalidad del enlace mágico
    • Predeterminado: Habilitado
    • Nota: Requiere que el panel del donante esté habilitado y que la actualización de la base de datos se haya completado
  • Expiración del enlace mágico (horas) – Cuánto tiempo permanecen válidos los enlaces mágicos
    • Por defecto: 2 horas
    • Rango: Configurable a través del filtro charitable_magic_link_token_expiration
    • Nota: La expiración se calcula desde la creación del token (no desde el envío del correo electrónico)

Requisitos

  • El panel del donante debe estar habilitado
  • La actualización de la base de datos para las columnas de enlace mágico debe estar completada
  • El correo electrónico del enlace mágico no se puede deshabilitar mientras el enlace mágico esté habilitado

Funciones de Seguridad

El sistema de enlace mágico incluye varias medidas de seguridad:

Limitación de velocidad

  • Límite de Solicitudes: Máximo 3 solicitudes de enlace mágico por ventana de 5 minutos por donante
  • Ventana de Límite: 5 minutos (configurable a través de charitable_magic_link_verify_throttle)
  • Límite de Solicitudes: 3 solicitudes (configurable a través de charitable_magic_link_limit_throttle)
  • Implementación: Utiliza la caché de objetos de WordPress y los metadatos del donante para rastrear los recuentos de solicitudes

Seguridad del Token

  • Tokens Únicos: Solo un token activo por donante a la vez
  • Invalidación de Token: Cuando se solicita un nuevo enlace mágico, todos los tokens existentes para ese donante se invalidan
  • Expiración: Los tokens expiran automáticamente después del período de tiempo configurado
  • Cookies Seguras: Los tokens almacenados en cookies utilizan las marcas HttpOnly y Secure (cuando SSL está disponible)

Validación de Sesión

  • Coincidencia de ID de Donante: El ID de donante de la sesión debe coincidir con el ID de donante del token
  • Validación de Solicitud: Las solicitudes AJAX validan que el ID de donante del token coincida con el ID de donante solicitado
  • Protección contra Desajuste de Sesión: Si los ID de donante de la sesión y del token no coinciden, la sesión se borra y se requiere una reautenticación

Seguridad de Cierre de Sesión

  • Protección de Nonce: El cierre de sesión requiere un nonce válido para prevenir ataques CSRF
  • Invalidación de Token: El cierre de sesión invalida todos los tokens del donante en la base de datos
  • Borrado de Cookies: Todas las cookies de enlace mágico se borran al cerrar sesión
  • Borrado de Sesión: Todos los datos de sesión de enlace mágico se borran

Estructura de la Base de Datos

La funcionalidad de enlace mágico utiliza las siguientes columnas de base de datos en la tabla wp_charitable_donors:

Columnas

  • magic_link_token – Almacena el token de acceso persistente (cadena de 32 caracteres)
    • Establecido cuando se usa la clave de verificación por primera vez
    • Borrado cuando el token expira o se invalida
    • Utilizado para la autenticación continua
  • magic_link_verify_key – Almacena la clave de verificación inicial (cadena de 32 caracteres)
    • Establecido cuando se envía el correo electrónico del enlace mágico
    • Convertido a token en el primer uso
    • Borrado después de la conversión o expiración
  • magic_link_verify_throttle – Almacena la marca de tiempo para la limitación de velocidad y la expiración del token
    • Se utiliza para rastrear cuándo se creó la clave de verificación (para limitación de velocidad)
    • Se utiliza para rastrear cuándo se creó el token (para la comprobación de expiración)
    • Formato: fecha y hora de MySQL (Y-m-d H:i:s)

Meta del donante

  • _charitable_magic_link_throttle_count – Rastrea el número de solicitudes de enlace mágico en la ventana de limitación actual
    • Incrementado en cada solicitud
    • Restablecido cuando expira la ventana de limitación
    • Se utiliza con la caché de objetos para aplicar la limitación de velocidad

Sistema de Correo Electrónico

El correo electrónico del enlace mágico es un tipo de correo electrónico requerido que no se puede deshabilitar mientras el enlace mágico esté habilitado.

Clase de correo electrónico

  • Clase: Charitable_Email_Magic_Link
  • ID de correo electrónico: magic_link
  • Requerido: Sí (no se puede deshabilitar mientras el enlace mágico esté habilitado)

Campos de correo electrónico

El correo electrónico del enlace mágico incluye los siguientes campos personalizados:

  • {magic_link} – La URL segura para acceder al panel del donante
    • Contiene la clave de verificación como parámetro magic_link_token
    • Apunta a la URL de la página del panel del donante
  • {donor_name} – El nombre del donante (o "Estimado donante" si no está disponible)
  • {expiration_time} – Hora de expiración legible por humanos (por ejemplo, "dentro de 2 horas")

Etiquetas de plantilla de correo electrónico

Las etiquetas de plantilla de correo electrónico estándar de Charitable están disponibles, además de los campos personalizados enumerados anteriormente.

Filtros de Correo Electrónico

Se aplican todos los filtros de correo electrónico estándar de Charitable, además de los filtros específicos de enlace mágico enumerados en la sección Hooks y Filtros.


Shortcode

El formulario de enlace mágico se puede mostrar usando un shortcode.

Shortcode

  • Código corto: [charitable_magic_link_form]
  • Atributos: Ninguno compatible actualmente
  • Salida: Muestra el formulario de solicitud de enlace mágico

Proceso del formulario

  1. El usuario introduce la dirección de correo electrónico
  2. El formulario valida el formato del correo electrónico
  3. El sistema comprueba si existe un donante con ese correo electrónico
  4. Se comprueba la limitación de velocidad
  5. Si se permite, se envía el correo electrónico de enlace mágico
  6. Se muestra un mensaje de éxito o error

Validación del formulario

  • Correo electrónico requerido: Debe ser una dirección de correo electrónico válida
  • El donante debe existir: El correo electrónico debe estar asociado a al menos una donación
  • Limitación de velocidad: No debe exceder los límites de solicitud

Funciones Auxiliares

Las siguientes funciones de ayuda están disponibles para los desarrolladores:

Comprobar funciones

  • charitable_is_magic_link_enabled() – Comprueba si el enlace mágico está habilitado
    • Devuelve: bool
    • Comprobaciones: Panel del donante habilitado, actualización de la base de datos completada, configuración habilitada
  • charitable_is_authenticated_via_magic_link() – Comprueba si el usuario actual está autenticado a través de un enlace mágico
    • Devuelve: bool
    • Comprueba la validez de la sesión y del token
  • charitable_get_donor_id_from_magic_link() – Obtiene el ID del donante de la autenticación del enlace mágico
    • Devuelve: int|false
    • Devuelve el ID del donante si existe un token de enlace mágico válido, de lo contrario, devuelve false

Métodos de clase

La clase Charitable_Magic_Link proporciona los siguientes métodos públicos:

  • get_instance() – Obtiene la instancia singleton de la clase
  • get_token() – Obtiene el token de la cookie o del parámetro GET
  • is_valid_token($token) – Comprueba si un token es válido y no ha expirado
  • is_valid_verify_key($token) – Comprueba si una clave de verificación es válida
  • get_donor_by_token($token) – Obtiene el objeto donante por token
  • get_donor_by_verify_key($verify_key) – Obtiene el objeto donante por clave de verificación
  • can_send_email($donor_id) – Comprueba si se puede enviar el correo electrónico del enlace mágico (limitación de velocidad)
  • send_email($donor_id, $email) – Envía el correo electrónico del enlace mágico al donante
  • generate_verify_key() – Genera una nueva clave de verificación (cadena aleatoria de 32 caracteres)

Ciclo de Vida del Token

Creación de token

  1. El usuario solicita un enlace mágico:
    • El donante introduce el correo electrónico en el formulario
    • El sistema genera una clave de verificación
    • La clave de verificación se almacena en magic_link_verify_key
    • Se envía un correo electrónico con la clave de verificación en la URL
  2. El usuario hace clic en el enlace del correo electrónico:
    • La clave de verificación se valida
    • La clave de verificación se convierte en token
    • El token se almacena en magic_link_token
    • La clave de verificación se elimina de la base de datos
    • Se establece una cookie con el token
    • Se crea la sesión

Uso del token

  1. Carga de página:
    • El sistema busca el token en la cookie o en el parámetro GET
    • Token validado (no expirado, existe en la base de datos)
    • Sesión validada (el ID del donante coincide)
    • Se concede acceso si todas las comprobaciones son correctas
  2. Solicitudes AJAX:
    • Token validado en cada solicitud
    • El ID del donante del token debe coincidir con el ID del donante solicitado
    • El ID del donante de la sesión debe coincidir con el ID del donante del token

Expiración del Token

  • Tiempo de expiración: Configurable (predeterminado: 2 horas)
  • Comprobación de expiración: Basado en la marca de tiempo de magic_link_verify_throttle
  • Comportamiento del token expirado:
    • El token ya no es válido
    • El usuario debe solicitar un nuevo enlace mágico
    • Mensaje de error mostrado

Invalidación de Token

Los tokens se invalidan en los siguientes escenarios:

  1. Nueva solicitud de enlace mágico: Todos los tokens existentes para el donante se invalidan cuando se solicita un nuevo enlace mágico
  2. Cierre de sesión del usuario: Todos los tokens del donante se invalidan al cerrar sesión
  3. Expiración del token: Los tokens expirados se invalidan automáticamente
  4. Desajuste de sesión: Si el ID del donante de la sesión y el token no coinciden, la sesión se borra

Proceso de cierre de sesión

  1. Solicitud de cierre de sesión:
    • El usuario hace clic en el enlace de cierre de sesión (requiere nonce)
    • Nonce verificado
    • ID del donante recuperado de la sesión
  2. Invalidación de token:
    • Todos los tokens del donante se borran de la base de datos
    • Datos de sesión borrados
    • Cookies borradas
  3. Redirección:
    • El usuario es redirigido a la página de inicio (URL limpia, sin parámetros de consulta)
    • La URL de redirección se puede filtrar a través de charitable_magic_link_logout_redirect

Notas adicionales

Compatibilidad

  • El enlace mágico funciona junto con la autenticación de usuario estándar de WordPress
  • Si un usuario ha iniciado sesión, se omite el enlace mágico
  • El enlace mágico solo se activa para usuarios que no han iniciado sesión

Registro

El sistema registra las actividades de los enlaces mágicos en el registro de donantes:

  • magic_link_sent – Cuando se envía un correo electrónico de enlace mágico
  • magic_link_used – Cuando se utiliza con éxito un enlace mágico para acceder al panel
  • magic_link_failed – Cuando un intento de enlace mágico falla (token no válido/caducado)

Modo de depuración

Cuando WP_DEBUG está habilitado, hay disponible un registro detallado para:

  • Validación de tokens
  • Gestión de sesiones
  • Limitación de velocidad
  • Procesamiento de cierre de sesión

Recursos adicionales

Para obtener más información sobre cómo extender la funcionalidad de los enlaces mágicos:

  • Documentación para desarrolladores de Charitable
  • Documentación de ganchos y filtros de WordPress
  • Repositorio de GitHub de Charitable

Versión del documento: 1.0
Última actualización: noviembre de 2025

¿Todavía tienes preguntas? ¡Estamos aquí para ayudarte!

Última modificación:

Novedades en Benéfico

Ver las últimas actualizaciones
🔔 Suscríbete para recibir nuestras últimas actualizaciones
📧 Suscribirse a correos electrónicos

Suscripción por correo electrónico

Únete a nuestro boletín

No te enviaremos spam. Solo enviamos un correo electrónico cuando creemos que realmente te ayudará. ¡Date de baja en cualquier momento!

Formulario de donación Función Nuevo

📝 Bloque de formulario de donación: Incrusta un formulario de donación funcional en cualquier lugar

Con el nuevo Bloque de formulario de donación para Charitable Pro, puedes colocar un formulario de donación completamente funcional directamente en cualquier página o publicación en el editor de bloques de WordPress. Sin redirecciones, sin recargas de página y sin fricción entre leer tu historia y hacer una contribución.

📝 Coloca formularios en cualquier lugar: Coloca un formulario funcional directamente en tu página de inicio, dentro de una publicación de blog basada en historias, en una página de destino dedicada o dentro de un anuncio de campaña.

🎯 Vinculación dinámica de campañas: Elige fácilmente una campaña específica desde la barra lateral del bloque o configúrala para que se vincule automáticamente a la campaña que se esté viendo actualmente.

📐 Vistas de formulario completas vs. mínimas: Cambia entre una vista de diseño completo o una vista mínima compacta para que encaje perfectamente en barras laterales, columnas estrechas o páginas de destino amplias.

🎨 Estilo sin código con ámbito: Personaliza la tipografía, el espaciado del contenedor, el radio del borde, los botones de cantidad y los colores de acento de forma independiente para cada instancia del formulario sin tocar una línea de CSS.

Más información aquí.

embajadores Nuevo

👤 Perfiles de creador: Ponga una cara a cada campaña P2P

Embajadores 3.3.0 ahora ofrece Perfiles de creador, dando a tus seguidores un hogar público permanente y compartible que convierte a los recaudadores de fondos puntuales en relaciones continuas.

👤 Páginas públicas de creador: Dale a cada recaudador de fondos una página de destino instantánea y limpia en /creator/their-name/ para mostrar su avatar personalizado, biografía y una cuadrícula navegable de sus campañas.

📊 Prueba de impacto: Aumenta la confianza de los donantes mostrando hitos en todo el sitio en el perfil, como la cantidad total de fondos recaudados y el número total de donantes.

💳 Tarjetas interactivas al pasar el ratón: Cuando los donantes pasen el ratón sobre el nombre de un creador en una página de campaña, una tarjeta compacta se expandirá con su biografía y perfiles sociales en el momento de la decisión.

📍 Compartir ubicación de forma responsable: Permite a los creadores mostrar de forma segura a los donantes locales dónde se encuentran utilizando solo detalles de ciudad, estado y país.

🛠️ Personalización autoservicio: Los recaudadores de fondos pueden actualizar sus propios perfiles y vincular hasta seis redes sociales directamente desde el centro Mis campañas, ahorrándote tiempo de administración.

¿Listo para empoderar a tus defensores? ¡Actualiza a Embajadores 3.3.0 y activa "Habilitar página pública de creador" hoy mismo!

Mejora Pagos

📱 Convierte a los que se desplazan en el móvil en donantes: Conoce la actualización Mollie de Charitable

¿Estás perdiendo seguidores móviles porque odian escribir números de tarjetas largos en sus teléfonos? La integración actualizada de Mollie de Charitable incluye:

⚡ Pago con billetera con un solo toque: Permite a los donantes completar sus donaciones al instante usando Apple Pay o Google Pay con un simple escaneo facial, huella digital o toque.

💰 Sin carga PCI adicional: Omite la compleja verificación de dominio y el cumplimiento de seguridad, ya que todas las transacciones de billetera se ejecutan de forma segura a través del pago alojado de Mollie.

🛠️ Enrutamiento de cancelación personalizado: Mantén la experiencia predecible enviando automáticamente a los donantes que se retiran a tu página de cancelación, o usa filtros de desarrollador para dirigirlos a una página personalizada.

Visita esta página para obtener más información.

embajadores mejorado Nuevo

Moderación y Pantallas de Directorio en Embajadores 3.0

Embajadores 3.0 tiene nuevas funcionalidades: pantallas de moderación y directorio… ahora puedes ver fácilmente quiénes están generando donaciones en tu red peer-to-peer – incluyendo a los creadores de campañas que podrían necesitar verificación – todo en un solo lugar. Genera informes, envía correos electrónicos directamente a embajadores y creadores de campañas, y más.

🚀 Ve cuándo los creadores de campañas y los embajadores han actualizado sus campañas, qué donantes/donaciones han aportado y más.

🎉 Añade manualmente embajadores y creadores de campañas, ¡y aprueba en un solo clic!

Visita esta página para obtener más información.

Nuevo Pagos

⚡ Desbloquea Donaciones desde India: Conoce la Integración Nativa de Razorpay de Charitable

¿Intentas recaudar donaciones en India? La integración nativa de Razorpay de Charitable incluye:

⚡ Integración Instantánea de UPI: Acepta donaciones locales rápidas directamente en tu formulario a través de aplicaciones como PhonePe, Google Pay, Paytm y BHIM sin enviar a los donantes fuera de tu sitio.

📲 Códigos QR de Campaña Generados Automáticamente: Renderiza instantáneamente códigos QR escaneables que codifican un enlace directo de UPI directamente en tus páginas de campaña públicas y barras laterales para una experiencia de "escanear para donar" sin esfuerzo.

💰 Alcance Dual Local y Global: Destaca tus campañas en INR mientras aceptas sin problemas las principales monedas internacionales como USD, EUR, GBP y CAD para maximizar el apoyo global.

🔁 Donaciones Recurrentes sin Interrupciones: Se integra completamente con el complemento Charitable Recurring para gestionar suscripciones mensuales automáticas directamente a través de Razorpay sin código adicional.

↩️ Sincronización Automática Bidireccional: Mantén tus libros perfectamente limpios con la sincronización bidireccional de reembolsos: emite un reembolso dentro de WordPress o tu panel de Razorpay y ambos lados se actualizan automáticamente.

🔒 Seguridad Verificada por Webhook: Protege automáticamente tus registros de donaciones utilizando la verificación de webhook firmada con HMAC para asegurar que cada actualización de estado represente dinero real liquidado en el sistema.

Visita esta página para obtener más información.