Documentación de Charitable

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

Changing Recurring Donation Amounts and Billing Periods

Requiere:

  • Charitable Pro 1.8.16+
  • Charitable Recurring Donations 2.1.0+

A donor’s situation changes. Maybe next month is tight and they want to drop their $50 monthly gift to $25, or a matching grant came through and they’d like to bump up their annual donation. Before Charitable Recurring 2.1, the only way to handle that was to cancel the subscription and ask the donor to start a new one, which loses the payment history and risks the gift never coming back.

Now you can update an active recurring donation’s amount and billing period directly from your WordPress admin, and the change syncs to Stripe automatically. The same subscription stays in place, so the payment history is preserved and the donor keeps their original start date.

You can apply a change immediately, or send the donor a secure approval link first. Every change is written to your audit log, and changes you make in the Stripe Dashboard sync back to Charitable on their own.

The Recurring Donation edit screen with the Update Subscription action selected in the Donation Actions box

When you’d use it

  • A donor asks to change their amount – update it in seconds instead of cancel-and-resubscribe.
  • A donor wants to switch from monthly to annual (or any other period) – change the billing period in place.
  • A change needs the donor’s sign-off – send an approval email and let the donor confirm before anything happens at Stripe.
  • Someone edited the subscription in the Stripe Dashboard – Charitable picks up the new amount and period automatically.
  • You need a record of who changed what – every update lands in Charitable’s logs with the old value, new value, and who made it.

Cómo encontrarlo

Open the recurring donation you want to change:

WordPress Admin > Donations > Recurring Donations > (click the donation)

In the Donation Actions box on the right, choose Update Subscription from the dropdown, then click the Update Subscription button.

The donation must use the Stripe gateway and be in Active status. Paused, cancelled, completed, and pending subscriptions can’t be edited, which keeps the donor from being surprised by an unexpected charge.

Updating a subscription

The Update Subscription window shows the current subscription at the top, then the fields you can change.

The Update Subscription window showing the current subscription, New Amount field, New Billing Period dropdown, update mode options, and donor notification checkbox

1. Set the new amount and/or period

  • New Amount – enter any value from 1.00 up to (in theory) 999999.99. Leave it unchanged to keep the current amount.
  • New Billing Period – choose from daily, weekly, monthly, quarterly, semiannually, or yearly. Leave it on the current period to keep it.

You can change one or both. The change takes effect on the donor’s next billing date; their current cycle finishes normally, and no proration is applied.

2. Choose how the change is applied

  • Apply immediately – the change is sent to Stripe right away.
  • Request donor approval – a pending change is stored and the donor receives an email with secure approve and deny links. Nothing changes at Stripe until they approve.

3. Decide whether to notify the donor

The Notify donor of this change checkbox is on by default. When checked, the donor receives a “Subscription Updated” email with the old and new amount or period. Uncheck it for back-office adjustments the donor doesn’t need to hear about.

When you click Update Subscription, you’ll see a success message and the donation total updates on the page.

The donor approval workflow

When you choose Request donor approval, the donor gets an email with two links: one to approve the change and one to deny it.

The donor approval email with Approve and Deny buttons

A few things worth knowing about how the approval links work:

  • Secure and donation-specific. Each link carries a signed token tied to that exact donation. A link for one donation can’t be used on another.
  • They expire. Approval links are valid for 7 days. After that, the link stops working and you’d need to re-issue the request.
  • One use only. Once the donor approves or denies, the link is spent. Clicking it again does nothing.
  • A new request replaces an old one. If you issue a second change while one is still pending, the newer request supersedes the older one and the old link stops working.

If the donor clicks Approve, the change is pushed to Stripe and the donation updates. If they click Deny, the subscription stays exactly as it was and the pending change is cleared.

Changes made in the Stripe Dashboard

If you (or a teammate) edit a subscription’s amount or billing period directly in the Stripe Dashboard, Charitable notices and updates the local donation to match. This happens through the Stripe webhook you already have configured, so there’s nothing extra to set up. It means the donation record in WordPress stays accurate no matter where the edit was made.

Reading the audit log

Every subscription change is recorded in your Charitable logs, whether it came from an admin update, a donor approval, or the Stripe Dashboard.

WordPress Admin > Charitable > Tools > Logs

The Charitable Tools Logs screen showing subscription update entries with old and new values

Each entry records the old value, the new value, who made the change, and when. You can filter by donation ID to see the full history of a single subscription.

The donor notification email

By default, donors receive a “Subscription Updated” email after a successful change, laying out what changed. You can customize or disable it from:

WordPress Admin > Charitable > Settings > Emails

The Charitable Emails settings showing the Subscription Updated and Subscription Change Request emails

Two emails relate to this feature:

  • Subscription Updated – sent to the donor after a change is applied. On by default.
  • Subscription Change Request – the approval-request email, sent when you choose “Request donor approval.”

Click either email to edit its subject, headline, and body, or to turn it off.

