- 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_config_abilities Filter Hook
Overview
The suredonation_config_abilities filter allows developers to customize the set of SureDonation abilities registered with the WordPress Abilities API.
The WordPress Abilities API provides a standardized way to expose plugin capabilities to WordPress and compatible tools, including MCP-based integrations.
This filter runs after SureDonation has assembled its built-in abilities for areas such as:
- Campaigns
- Donations
- Donors
- Forms
- Analytics
Use this filter to add new abilities or modify existing ability definitions.
When to Use This Filter
Use this filter when you need to:
- Register a custom ability from an extension.
- Modify an existing SureDonation ability.
- Extend SureDonation functionality for an MCP-compatible integration.
- Expose custom reports or operations through the WordPress Abilities API.
Filter Signature
apply_filters( 'suredonation_config_abilities', $abilities);Parameters
| Parameter | Type | Description |
| $abilities | array | The merged list of SureDonation ability definitions. |
The array contains the built-in SureDonation ability definitions after they have been assembled.
Return Value
Return an array containing the ability definitions.
return $abilities;
If the callback returns a non-array value, SureDonation converts the result to an empty array.
Basic Usage
add_filter( 'suredonation_config_abilities', 'your_custom_function', 10, 1);
function your_custom_function( $abilities ) {
// Add or modify ability definitions here.
return $abilities;
}Example: Register a Custom Ability
The following example adds a custom report ability.
add_filter( 'suredonation_config_abilities', 'mysite_add_ability', 10, 1);
function mysite_add_ability( $abilities ) {
$abilities[] = [
'name'Â => 'my-plugin/custom-report',
'label' => 'Custom Report',
// Add the remaining ability definition here.
];
return $abilities;
}The exact properties required by the WordPress Abilities API depend on the capability being registered.
Example: Modify an Existing Ability
You can also inspect the existing ability definitions and modify a specific ability.
add_filter( 'suredonation_config_abilities', 'mysite_modify_ability', 10, 1);
function mysite_modify_ability( $abilities ) {
foreach ( $abilities as &$ability ) {
if ( 'suredonation/custom-ability' === $ability['name'] ) {
$ability['label'] = 'My Custom Label';
}
}
return $abilities;
}When modifying existing definitions, make sure the ability name matches the registered ability exactly.
Ability Registration Flow
The filter runs after SureDonation has assembled its built-in ability definitions.
SureDonation built-in abilities
↓
Campaign abilities
Donation abilities
Donor abilities
Form abilities
Analytics abilities
↓
suredonation_config_abilities
↓
Custom abilities added or definitions modified
↓
Abilities registered with WordPress
Important: Result Is Memoized
The ability configuration is memoized after the first call.
This means the result of Config_Ability::get_abilities() is cached for subsequent calls during the same request lifecycle.
Because of this:
- Add your filter before SureDonation retrieves the ability configuration.
- Avoid relying on changing the filtered result later in the same request.
- Keep the callback deterministic.
Related Hooks
None.
We don't respond to the article feedback, we use it to improve our support content.