Consejos para escribir código personalizado para Charitable

Una razón por la que Charitable es uno de los mejores plugins de WordPress para gestionar campañas y aceptar donaciones es su flexibilidad y su capacidad para permitir a otros personalizar varios aspectos clave de la experiencia, incluidos los correos electrónicos, los detalles de la campaña y el formulario de donación. Parte de esta flexibilidad reside en los "hooks y filtros" que Charitable tiene en su código y que están disponibles para los desarrolladores de WordPress. A través de ellos, un desarrollador puede personalizar un sitio para:

— Mostrar un campo personalizado en el formulario de donación a través de la API de Campos de Donación.
— Añadir nuevas etiquetas de correo electrónico o modificar las existentes con la API de Campos de Correo Electrónico.
— Personalizaciones de complementos como el complemento Ambassador y el complemento de Recibos Anuales.

El código para un plugin de WordPress se puede escribir de varias maneras y en diferentes lugares: parte del código se puede colocar en el archivo "functions.php" del tema activo de WordPress, parte se escribe en un plugin (que se puede activar y desactivar incluso si el usuario mantiene el mismo tema) y (lo que es cada vez más popular) el código se puede alojar en un plugin de fragmentos de código.

Independientemente de dónde resida el código, existen buenas prácticas que los desarrolladores y programadores de WordPress deberían utilizar para garantizar que el sitio web en el que se ejecuta permanezca seguro y no caiga en errores. Lo siguiente no es una guía completa ni exhaustiva, sino recordatorios generales para quienes escriben código O aceptan código de desarrolladores para insertarlo en su sitio web, especialmente si ese código depende de un plugin de terceros (como Charitable). 

Archivo de Plugin Preferido

Si es posible, intente colocar el código personalizado en SU PROPIO plugin de WordPress. Esto facilita mantener el código en su lugar si cambia su tema de WordPress y también le permite activar/desactivar fácilmente el plugin que contiene las personalizaciones con fines de depuración. Hay muchas publicaciones y tutoriales en la web sobre cómo crear un plugin simple de WordPress como este.

No Asumas, Siempre Comprueba

Es importante que cualquier código personalizado NO ASUMA QUE CHARITABLE ESTÁ ACTIVADO Y FUNCIONANDO EN SU SITIO WEB. ¿Por qué? Porque si intenta llamar a una función en el código principal de Charitable, y el código no está allí, puede ocurrir un error... ¡un error que podría derribar su sitio web! A veces, WordPress puede poner su sitio en "Modo de Recuperación" y enviar un correo electrónico al administrador del sitio para notificarle sobre este error, pero no siempre es así. Por lo tanto, CUALQUIER código escrito para Charitable, independientemente de su propósito o de dónde se encuentre el código, debería "comprobar" para asegurarse de que Charitable está activado y/o de que la función que intentan llamar existe.

Observe nuestro primer ejemplo (¡malo!):

👎🏻 EJEMPLO MALO:

// Bad Example :-( Of Hooking Into Charitable

function charitable_add_donation_gateway_email_tag() {
    charitable()->donation_fields()->get_field( 'gateway_label' )->email_tag = true;
}
add_action( 'init', 'charitable_add_donation_gateway_email_tag' );

El propósito de este bloque de código es hacer que la "etiqueta de puerta de enlace" sea algo que se pueda agregar como una etiqueta dinámica en los correos electrónicos de Charitable. El desarrollador anterior está "enganchando" la función que hace esto en el "init" de WordPress, que se ejecuta cada vez que se carga una página en el sitio web, sin importar si está en el administrador o en el front-end. Tenga en cuenta que la función utiliza "charitable()"... pero si esta no existe, PHP generará un "error fatal" y, dado que el código anterior se carga en CADA Y TODAS las cargas de página, es muy probable que todo el sitio se bloquee sin la posibilidad de iniciar sesión como administrador, etc.