Consejos

  • Use Request donor approval for any change a donor didn’t explicitly ask for, so they always have the final say.
  • The donation’s Active status is required. If the Update Subscription option is missing or disabled, check the subscription status first.
  • Changes take effect on the next billing cycle, not immediately, so the donor is never double-charged in the current period.

Developer reference

The full update path is built on hooks, so you can intercept, extend, or react to subscription changes.

Filtros

FiltroPredeterminadoPropósito
charitable_process_subscription_update_stripearray( 'success' => false, 'message' => ... )Implemented by Charitable Pro 1.8.16+. Receives the recurring donation and the proposed changes, pushes them to Stripe, and returns a result array. Both the admin update endpoint and the donor approval handler call it.
charitable_recurring_confirmation_page_colorsbrand colorsColors for the donor-facing approve/deny confirmation page.
charitable_recurring_confirmation_page_headingper-action headingThe heading shown on the confirmation page.
charitable_recurring_confirmation_page_messageper-action messageThe body message on the confirmation page.
charitable_recurring_confirmation_page_buttonreturn-home buttonThe button shown on the confirmation page.
charitable_recurring_confirmation_page_htmlvacíoReturn custom HTML to replace the entire confirmation page.

Acciones

AcciónArgumentosCuando se activa
charitable_recurring_subscription_updated$donation, $changes, $old_valuesAfter a successful update. Triggers the “Subscription Updated” donor email when that email is enabled.
charitable_recurring_subscription_change_requested$donation, $pending_data, $raw_tokenWhen an admin requests donor approval. Triggers the approval-request email.
charitable_stripe_subscription_details_changed$subscription, $stripe_objectFired by Pro’s webhook processor on a Stripe customer.subscription.updated event. The reverse-sync listener reads the new amount and period off the Stripe object.

Helper functions and classes

  • charitable_recurring_update_local_subscription( $donation, $changes ) – updates local meta only. Handles single-campaign and multi-campaign proportional distribution of a new amount.
  • Charitable_Recurring_Subscription_Change_Handler::process_approval() – handles the donor’s approve click (?donation_id=X&token=Y&action=approve).
  • Charitable_Recurring_Subscription_Change_Handler::process_denial() – handles the deny path.
  • Charitable_Recurring_Subscription_Change_Handler::cleanup_expired_pending_changes() – removes expired pending-change records (runs on a scheduled event).
  • Charitable_Gateway_Stripe_AM::$period_map – static array mapping each Charitable period to a Stripe interval and interval_count.
  • Charitable_Gateway_Stripe_AM::update_subscription( $result, $donation, $changes ) – the method behind the filter; mints a Stripe Plan for the new args and swaps the subscription’s item to it with proration disabled.

Period mapping

The amount and period you set map to Stripe’s billing model like this:

Charitable periodStripe intervalinterval_count
dayday1
weekweek1
monthmonth1
quartermonth3
semiannualmonth6
yearyear1

Approval token

The approval link uses an HMAC-SHA256 token bound to the donation ID, the time the change was proposed, and a one-time 32-character secret. Tokens expire after 7 days. A repeated-attempt counter is stored in the charitable_sub_token_attempts_{donation_id} transient, and the pending-change record is deleted on approve or deny so a link can’t be replayed.

Ejemplos de personalización

Add a custom log line whenever a subscription is updated:

add_action( 'charitable_recurring_subscription_updated', function ( $donation, $changes, $old_values ) {
    error_log( sprintf(
        'Subscription #%d updated: %s',
        $donation->ID,
        wp_json_encode( $changes )
    ) );
}, 10, 3 );

Notify your team in Slack when a donor approval is requested:

add_action( 'charitable_recurring_subscription_change_requested', function ( $donation, $pending_data, $raw_token ) {
    my_slack_notify( sprintf(
        'Approval requested for recurring donation #%d',
        $donation->ID
    ) );
}, 10, 3 );

Brand the donor confirmation page:

add_filter( 'charitable_recurring_confirmation_page_colors', function ( $colors ) {
    $colors['primary'] = '#16a34a';
    return $colors;
} );

Relacionado

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

Nuevo Pagos

⚡ Unlock India-Based Donations: Meet Charitable’s Native Razorpay Integration

Trying to collect donations in India? Charitable’s native Razorpay integration features:

⚡ Instant UPI Integration: Accept fast, local donations directly inside your form via apps like PhonePe, Google Pay, Paytm, and BHIM without sending donors away from your site.

📲 Auto-Generated Campaign QRs: Instantly render scannable QR codes encoding a UPI deep link directly on your public campaign pages and sidebars for an effortless “scan-to-give” experience.

💰 Dual Local & Global Reach: Headline your campaigns in INR while seamlessly accepting major international currencies like USD, EUR, GBP, and CAD to maximize global support.

🔁 Seamless Recurring Giving: Fully integrates with the Charitable Recurring addon to manage automatic monthly subscriptions directly through Razorpay without extra code.

