Blog benéfico

Todo lo que necesitas saber sobre Charitable y nuestro equipo.

Tutorial: Establecer páginas de recibo personalizadas por campaña

Última actualización el

  • Por

Por defecto, tu sitio tendrá una única página de recibo de donación, a la que los donantes serán redirigidos automáticamente después de hacer su donación.

Puedes usar la página de recibo autogenerada que proporciona Charitable directamente, o puedes especificar una página concreta para que se use como tu página de recibo de donación. Consulta la guía a continuación si no estás seguro de cómo hacerlo:

¿Pero qué pasa si quieres usar una página de recibo diferente para diferentes campañas? Eso no es posible directamente, pero gracias a la flexibilidad integrada de Charitable, es posible lograrlo con solo dos funciones PHP.

La Solución

Nuestra solución añadirá un nuevo campo al editor de campañas que te permitirá seleccionar una página estática como página de recibo de donación para tu campaña. A menos que elijas una página específica, se usará la opción por defecto, que es la que esté configurada en Charitable > Ajustes > General para la opción "Página de recibo de donación".

Explicaré la solución a continuación, pero si solo quieres el código, puedes descargarlo desde Github:

https://github.com/Charitable/Charitable-Custom-Campaign-Receipt-Pages

Paso 1: Añadir nuestra función

Al igual que con los dos últimos tutoriales, este comienza con 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 comience a renderizarse.

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

Estamos usando una función anónima aquí, lo cual está bien siempre que estés en una versión de PHP superior a la 5.2.

Si no estás seguro de cómo añadir esto a tu sitio, consulta nuestra guía:

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

Ahora podemos añadir nuestro ajuste "Página de recibo de donación" registrando un nuevo campo usando la API de Campos 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( 'donation_receipt_page', array(
		'label'      => 'Donation Receipt Page',
		'data_type'  => 'meta',
		'admin_form' => array(
			'type'     => 'select',
			'required' => false,
			'options'  => array(
				'default' => 'Use the default donation receipt page',
				'pages'   => array(
					'options' => charitable_get_pages_options(),
					'label'   => 'Pages',
				),
			),
			'default'  => 'default',
			'section'  => 'campaign-donation-options',
		),
                'show_in_export' => true,
	) );

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

} );

Este es el mismo enfoque que utilizamos en los dos tutoriales anteriores, por lo que si los leíste, esto te resultará bastante familiar. Una novedad es cómo se configura el ajuste admin_form del campo:

'admin_form' => array(
	'type'     => 'select',
	'required' => false,
	'options'  => array(
		'default' => 'Use the default donation receipt page',
		'pages'   => array(
			'options' => charitable_get_pages_options(),
			'label'   => 'Pages',
		),
	),
	'default'  => 'default',
	'section'  => 'campaign-donation-options',
),

El type se establece en select, lo que significa que se utilizará un campo desplegable. Los campos de selección requieren un conjunto de opciones, que se pasan como un array. Nuestro array incluye primero una opción default, seguida de una lista de páginas, recuperadas usando la función charitable_get_pages_options(). Si estás familiarizado con HTML, la forma en que esto está estructurado significa que el array options dentro de pages crea un elemento optgroup, con label establecido como la etiqueta.

Nuestro nuevo campo de Página de recibo de donación

Paso 3: Anular la página de recibo de donación por defecto

Dentro de Charitable, la URL del recibo de donación para una donación concreta se recupera así:

charitable_get_permalink( 'donation_receipt_page', array(
    'donation_id' => $donation_id,
) );

Esta función, a su vez, utiliza la API de Endpoints, que proporciona una forma estructurada de tratar con puntos finales importantes dentro de Charitable, como campañas, páginas de donación, la página de inicio de sesión y la página de recibo de donación.

Lo importante para nuestro caso es que el permalink devuelto se puede filtrar. En el caso de la página de recibo de donación, el filtro a usar es charitable_permalink_donation_receipt_page. Proporciona dos parámetros:

  • $default – El permalink por defecto a utilizar. A este recurriremos si la campaña no ha establecido una página de recibo personalizada, o si está utilizando la por defecto.
  • $args – Un array que contiene el ID de la donación.

Paso 3a: Crear el esquema de la función de devolución de llamada

En primer lugar, veamos cómo será la estructura de nuestra función de devolución de llamada:

/**
 * Filter the page to redirect the donor to after making their donation.
 *
 * @param  string $default The endpoint's URL.
 * @param  array  $args    Mixed set of arguments.
 * @return string
 */
add_filter( 'charitable_permalink_donation_receipt_page', function( $default, $args ) {

   // Code goes here.

}, 10, 2 } );

Como puede ver, estamos definiendo una función anónima que está enganchada al filtro charitable_permalink_donation_receipt_page. Es importante destacar que nuestra última línea establece la función de devolución de llamada para que opere con prioridad 10 (la predeterminada) y reciba 2 parámetros.

Paso 3b: Obtener la campaña para el recibo de donación

El parámetro $args incluirá una propiedad donation_id. Usamos esto para obtener un objeto Charitable_Donation y, a su vez, usamos eso para obtener el objeto Charitable_Campaign:

/**
 * Get the donation object.
 */
$donation_id = isset( $args['donation_id'] ) ? $args['donation_id'] : get_the_ID();
$donation    = charitable_get_donation( $donation_id );

/**
 * Get the campaign that received the donation.
 */
$campaign_id = current( $donation->get_campaign_donations() )->campaign_id;
$campaign    = charitable_get_campaign( $campaign_id );

Paso 3c: Obtener la página de recibo de donación de la campaña

Ahora que tenemos un objeto Charitable_Campaign, podemos obtener la configuración de la página de recibo de donación para la campaña con el método get():

/**
 * Get the campaign's donation receipt page.
 */
$receipt_page = $campaign->get( 'donation_receipt_page' );

Paso 3d: Comprobar si se debe devolver la URL del recibo predeterminada

Recuerde que puede configurar la campaña para que utilice el recibo predeterminado. También es posible que no haya actualizado su campaña desde que agregó la configuración de Página de recibo de donación, en cuyo caso la variable $receipt_page será false. Si se da alguna de estas situaciones, devolveremos la variable $default ya que no tenemos un recibo personalizado para esta campaña:

/**
 * If we haven't set a donation receipt page or we chose
 * the default option, return the default.
 */
if ( ! $receipt_page || 'default' == $receipt_page ) {
    return $default;
}

Paso 3e: Devolver la URL del recibo personalizado

Si todavía estamos aquí en este punto, significa que hay una página de recibo personalizada configurada para esta campaña. Todo lo que queda por hacer es obtener el permalink de esa página y luego agregarle el donation_id, así como donation_receipt. La URL resultante se verá así:

https://mysite.com/my-custom-receipt-page/?donation_id=123&donation_receipt=1

Así es como lo hacemos:

/**
 * Get the permalink for the receipt page and then append
 * the donation_id and donation_receipt arguments to it.
 */
$receipt_page_url = get_permalink( $receipt_page );
$receipt_page_url = add_query_arg(
	array(
		'donation_id'      => $donation_id,
		'donation_receipt' => 1,
	),
	$receipt_page_url
);

/**
 * Return the escaped URL.
 */
return esc_url_raw( $receipt_page_url );

get_permalink es un plugin principal de WordPress que se utiliza para obtener la URL de una página o publicación en particular. Lo usamos como base para nuestra URL y luego le agregamos los argumentos de consulta requeridos con add_query_arg. Finalmente, lo devolvemos como un valor escapado con esc_url_raw.

Paso adicional: Configurar su página de recibo personalizada

Esta solución le permite utilizar cualquier página como página de recibo de donación. Es probable que desee mostrar información sobre la donación al donante cuando llegue a la página del recibo. Para incluir esto, puede usar el shortcode [donation_receipt]; mostrará la información dinámica del recibo que normalmente se muestra en los recibos de Charitable.

Ideas adicionales para personalizar la página de recibo de donación

Hemos visto aquí cómo personalizar la página de recibo de donación por campaña. ¿Pero qué pasa si desea utilizar una página de recibo de donación diferente basada en un factor diferente?

En nuestra biblioteca de fragmentos de código, tenemos un par de fragmentos disponibles que le muestran cómo puede usar un recibo de donación diferente en otros escenarios:

¿Tiene una idea para otro tutorial?

Si tienes una idea para otro tutorial, ¡me encantaría conocerla! Deja un comentario abajo o ponte en contacto a través de nuestra página de Soporte.

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.

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