De nuevo, es una buena práctica no asumir nunca que una función existe si esa función forma parte de un plugin o tema (en otras palabras, si no forma parte del núcleo de WordPress). Asumir que la clase "charitable()" existe significa asumir que el plugin Charitable siempre estará ahí, pero si el plugin se desactiva (por un humano o por otro plugin) o si el plugin se está actualizando... la función no se encontrará y se encontrará un error (posiblemente "fatal"). Aquí está la misma función pero con una simple adición:

👍🏻 BUEN EJEMPLO:

// Good Example :-) Of Hooking Into Charitable
// Checking To See If The Class Exists!

function charitable_add_donation_gateway_email_tag() {
    if ( class_exists('charitable') ) : // check for class
       charitable()->donation_fields()->get_field( 'gateway_label' )->email_tag = true;
    endif;
}
add_action( 'init', 'mysite_charitable_add_donation_gateway_email_tag' );

Observe la declaración "if" que comprueba si existe la clase "charitable". Esta es una forma en PHP de comprobar de forma segura si la clase existe (en este caso, solo existirá si Charitable se está ejecutando activamente en el sitio web). Si no existe, el código no se ejecuta y todos están a salvo. Es común que los desarrolladores de PHP realicen comprobaciones como class_exists y function_exists como formas rápidas de garantizar que el código que están a punto de ejecutar no encontrará errores graves porque algo que asumen que existe no existe.

Utilice nombres únicos para las funciones

Como se señaló en los ejemplos anteriores, nunca dé a sus funciones nombres genéricos como "update_email" porque si otro plugin utiliza el mismo nombre (plugins actuales o futuros que pueda instalar), su sitio web podría sufrir problemas. Al crear una función, comience siempre con "miweb_charitable_" (como en el ejemplo anterior, reemplazando "miweb" con una cadena de longitud razonable del nombre de su sitio web) para asegurarse de que ha creado un nombre personalizado que no se repite (también puede utilizar la misma "lógica de comprobación de existencia" del paso anterior si desea ir un paso más allá).

Habilite la depuración y los registros de depuración de WordPress

Para cualquier cosa más allá de un script simple, a los desarrolladores de WordPress les gusta documentar y registrar advertencias y errores de PHP para "capturar" problemas (especialmente si no son aparentemente visibles en el sitio web). El equipo de soporte de Charitable recomienda las funciones base WP_DEBUG y WP_DEBUG_LOG, como se menciona aquí en la documentación de WordPress.

¿Usar un plugin de fragmentos de código?

Todo lo dicho anteriormente también es aplicable al código insertado en plugins de fragmentos de código. Si tiene un problema con Charitable y sabe que está ejecutando código personalizado en un fragmento de código, debería poder desactivar el plugin de fragmentos de código para ver si esto resuelve el problema o le ayuda a solucionar problemas más a fondo.

No pruebes en producción

Finalmente, es una buena idea probar el código personalizado en un entorno de desarrollo o staging y no en vivo en tu sitio web. Si desactivas Charitable aquí como prueba, es una buena forma "final" de determinar si tu sitio web podría experimentar problemas significativos. Esto mantiene tu entorno de producción seguro y aún capaz de aceptar donaciones. 


Recuerda que si no estás seguro sobre el código que estás añadiendo a tu tema, tu propio plugin o un plugin de fragmentos de código, consulta con un desarrollador. Si tienes algunas preguntas generales, no dudes en contactar a nuestro equipo de soporte, que estará encantado de responder preguntas sobre cualquier código que puedas estar añadiendo a tu sitio web para extender Charitable. ¡Estamos aquí para ti y para apoyarte a extender tu sitio web para satisfacer tus necesidades!

Esperamos que compartir estas sugerencias te dé la confianza y asegure que tus personalizaciones de Charitable continuarán funcionando bien durante años.

Recibe consejos y recursos gratuitos directamente en tu bandeja de entrada, junto con más de 60.000 personas.

Ú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!

Vídeo destacado:

Mira más vídeos en nuestro canal de YouTube.

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!

embajadores Nuevo

