- Handle Custom Stripe Webhook Events
- suredonation_export_secret_option_keys Filter Hook
- suredonation_import_batch_complete Action Hook
- suredonation_import_complete Action Hook
- suredonation_import_donation_inserted Action Hook
- suredonation_import_donor_inserted Action Hook
- suredonation_import_session_created Action Hook
- suredonation_import_givewp_batch_complete Action Hook
- suredonation_import_givewp_session_created Action Hook
- suredonation_privacy_data_exported Action Hook
- Validate Field Filter Hook
- Validatable Blocks Filter Hook
- Update donation data, Filter Hook
- OttoKit Integration: suredonation_suretriggers_integration_data_filter Filter Hook
- suredonation_show_setup_gateway_notice Filter Hook
- suredonation_show_review_notice_gateway Filter Hook
- suredonation_show_review_notice_donation Filter Hook
- suredonation_registered_payment_methods Filter Hook
- suredonation_register_additional_blocks Filter Hook
- suredonation_receipt_html Filter Hook
- suredonation_phone_geo_enabled Filter Hook
- suredonation_phone_geo_api_hourly_cap Filter Hook
- suredonation_paypal_webhook_handle_event Filter Hook
- suredonation_paypal_sdk_args Filter Hook
- suredonation_output_campaign_meta_tags Filter Hook
- suredonation_new_donor_user_data Filter Hook
- suredonation_integration_payload Filter Hook
- suredonation_import_phase_mappers Filter Hook
- suredonation_import_givewp_phases Filter Hook
- suredonation_import_givewp_phase_mappers Filter Hook
- suredonation_import_donation_row Filter Hook
- suredonation_import_campaigns_limit Filter Hook
- suredonation_field_block_config Filter Hook
- suredonation_export_one_time_only Filter Hook
- suredonation_export_campaigns_limit Filter Hook
- suredonation_email_smart_tags Filter Hook
- suredonation_email_smart_tag_groups Filter Hook
- suredonation_email_field_char_limits Filter Hook
- suredonation_disable_default_styles Filter Hook
- suredonation_default_validation_messages Filter Hook
- suredonation_default_email_notifications Filter Hook
- suredonation_create_donation_data Filter Hook
- suredonation_config_abilities Filter Hook
- suredonation_available_payment_methods Filter Hook
- suredonation_allowed_form_html Filter Hook
- suredonation_allowed_form_blocks Filter Hook
- Validatable Blocks Filter Hook
- Update donation data, Filter Hook
- OttoKit Integration: suredonation_suretriggers_integration_data_filter Filter Hook
- suredonation_show_setup_gateway_notice Filter Hook
- suredonation_show_review_notice_gateway Filter Hook
- suredonation_show_review_notice_donation Filter Hook
- suredonation_registered_payment_methods Filter Hook
- suredonation_register_additional_blocks Filter Hook
- suredonation_receipt_html Filter Hook
- suredonation_phone_geo_enabled Filter Hook
- suredonation_phone_geo_api_hourly_cap Filter Hook
- suredonation_paypal_webhook_handle_event Filter Hook
- suredonation_paypal_sdk_args Filter Hook
- suredonation_output_campaign_meta_tags Filter Hook
- suredonation_new_donor_user_data Filter Hook
- suredonation_integration_payload Filter Hook
- suredonation_import_phase_mappers Filter Hook
- suredonation_import_givewp_phases Filter Hook
- suredonation_import_givewp_phase_mappers Filter Hook
- suredonation_import_donation_row Filter Hook
- suredonation_import_campaigns_limit Filter Hook
- suredonation_field_block_config Filter Hook
- suredonation_export_secret_option_keys Filter Hook
- suredonation_export_one_time_only Filter Hook
- suredonation_export_campaigns_limit Filter Hook
- suredonation_email_smart_tags Filter Hook
- suredonation_email_smart_tag_groups Filter Hook
- suredonation_email_field_char_limits Filter Hook
- suredonation_disable_default_styles Filter Hook
- suredonation_default_validation_messages Filter Hook
- suredonation_default_email_notifications Filter Hook
- suredonation_create_donation_data Filter Hook
- suredonation_config_abilities Filter Hook
- suredonation_available_payment_methods Filter Hook
- suredonation_allowed_form_html Filter Hook
- suredonation_allowed_form_blocks Filter Hook
- suredonation_import_batch_complete Action Hook
- suredonation_import_complete Action Hook
- suredonation_import_donation_inserted Action Hook
- suredonation_import_donor_inserted Action Hook
- suredonation_import_session_created Action Hook
- suredonation_import_givewp_batch_complete Action Hook
- suredonation_import_givewp_session_created Action Hook
- suredonation_privacy_data_exported Action Hook
- suredonation_enqueue_form_frontend_scripts Action Hook
- suredonation_after_form_duplicated Action Hook
- suredonation_email_sent Action Hook
- suredonation_donor_user_created Action Hook
- suredonation_donation_refunded Action Hook
- suredonation_donation_status_changed Action Hook
- suredonation_donation_completed Action Hook
- suredonation_new_donation Action Hook
- suredonation_donation_created Action Hook
suredonation_create_donation_data Filter Hook
Overview
The suredonation_create_donation_data filter allows developers to modify the donation data generated during a REST API donation creation request, immediately before the record is inserted into the database.
The filtered array is passed directly to SureDonation’s donation creation process. This makes the hook useful for adding or modifying custom donation data, including fields introduced by an extension.
When to Use This Filter
Use this filter when you need to:
- Add custom data to a donation record.
- Modify existing donation fields before insertion.
- Map additional REST request parameters to donation data.
- Store information from external sources such as UTM parameters.
- Extend SureDonation with custom database columns.
Filter Signature
apply_filters( 'suredonation_create_donation_data', $donation_data, $request );Parameters
| Parameter | Type | Description |
| $donation_data | array | The donation record that will be inserted. |
| $request | WP_REST_Request | The original REST API request. |
Donation Data
The $donation_data array contains fields such as:
| Key | Description |
| campaign_id | ID of the campaign associated with the donation. |
| donor_id | ID of the donor record. |
| amount | Donation amount. |
| fees_covered | Whether the donor covered transaction fees. |
| currency | Donation currency. |
| gateway | Payment gateway used. |
| payment_status | Current payment status. |
| payment_mode | Payment mode, such as test or live. |
| donor_name | Donor name. |
| donor_email | Donor email address. |
| donor_phone | Donor phone number. |
| is_anonymous | Whether the donation is marked anonymous. |
| donation_type | Donation type. |
| donor_comment | Comment provided by the donor. |
| transaction_id | Payment transaction ID. |
Return Value
Return the modified donation data array.
return $donation_data;
The returned array is passed directly to the donation insertion process.
Basic Usage
add_filter( 'suredonation_create_donation_data', 'your_custom_function', 10, 2);
function your_custom_function( $donation_data, $request ) {
// Modify the donation data here.
return $donation_data;
}Example: Store a UTM Source
The following example reads the utm_source parameter from the REST request and stores it in the donor comment.
add_filter( 'suredonation_create_donation_data', 'mysite_tag_source', 10, 2);
function mysite_tag_source( $donation_data, $request ) {
$source = $request->get_param( 'utm_source' );
if ( $source ) {
$donation_data['donor_comment'] =
'Source: ' . sanitize_text_field( $source );
}
return $donation_data;
}Example: Add a Custom Field
If an extension has added a custom column to the donations table, the filter can be used to populate it.
add_filter( 'suredonation_create_donation_data', 'mysite_add_campaign_source', 10, 2);
function mysite_add_campaign_source( $donation_data, $request ) {
$source = $request->get_param( 'campaign_source' );
if ( $source ) {
$donation_data['campaign_source'] =
sanitize_text_field( $source );
}
return $donation_data;
}Donation Creation Flow
The filter runs after SureDonation has assembled the donation data but before the record is inserted.
REST create-donation request
↓
Validate request
↓
Build donation data
↓
suredonation_create_donation_data
↓
Custom data added or existing data modified
↓
Donations::add()
↓
Donation stored in database
↓
suredonation_donation_created
Data Sanitization
The returned array is passed directly to the donation insertion process.
If you add or modify values, sanitize them before returning the array.
For example:
$source = sanitize_text_field(
$request->get_param( 'utm_source' )
);Do not store raw user-provided values without appropriate sanitization or validation.
Related Hooks
- suredonation_update_donation_data: Filters donation data before an existing donation is updated through the REST API.
- suredonation_donation_created: Fires after a new donation has been created.
We don't respond to the article feedback, we use it to improve our support content.