Documentación de Charitable

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

API de Campos de Donación

La API de Campos de Donación proporciona una forma potente y flexible de añadir, eliminar y editar tus campos de donación.

¿Qué son los campos de donación?

Los campos de donación son cualquier dato sobre una donación que esté disponible para que lo utilices. Por ejemplo, aquí tienes algunos de los campos disponibles por defecto:

  • first_name – Obtiene el nombre del donante.
  • last_name – Obtiene el apellido del donante.
  • amount_formatted – Obtiene el importe de la donación, formateado según la configuración de divisa de tu sitio (p. ej. 50,00 $).
  • date – La fecha en que se realizó la donación.
  • gateway_label – El método de pago que utilizó el donante.

¿Cómo obtengo el valor de un campo de donación en particular?

Puedes obtener el valor de cualquier campo de donación a través del objeto Charitable_Donation de la donación.

El primer paso es obtener un objeto Charitable_Donation:

$donation_id = 123; // Replace with your Donation's ID.
$donation    = charitable_get_donation( $donation_id );

A continuación, puedes obtener el valor del campo llamando a get() en el objeto, como puedes ver en los siguientes ejemplos:

$first_name = $donation->get( 'first_name' );
$date       = $donation->get( 'date' );
$gateway    = $donation->get( 'gateway_label' );

Para juntarlo todo:

$donation_id = 123;
$donation    = charitable_get_donation( $donation_id );
$first_name  = $donation->get( 'first_name' );

¿Cómo añado un nuevo campo a mi formulario de donación?

Añadir un nuevo campo es un proceso de dos pasos.

Primero, crearás un nuevo objeto Charitable_Donation_Field que definirá los parámetros de tu campo: su etiqueta, el tipo de valor que almacena, cómo debe incluirse en el formulario de donación (si es que se incluye), si debe añadirse al archivo de exportación de donaciones, y más.

A continuación, añadirás este campo a la clase Charitable_Donation_Field_Registry, que proporciona una forma de almacenar y recuperar campos de donación.

Veamos cómo funciona esto en un ejemplo:

/**
 * Create a callback function on the `init` hook, where we
 * can register our donation field.
 */
add_action( 'init', function() {

    /* Create the `Charitable_Donation_Field` object. */
    $field = new Charitable_Donation_Field(
        'my_custom_field',
        array(
            'label'          => __( 'My Custom Field' ),
            'data_type'      => 'meta', 
            'donation_form'  => array(
                'type'       => 'text',
                'required'   => false,
                'show_after' => 'phone',
            ), 
            'admin_form'     => true,
            'show_in_meta'   => true,
            'show_in_export' => true,
            'email_tag'      => array(
                'description' => __( 'The custom field value' ),
            ),
        )
    );

    /* Get the `Charitable_Donation_Field_Registry` instance. */
    $fields = charitable()->donation_fields();

    /* Add the new field. */
    $fields->register_field( $field );
} );

En el ejemplo anterior, hemos creado un nuevo campo con la clave my_custom_field. Aquí tienes lo que significan sus parámetros definidos:

  • Su etiqueta es “Mi Campo Personalizado”. Esto es lo que se utilizará en el formulario de donación, en el área de detalles de donación del administrador y en la exportación de donaciones como encabezado de columna.
  • Su tipo de datos es meta. Esto significa que se almacenará como un campo meta específico para esa donación.
  • Está configurado para mostrarse en el formulario de donación, justo después del campo phone. Es un campo opcional.
  • También se añadirá al formulario de donación del administrador.
  • Al ver los detalles de la donación, podrás ver lo que el donante introdujo para este campo en la sección “Detalles de la donación”.
  • Al descargar una exportación de donaciones, se añadirá una nueva columna “Mi campo personalizado” que mostrará lo que los donantes introdujeron para este campo.
  • Se ha creado una nueva etiqueta de correo electrónico para este campo, por lo que puedes incluirla fácilmente en correos electrónicos específicos de donaciones, como el Recibo de donación (para donantes) o la Notificación de donación (para administradores).

Este es un ejemplo relativamente simple, pero logra mucho. Haz clic aquí para un desglose más detallado de todos los parámetros disponibles al crear objetos Charitable_Donation_Field.

¿Cómo cambio un campo de donación existente?

Para cambiar un campo de donación existente, primero recuperas el campo del Charitable_Donation_Field_Registry y luego actualizas el valor del campo.

Para actualizar el valor del campo, podemos llamar a set() en el campo o usar el setter mágico.

/**
 * Create a callback function on the `init` hook, where we
 * can start changing the donation field.
 */