🖨️ Presentamos Folletos y Carteles: ¡Recauda fondos fuera de la pantalla!

Gran parte de la recaudación de fondos entre particulares ocurre fuera de la pantalla: en la meta de una carrera de 5 km, en un tablón de anuncios escolar, en la cocina de una oficina. Charitable Ambassadors 3.4.7 añade 2 imprimibles: un folleto de recaudación de fondos que lleva la propia historia y código QR de cada recaudador, y un cartel de reclutamiento que inscribe a nuevos recaudadores. Ambos se abren como una página web normal y se imprimen directamente desde el navegador. Por qué esto es importante:

  • 🏁 Un folleto para cada recaudador: Cada uno lleva la foto, la historia y el objetivo del recaudador, con un código QR que abre su página en lugar de la de tu campaña principal.
  • 📌 Un cartel que recluta: Muestra "Reclutando ahora" encima del nombre de tu campaña con un gran código QR que abre tu formulario de inscripción, para que alguien pueda empezar a recaudar fondos sin esperar un enlace tuyo.
  • 🪄 No se necesita herramienta de diseño: Ambos imprimibles se muestran como una página web normal y se imprimen desde el navegador, sin necesidad de plugin PDF ni diseñador.
  • 📄 2 diseños de folleto: "Repartir" lleva la historia completa para dar a amigos y familiares, y "Colgar" lleva un breve gancho con 5 pestañas para arrancar para un tablón de anuncios.
  • 🛡️ Desactivado hasta que lo actives: Los folletos permanecen desactivados después de la actualización hasta que los habilites en Charitable » Ambassadors » Other » Fliers, y solo el propietario o un administrador puede abrir uno.

Consulta nuestro anuncio aquí.

Mejora Pagos

💸 Presentamos las tarifas escalonadas para el alivio de comisiones: ¡Ajusta la petición a la donación!

El alivio de comisiones hace una pregunta corta a tus donantes al finalizar la compra: ¿te gustaría cubrir la comisión de procesamiento de esta donación? Hasta ahora, esa pregunta utilizaba una única tarifa para cada donación en una pasarela, por lo que una donación de 10 $ y una de 500 $ recibían la misma pregunta de porcentaje. El alivio de comisiones 1.3.0 te permite establecer tantas bandas de donación como desees, cada una con su propia tarifa. Por qué esto es importante:

  • 🪙 Más suave con las donaciones pequeñas: Una comisión de transacción fija supone una parte mucho mayor de una donación de 10 $ que de una de 500 $, por lo que las bandas te permiten pedir menos en la parte inferior.
  • 🎚️ Tantas bandas como necesites: Cada banda tiene su propio porcentaje y su propio importe fijo, y la banda superior continúa sin límite superior.
  • 🛑 Un techo opcional: Un campo de comisión máxima evita que se pida a ningún donante más de una cantidad que tú elijas, por muy grande que sea la donación.
  • 🔌 Configurar por pasarela de pago: Stripe puede funcionar con cuatro bandas, mientras que Windcave y Payfast se mantienen con una tarifa única, ya que las bandas pertenecen a una pasarela y no a todo tu sitio.
  • 🛡️ Nada cambia hasta que tú lo digas: Tus tarifas actuales se mantienen exactamente como están hasta que actives Usar tarifas escalonadas en Charitable » Settings » Advanced » Fee Relief.

Consulta nuestro anuncio aquí.

Donaciones Mejora

📊 ¡Tu panel de control Pro ahora puede comparar, exportar y calificar!