↩️ Automatic Two-Way Sync: Keep your books perfectly clean with two-way refund syncing—issue a refund inside WordPress or your Razorpay dashboard and both sides update automatically.

🔒 Webhook-Verified Security: Automatically protect your donation records using HMAC-signed webhook verification to ensure every status update represents real money cleared on the rails.

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

Integración Nuevo

🎉 New Built-in PushEngage Integration

Struggling with falling email open rates and rising ad costs just to keep your supporters engaged? Charitable’s built-in PushEngage integration features:

🔔 Zero-Fee Direct Messaging: Deliver crisp, instant pop-up notifications straight to your donors’ desktops and mobile devices.

⏱️ Four Smart Automated Triggers: Automatically send updates for immediate donation thank yous, full-list campaign launches, urgent “ending soon” alerts, and goal milestone celebrations.

📈 Group Momentum Broadcasts: Turn private milestones into public wins by automatically broadcasting alerts to your entire subscriber list the moment a campaign hits 50%, 75%, or 100% of its goal.

📊 Automatic Analytics Tracking: Monitor exactly where your incoming notification traffic is coming from with built-in attribution that requires zero complex configuration.

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

Nuevo Seguridad

💂‍♂️ ¡Nuevo DonationGuard 🛡️ Protege automáticamente tus donaciones!

¿Te preocupan los ataques de prueba de tarjetas o los bots de spam que inundan tus formularios de donaciones, pero no quieres arruinar la experiencia de donación para tus donantes reales? Las características de DonationGuard de Charitable incluyen:

🛡️ Detección de bots en tiempo real: Supervisa activamente cada envío de donación en busca de cinco señales de ataque distintas sin ralentizar a tus donantes humanos.

📊 Puntuación inteligente del tráfico: Evalúa instantáneamente la actividad frente a una base de referencia aprendida de los ritmos normales de donación de tu sitio para detectar pruebas de tarjetas sigilosas y de goteo lento.

🚨 Alertas por nivel de gravedad: Abre inmediatamente "Registros de ataques" estructurados y te notifica por correo electrónico y alertas de administrador en el momento en que una campaña comienza a recibir ataques.

🎯 Defensa con un clic: Implementa seguridad instantánea utilizando el ajuste preestablecido "Configuración recomendada" para activar los módulos Honeypot, Time Trap y Rate Limit a la vez.

🚫 Listas de bloqueo automatizadas: detenga permanentemente a los infractores reincidentes bloqueando automáticamente las direcciones de correo electrónico sospechosas según sus reglas personalizadas.

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

GiveWP Migraciones Nuevo

🧤 Servicio de migración Guante Blanco para GiveWP

¿Estás pensando en cambiar tu plataforma de recaudación de fondos de GiveWP a Charitable, pero no quieres arriesgarte a perder tus datos ni a encargarte tú mismo de una configuración técnica compleja? El Servicio de Migración "White Glove" de Charitable incluye:

👥 Mapeo impecable de donantes: Transfiere de forma segura toda tu base de datos de colaboradores sin pérdida de datos.

📊 Historial financiero completo: Conserva meticulosamente cada transacción histórica para una presentación de informes continua y precisa.

🔄 Donaciones recurrentes sin interrupciones: Transfiere de forma segura las suscripciones activas sin interrumpir tus ingresos ni requerir que tus donantes actualicen su información.

💳 Cero interrupciones en la pasarela de pago: Sigue usando Stripe, PayPal o cualquier otro procesador compatible con GiveWP que ya te guste.

🚀 Configuración técnica experta: Relájate mientras nuestro equipo se encarga de la instalación y configuración de tus formularios. Además, los usuarios que cumplan los requisitos obtendrán un año completo de Charitable Pro gratis.

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

automatización Mejora

📢 Alerta de nueva función: ¡Automation Connect 2.0 ya está aquí! 🚀

¿Estás pensando en conectar tus datos de recaudación de fondos con herramientas como Mailchimp, Slack o Google Sheets, pero no quieres contratar a un desarrollador ni escribir código personalizado? El nuevo complemento de automatización de Charitable incluye:

⚡ 17 disparadores de eventos: Activa instantáneamente webhooks para el primer donativo de un donante, pagos de renovación o hitos de campaña alcanzados.

🎯 Lógica condicional inteligente: Utiliza una potente lógica AND/OR en 11 campos para enviar datos solo cuando cumplan tus criterios exactos, como las suscripciones al boletín.

📊 Control de carga útil personalizado: Selecciona entre más de 80 campos de datos limpios de metadatos de donantes, donaciones y campañas para que tus aplicaciones obtengan exactamente lo que necesitan.

🚀 Plantillas de plataforma preconstruidas: Evita la configuración desde cero con plantillas listas para usar para Zapier, Make.com, n8n, HubSpot y Slack.

🛡️ Herramientas de desarrollador fiables: Potencia tus flujos de trabajo con cargas útiles firmadas HMAC-SHA256, filtros completos de WordPress y registros de reintentos automáticos.