add_action( 'init', function() {

    /* Get the Donation Field Registry object. */
    $fields = charitable()->donation_fields();

    /* Get the field we want to change. */
    $field  = $fields->get_field( 'phone' );
    
    /**
     * Change #1: Make it a required field (uses set()).
     * Change #2: Change the label (uses magic setter).
     */
    $field->set( 'donation_form', 'required', true );
    $field->label = 'Phone Number';
} );

Para más información sobre cómo actualizar los argumentos del campo, consulta la referencia detallada de esos métodos de clase:

¿Cómo añado un campo a un formulario de donación de una campaña específica?

Si quieres que un campo nuevo o existente solo se muestre para ciertas campañas, puedes hacerlo añadiendo una nueva función que controle si el campo se muestra en el formulario de donación.

Si estás añadiendo un campo nuevo, primero tendrás que crear el campo de donación, así que sigue esos pasos primero.

Ahora puedes *ocultar* el campo que registraste de todos los formularios de donación excepto del que quieres que se muestre:

add_filter( 'charitable_donation_form_user_fields', function( $fields, $form ) {

    /* If the field doesn't exist, stop right here. */
    if ( ! array_key_exists( 'my_custom_field', $fields ) ) {
        return $fields;
    }

    /* Match any campaign that DOESN'T have a slug of 'special-campaign' */
    if ( 'special-campaign' !== $form->get_campaign()->post_name ) {    
        unset( $fields['my_custom_field'] );
    }
    
    return $fields;
}, 10, 2 );

¿Qué está pasando aquí?

  • Solo queremos que el campo my_custom_field se muestre en la campaña con un slug de ‘special-campaign’.
  • El campo se mostrará en todas las campañas por defecto, así que nuestro código comprueba si la campaña *no* tiene un slug de ‘special-campaign’ y luego la elimina.

Puedes cambiar la condición bajo la cual se muestra el campo. Por ejemplo, puedes cambiar el campo para que solo se muestre para campañas de una categoría determinada, o para campañas que tengan una campaña principal específica (es decir, recaudaciones de fondos para una de tus campañas de recaudación de fondos de persona a persona).

¿Cómo cambio un campo de donación para una campaña en particular?

El enfoque utilizado anteriormente para mostrar un campo en una campaña en particular se puede adaptar para *cambiar* un campo de donación para una campaña en particular.

Por ejemplo, si solo quieres aceptar donaciones de donantes de un país específico para una campaña determinada, puedes lograrlo con el siguiente código:

add_filter( 'charitable_donation_form_user_fields', function( $fields, $form ) {
    /* If a country field doesn't exist, stop right here. */
    if ( ! array_key_exists( 'country', $fields ) ) {
        return $fields;
    }

    if ( 'south-africa-only' === $form->get_campaign()->post_name ) {
        $fields['country']['options'] = array(
            'ZA' => 'South Africa',
        );
    }	

    return $fields;

}, 10, 2 );

Este código hará que la campaña con el slug ‘south-africa-only’ solo muestre Sudáfrica como opción de país válida.

¿Cómo hago que un campo de donación se muestre según la entrada del usuario?

Los dos ejemplos anteriores mostraron cómo añadir/cambiar campos de donación basándose en la campaña del formulario de donación. Pero, ¿y si quieres mostrar u ocultar un campo basándote en la entrada del usuario?

Gestionar esto requiere un enfoque diferente, utilizando Javascript. Si eres un desarrollador con confianza, puedes añadir esto a través de un nuevo archivo Javascript, pero en el ejemplo a continuación utilizaremos la función wp_add_inline_script para añadir nuestro Javascript personalizado sin necesidad de crear, registrar y poner en cola un nuevo script.

En el ejemplo a continuación, solo mostramos nuestro campo personalizado, my_custom_field, cuando el donante es de los Estados Unidos:

add_action( 'wp_enqueue_scripts', function() {
    wp_add_inline_script( 'charitable-script', "
        jQuery('body').on('charitable:form:loaded', (event, donationForm) => {
            var countryField = donationForm.get_input('country');
            function toggleCustomField() {
                donationForm.get_input('my_custom_field').parent().toggle('US' === countryField.val());
            }
            countryField.on('change', toggleCustomField).trigger('change');
        });
    " );
} );

Lista completa de campos de donación predeterminados

Los siguientes campos son añadidos por Charitable y sus extensiones:

ClaveDescripción
donation_idEl ID de la donación
nombreEl nombre del donante.
apellidoEl apellido del donante.
donanteEl nombre completo del donante.
correo electrónicoLa dirección de correo electrónico del donante.
direccion_donanteLa dirección completa del donante, formateada.
direccionEl primer campo de la dirección del donante.
direccion_2El segundo campo de la dirección del donante.
ciudadLa ciudad del donante.
provinciaEl estado del donante.
codigo_postalEl código postal del donante.
paisEl país del donante.
telefonoEl número de teléfono del donante.
campanasLa campaña que recibió la donación.
lista_categorias_campanasLas categorías en las que se encuentra la campaña.
importe_formateadoEl importe de la donación, formateado según la configuración de su divisa.
fechaLa fecha de la donación.
horaLa hora en que se realizó la donación.
estadoEl estado de la donación. Devuelve el valor crudo de post_status.
etiqueta_estadoEl estado de la donación como una etiqueta más legible.
pasarela_donacionLa pasarela de pago utilizada para la donación.
etiqueta_pasarelaLa pasarela de pago como una cadena de texto fácil de leer.
clave_donacionLa clave única de la donación.
id_transaccion_pasarelaEl ID de transacción de la donación en la pasarela de pago utilizada (por ejemplo, PayPal, Stripe).
modo_pruebaSi la donación se realizó en modo de prueba.
resumen_donacionUn resumen legible de la donación, que indica la campaña que recibe la donación y el importe donado.
consentimiento_contactoSi el donante dio su consentimiento para ser contactado.
cubrir_comisionesSi el donante cubrió las comisiones.
Añadido por Fee Relief.
importe_comisionEl importe de las comisiones de procesamiento pagadas por el donante.
Añadido por Fee Relief.
importe_comision_formateadoEl importe de las comisiones de procesamiento pagadas por el donante, formateado según la configuración de su divisa.
Añadido por Alivio de comisiones.
donacion_total_con_comisionesEl importe total de la donación, incluidas las comisiones de procesamiento.
Añadido por Alivio de comisiones.
donacion_total_con_comisiones_formateadaEl importe total de la donación, incluidas las comisiones de procesamiento, formateado según la configuración de su divisa.
Añadido por Alivio de comisiones.
consentimiento para rastrearSi el donante ha dado permiso para rastrear la actividad de su boletín (aperturas, clics). Esto solo se aplica si está utilizando Campaign Monitor.
Añadido por Conexión de boletines.
donación anónimaSi el donante ha optado por permanecer en el anonimato.
Añadido por Donaciones anónimas.
comentario del donanteEl comentario dejado por el donante.
Añadido por Comentarios de donantes.
Gift AidSi el donante reclamó la desgravación fiscal.
Añadido por Gift Aid.
declaración de Gift AidLa declaración que el donante aceptó al reclamar la desgravación fiscal.
Añadido por Gift Aid.
títuloEl título del donante (Sr., Sra., Srta., etc.).
Añadido por Gift Aid.
dirección 3La tercera línea de la dirección del donante.
Añadido por Gift Aid.

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

Mejora Pagos

💰 Acepta donaciones recurrentes con Windcave y Charitable

Un donante configura su donación una vez en la página de pago segura de Windcave, y Charitable factura cada renovación según lo programado. Por qué esto es importante:

🏦 Organizaciones con sede en Nueva Zelanda o Australia: donaciones mensuales en la pasarela con la que tu banco ya te ha configurado, sin un segundo procesador que incorporar.
⛪ Iglesias que reciben diezmos y ofrendas regulares: los miembros de la congregación establecen su propio calendario una vez, que es la forma más sencilla de lanzar donaciones recurrentes para la iglesia sin una plataforma separada.
🌏 Grupos con donantes en varias divisas: Windcave gestiona más de 20, por lo que un donante puede dar en la divisa que realmente posee.
📅 Fondos operativos en lugar de campañas puntuales: activa el modo Solo Recurrente y la opción única desaparece, por lo que cada donación a esa campaña es una suscripción.
🧾 Equipos sin desarrollador en plantilla: 3 conjuntos de credenciales pegados en una página de configuración, y sin código en ninguna parte.

Consulta nuestro anuncio aquí.

automatización actualizar

⚡ Creador Visual de Automatización: ¡Arrastrar y Soltar Sin Código!

Charitable Automation Connect 2.3.0 presenta el Generador de Automatización Visual, un lienzo a pantalla completa que presenta cada automatización como un flujo de tarjetas conectadas: un desencadenador, condiciones opcionales y una lista de acciones que se ejecutan en orden.

🧩 Muchas acciones, un desencadenador: Etiqueta a un donante, envía un correo electrónico, agrega una nota y activa una llamada webhook desde un solo evento, arrastrado en cualquier orden.

✉️ Actúa dentro de Charitable: Las nuevas acciones Enviar correo electrónico, Etiquetar donante y Agregar nota de donante se ejecutan sin necesidad de un servicio externo.

🔤 Etiquetas de combinación: Personaliza correos electrónicos y notas con campos en vivo como {first_name}, {total} y {campaign_name}.

🔁 Aplicar a donantes existentes: Ejecuta Etiquetar donante y Agregar nota de donante contra los donantes que ya tienes.

🖥️ Lienzo o Simple: Cambia de vista en cualquier momento, y las automatizaciones creadas antes de la 2.3.0 siguen funcionando sin cambios.

Lee más aquí.

Integración actualizado

📬 Presentamos Brevo para Charitable: Convierte donantes en suscriptores automáticamente

El momento en que un donante realiza una donación es cuando está más comprometido. Con la nueva integración de Brevo para Charitable, puedes convertir automáticamente a esos donantes únicos en suscriptores a largo plazo sin tocar una sola hoja de cálculo.

Simplemente recopila el consentimiento del donante directamente en tu formulario de donación y comienza tu serie de bienvenida de inmediato.

Novedades:

🔄 Sincronización automática de suscriptores: Los nuevos donantes que aceptan se añaden directamente a tu lista de contactos de Brevo tan pronto como se procesa su pago, sin necesidad de exportaciones manuales ni importaciones de CSV.

🎯 Control granular de consentimiento y opción de suscripción: Personaliza la etiqueta de tu casilla de verificación, elige si se marca por defecto o no, o activa la doble opción de suscripción de Brevo para mantener tu lista limpia y conforme.

📋 Mapeo de listas por campaña: Dirige a los donantes a tu lista de correo global o mapea campañas específicas a listas de Brevo dirigidas para adaptar tus mensajes de seguimiento.

⚡ Configuración en 5 minutos: Conéctate al instante pegando tu clave API de Brevo en la configuración de Newsletter, mapea tus campos de contacto y empieza a crear tu lista de correo en piloto automático.

¿Listo para hacer crecer tu lista de correo? Brevo ya está disponible a partir del plan Charitable Plus. ¡Conecta tu cuenta hoy mismo!

donaciones recurrentes actualizado

💳 Presentamos Actualizaciones de Tarjeta: ¡Soluciona Tarjetas Caducadas Sin Perder Suscripciones!

Las tarjetas de crédito caducadas o actualizadas son una de las mayores fugas silenciosas en la recaudación de fondos recurrente. Con las actualizaciones de tarjetas en la extensión de donaciones recurrentes, los donantes ahora pueden actualizar sus detalles de pago directamente, manteniendo intactas su suscripción, su calendario y su historial de donaciones.

Sin planes cancelados, sin historial perdido y sin dolores de cabeza administrativos para tu equipo.

Novedades:

⚡ Autoservicio en 30 Segundos: Los donantes obtienen un botón dedicado de “Actualizar Tarjeta” en su panel que abre el Portal de Clientes seguro y compatible con PCI de Stripe para actualizar los detalles de la tarjeta al instante.

🔒 Acceso Seguro y Delimitado: Delimitado exclusivamente a las actualizaciones de tarjetas por defecto, los donantes no pueden cancelar ni alterar accidentalmente sus planes desde el portal, manteniendo tus webhooks y datos sincronizados.

🤝 Soporte Asistido por Administrador: ¿Ayudando a un donante por teléfono? Abre su portal seguro de Stripe con un solo clic desde tu pantalla de administrador o genera un enlace de actualización de un solo uso para enviárselo por correo electrónico.

📋 Pista de Auditoría Automática: Cada actualización de método de pago se registra automáticamente con una marca de tiempo tanto en los registros generales del sistema como en el perfil del donante individual.

¡Listo para proteger tus ingresos recurrentes? Obtén el plan Plus o Pro y actualiza Donaciones Recurrentes a la versión 2.3.0+ y activa “Actualizar Método de Pago” en tu Configuración hoy mismo.

Integración constructor de páginas

¡Fans de Divi, regocíjense! ¡Módulo nativo de barra de progreso de campaña para Divi 5!

Con nuestro nuevo módulo nativo para Divi 5, puedes anclar tus micrositios con estadísticas de recaudación de fondos en tiempo real directamente en el lienzo visual. Así es como funciona y por qué vale la pena activarlo hoy.

Crea actualizaciones de campaña que sean VISUALES Y EN VIVO. También puedes:

📊 Barra de progreso de la campaña: Inserta una barra de progreso en vivo en cualquier diseño de Divi 5 y muestra el progreso de los objetivos en tiempo real.

🎨 Controles de estilo avanzados: Personaliza fácilmente el color de la barra y el seguimiento, la altura y el radio para que coincidan perfectamente con tu marca.

👁️ Listo para el constructor visual: Configura y previsualiza todo directamente en el lienzo de Divi como un módulo de primera clase.

🔁 Renderizado idéntico: El mismo motor exacto impulsa este módulo, lo que significa un diseño consistente sin soluciones alternativas heredadas.

✅ Lanzamientos más rápidos: Nunca salgas de la interfaz de Divi 5 para configurar códigos cortos o adivinar cómo se verán las etiquetas de tus objetivos.

Más información aquí.