La mayoría de los paneles de control de recaudación de fondos solo te dicen cuánto has recaudado. Charitable Pro 1.8.19 reconstruye el panel de control y la Descripción general de informes en torno a las preguntas más difíciles: si algo está roto, si este período superó al anterior y qué cambio único marcaría la mayor diferencia hoy. Por qué esto es importante:

  • 📈 Cada cifra tiene una tendencia: Elige un período y las fichas y el gráfico se mueven juntos, con cada total mostrado frente al período anterior.
  • 🗓️ Gráficos que se mantienen legibles: Los rangos cortos agrupan las donaciones día a día, mientras que los rangos más largos agrupan por semana o mes, por lo que un año completo se lee como una curva en lugar de una línea plana.
  • 🔀 Compara cualquier 2 períodos: No solo los consecutivos, para que puedas preguntar cómo fue este diciembre en comparación con el diciembre pasado. Eso importa porque la recaudación de fondos es estacional.
  • 📤 Exporta el resumen completo: Envía la descripción general completa como CSV o PDF, lista para un paquete de junta directiva o un informe de financiador.
  • 🎯 Califica tu configuración gratis: Haz que tu configuración de recaudación de fondos sea calificada, para que el único cambio que valga la pena hacer a continuación sea el que puedas ver.

Consulta nuestro anuncio aquí.

Función Nuevo

🎟️ Presentamos Eventos Benéficos: ¡Vende entradas dentro de tus campañas!

La mayoría de las organizaciones sin ánimo de lucro venden entradas para eventos en una herramienta y recaudan donaciones en otra, lo que genera dos conjuntos de informes y una conciliación manual al final del año. Eventos Benéficos une ambas cosas, vendiendo entradas a través de los mismos formularios de donación y pasarelas de pago que ya utilizas en Charitable. Por qué esto es importante:

  • 🎟️ Cada entrada es una donación: Las ventas de entradas se procesan a través de la pasarela que ya utilizas y cuentan para el objetivo de la campaña, con todo gestionado en Charitable » Eventos.
  • 📱 Registro con código QR desde cualquier teléfono: Cada asistente recibe su propio código QR en el recibo, y los voluntarios escanean en la puerta a través de un enlace de registro que no necesita cuenta de WordPress.
  • 🧾 Recibos listos para la declaración de impuestos: Asigna a cada tipo de entrada un valor justo de mercado, y Charitable incluirá el importe correcto deducible de impuestos en cada recibo de donante.
  • 📋 Detalles del asistente al finalizar la compra: Pregunta a cada invitado por su elección de comida, talla de camiseta o necesidades de acceso, con un registro de asistente independiente creado para cada entrada.
  • 🗓️ Bloques y calendarios incluidos: Tres bloques de editor, además de la compatibilidad con Sugar Calendar y The Events Calendar, muestran tus eventos donde los colaboradores ya los buscan.

Consulta nuestro anuncio aquí.

ia Nuevo

🚀 ¡Libera el poder de la IA en Charitable!

Tu asistente de IA ahora puede crear, editar y administrar tus campañas de recaudación de fondos de Charitable directamente, solo con pedírselo. Con Charitable Pro añadiendo soporte de escritura para la API de Habilidades de WordPress, herramientas como ChatGPT, Claude y Cursor pueden manejar acciones administrativas completas de forma segura a través de MCP. Por qué esto es importante:

  • 🤖 Creación de campañas en lenguaje natural: Pídele a tu asistente un objetivo como “Configura una recaudación de fondos para el refugio con un objetivo de 5.000 $”, y creará un borrador de campaña real completo con niveles de donación sugeridos.
  • 🎨 Ajustes instantáneos del formulario de donación: Añade campos personalizados, cambia los colores de los botones o reordena elementos sin tener que entrar en la configuración del formulario.
  • 📝 Registro de donaciones sin conexión: Informa a tu asistente sobre donaciones en efectivo o cheque, y cruzará los correos electrónicos de los donantes y registrará las transacciones en tu historial.
  • 🛡️ Seguridad y control por defecto: El acceso de escritura permanece estrictamente desactivado hasta que se active en Charitable » Herramientas » AI MCP, manteniendo el informe de solo lectura seguro por defecto.
  • 📜 Registro de auditoría completo: Cada cambio realizado por un asistente de IA se rastrea en Charitable » Herramientas » Registros, por lo que siempre sabrás quién (o qué) actualizó tu sitio.

Consulta nuestro anuncio aquí.