Blog benéfico

Todo lo que necesitas saber sobre Charitable y nuestro equipo.

Tutorial: Cómo añadir contenido específico de la campaña al correo electrónico del recibo de donación

Última actualización el

  • Por

Si ejecutas muchas campañas, es posible que necesites añadir texto específico de la campaña a tus correos electrónicos de recibo de donación. Charitable no lo soporta de forma nativa, pero gracias a la flexibilidad del código subyacente, es posible habilitarlo.

La Solución

Para resolver este problema, vamos a añadir un nuevo campo al editor de Campaña en el panel de administración de WordPress. Este campo te permitirá añadir contenido.

Además, añadiremos una nueva etiqueta de correo electrónico que se puede incluir en cualquier correo de donación, incluido el Recibo de Donación.

Lo mejor de todo es que podemos lograr todo esto con solo dos funciones PHP. Veamos cómo.

Paso 1: Añadir nuestra función

En primer lugar, vamos a añadir una función PHP que se ejecutará cuando se llame al hook init dentro de WordPress. init es un hook que ocurre al principio mientras WordPress se está cargando, antes de que la página haya comenzado a renderizarse.

add_action( 'init', function() {
    // Our code will go in here.
} );

Ten en cuenta que en este ejemplo estamos creando lo que se conoce como una función anónima; esencialmente, es una función sin nombre. Esto está bien siempre que estés en una versión de PHP superior a la 5.2.

¿No estás seguro de cómo añadir código a tu sitio? Aquí tienes nuestro resumen de tres formas diferentes en las que puedes añadir código personalizado a tu sitio.

Paso 2: Añadir el campo al editor de Campaña

Desde la versión 1.6, Charitable ha incluido una API llamada Campaign Fields API que proporciona una forma fácil de añadir nuevos campos al editor de Campaña. Esto siguió a la Donation Fields API que añadimos en la versión 1.5.

Nuestro siguiente paso es usar la Campaign Fields API para añadir nuestro campo personalizado al editor de Campaña:

add_action( 'init', function() {

    /**
     * Create a new field as an instance of `Charitable_Campaign_Field`.
     *
     * See all available arguments at:
     *
     * @https://github.com/Charitable/Charitable/blob/ef9a468fbdd6fa83307abe6ac0c38896f625cf45/includes/fields/class-charitable-campaign-field.php
    */
    $campaign_field = new Charitable_Campaign_Field( 'campaign_email_content', array(
       'label' => 'Donation Email Content',
       'data_type' => 'meta',
       'admin_form' => array(
          'type' => 'textarea',
          'required' => false,
       ),
   ) );

    /**
     * Now, we register our new field.
     */
    charitable()->campaign_fields()->register_field( $campaign_field );

} );

En este código, primero creamos un nuevo campo creando un objeto Charitable_Campaign_Field. Pasamos dos parámetros al crear este objeto:

– Una clave – campaign_email_content
– Un array de argumentos

Solo estamos utilizando un subconjunto de todos los argumentos posibles al registrar un campo de campaña. Para ver otros argumentos disponibles, lee la documentación exhaustiva en línea en Github.

Si vamos a añadir una nueva campaña o editar una existente, ahora veremos un panel de "Configuración Ampliada" y, dentro de él, un campo de "Contenido del Correo de Donación".

Paso 3: Añadir una etiqueta de correo de donación

Ahora que tenemos nuestro campo de campaña en su lugar, el siguiente paso es crear una nueva etiqueta de correo para las donaciones. Hay varias formas de hacerlo. Una opción es usar la Donation Fields API para registrar un nuevo campo de donación y añadir automáticamente una etiqueta de correo para él. Esto sería apropiado si queremos usar el campo en varios lugares, como la exportación de donaciones o dentro de los metadatos de la donación.

En nuestro caso, solo queremos una etiqueta de correo, así que registraremos solo eso. El primer paso es crear una nueva función que se llamará en el hook de filtro charitable_email_donation_fields:

/**
 * We create a new function that will be called on the `charitable_email_donation_fields` filter.
 *
 * This function accepts two parameters:
 *
 * @param array $fields All registered donation email fields.
 * @param Charitable_Donation|null $donation When an email is being sent, this will be an instance of `Charitable_Donation`. Otherwise it's null.
 */
add_filter( 'charitable_email_donation_fields', function( $fields, $donation ) {
    Add our field here.
}, 10, 2 );

Al igual que con nuestra función anterior, esta es una función anónima. Pero esta acepta un par de parámetros. Dado que queremos usar dos parámetros, debemos especificarlo en la última línea de código, donde pasamos una prioridad de 10 y el número de parámetros, 2.

A continuación, crearemos una variable en nuestra función llamada $field que definirá el campo.

/**
 * Define our field as an array.
 */
$field = array(
    'description' => 'Campaign-specific content',
    'preview' => 'This is some campaign-specific content.',
);

Hasta ahora, esto solo establece una descripción y un valor de solo vista previa para el campo. El valor de vista previa es lo que ves en lugar del código corto del correo electrónico cuando haces clic en el botón "Vista previa del correo electrónico" en el correo electrónico.

Nuestro siguiente paso es obtener el valor a mostrar cuando se envía un correo electrónico:

/**
 * When this filter is called with a Donation object, we need to set
 * the `value` of the field to the campaign content. The rest of the
 * time, we don't need a `value` parameter.
 */
if ( ! is_null( $donation ) ) {
    /**
     * Get the campaign that received the donation.
     */
    $campaign_id = current( $donation->get_campaign_donations() )->campaign_id;
    $campaign = charitable_get_campaign( $campaign_id );

    /**
     * Set the `value` of our field to the campaign's email content.
     */
    $field['value'] = $campaign->get( 'campaign_email_content' );
}

En este código, primero verificamos si el parámetro $donation es null. Tenemos que verificar esto porque este filtro (charitable_email_donation_fields) no solo se llama cuando se envía un correo electrónico de donación; también se llama en otros momentos. Por ejemplo, cuando ve la página de configuración de correo electrónico para el correo electrónico de recibo de donación, este filtro se llama para obtener una lista completa de los campos de correo electrónico de donación.

Cuando sabemos que $donation no es null, podemos obtener el ID de la campaña usando el método $donation->get_campaign_donations(), que nos da un conjunto de filas que tienen todas las donaciones de campaña asociadas con una donación en particular. A menos que esté creando donaciones mediante programación o utilizando nuestra integración Easy Digital Downloads Connect, solo habrá una fila, por lo que obtenemos la primera fila usando current() y luego obtenemos la propiedad campaign_id de ella.

$campaign_id = current( $donation->get_campaign_donations() )->campaign_id;

Con $campaign_id en mano, podemos llamar a charitable_get_campaign( $campaign_id ) para obtener el objeto Charitable_Campaign.

$campaign = charitable_get_campaign( $campaign_id );

A su vez, establecemos la propiedad value de nuestro campo al valor del campo campaign_email_content de la campaña, el que registramos en el Paso 2 anterior.

$field['value'] = $campaign->get( 'campaign_email_content' );

Finalmente, agregamos nuestro campo al array $fields y devolvemos $fields, con nuestro campo personalizado incluido.

$fields['campaign_content'] = $field;

return $fields;

Paso 4: Agregar el código corto al contenido del correo electrónico

Si has estado siguiendo, ahora deberías tener todo el siguiente código:

/**
 * We are creating a function which will be called on the `init` hook.
 */
add_action( 'init', function() {

	/**
	 * Create a new field as an instance of `Charitable_Campaign_Field`.
	 *
	 * See all available arguments at:
	 *
	 * @https://github.com/Charitable/Charitable/blob/ef9a468fbdd6fa83307abe6ac0c38896f625cf45/includes/fields/class-charitable-campaign-field.php
	 */
	$campaign_field = new Charitable_Campaign_Field( 'campaign_email_content', array(
		'label'      => 'Donation Email Content',
		'data_type'  => 'meta',
		'admin_form' => array(
			'type'     => 'textarea',
			'required' => false,
		),
	) );

	/**
	 * Now, we register our new field.
	 */
	charitable()->campaign_fields()->register_field( $campaign_field );

} );

/**
 * We create a new function that will be called on the `charitable_email_donation_fields` filter.
 *
 * This function accepts two parameters and must return an array.
 *
 * @param array                    $fields   All registered donation email fields.
 * @param Charitable_Donation|null $donation When an email is being sent, this will be an instance of `Charitable_Donation`. Otherwise it's null.
 */
add_filter( 'charitable_email_donation_fields', function( $fields, $donation ) {
	/**
	 * Define our field as an array.
	 */
	$field = array(
		'description' => 'Campaign-specific content',
		'preview'     => 'This is some campaign-specific content.',
	);

	/**
	 * When this filter is called with a Donation object, we need to set
	 * the `value` of the field to the campaign content. The rest of the
	 * time, we don't need a `value` parameter.
	 */
	if ( ! is_null( $donation ) ) {
		/**
		 * Get the campaign that received the donation.
		 */
		$campaign_id = current( $donation->get_campaign_donations() )->campaign_id;
		$campaign    = charitable_get_campaign( $campaign_id );

		/**
		 * Set the `value` of our field to the campaign's email content.
		 */
		$field['value'] = $campaign->get( 'campaign_email_content' );
	}

	/**
	 * Finally, we add our new field to the `$fields` array.
	 *
	 * The key used here (`campaign_content`) will become the email tag
	 * key, so the email tag would be shown like this:
	 *
	 * [charitable_email show=campaign_content]
	 */
	$fields['campaign_content'] = $field;

	return $fields;

}, 10, 2 );

Solo hay dos funciones incluidas aquí, pero juntas hacen todo lo que necesitamos que hagan.

El paso final es agregar el código corto del correo electrónico al cuerpo del correo electrónico, lo que se puede hacer en el área de Configuración de correo electrónico:

Una vez que hayas hecho esto, prueba todo editando una de tus campañas, estableciendo contenido de campaña y finalmente agregando una donación de prueba a la campaña. El correo electrónico debería contener tu contenido personalizado específico de la campaña.

Consejo extra: Agregar etiqueta de correo electrónico de Easy Digital Downloads

Si estás utilizando nuestra extensión Easy Digital Downloads Connect y deseas mostrar tu contenido específico de la campaña en los correos electrónicos de compra de EDD, puedes incluir el código de este gist:

Ver el gist original en GitHub →

¿Disfrutaste de esto?

Planeo escribir más tutoriales como este para ilustrar diferentes formas en las que puedes personalizar y ajustar Charitable para que se adapte a tus necesidades. Este tutorial en particular se escribió en respuesta a la solicitud de un usuario, así que si tienes una idea para un tema que te encantaría que cubriera en el futuro, envíanos un correo electrónico a través de nuestra página de Soporte o deja un comentario a continuación.

Divulgación: Nuestro contenido es compatible con los lectores. Esto significa que si haces clic en algunos de nuestros enlaces, podemos ganar una comisión. Solo recomendamos productos que creemos que aportarán valor a nuestros lectores.

2 respuestas a “Tutorial: Cómo añadir contenido específico de la campaña al correo electrónico de recibo de donación”

  1. ¡Esto es genial! ¿Se puede usar html en este campo para hacer algo como poner en negrita una frase?

    1. ¡Buena pregunta, Josh! HTML debería funcionar ahí.

      Saludos,
      Eric

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

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!

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í.