Fundations provides a frontend edit form so fundraisers can update their pages without accessing the WordPress admin. This is a free feature available on all installs.
Why use it
Fundraisers need to update their story, adjust goals, add photos, and post updates as their campaign progresses. The frontend editor lets them do this from a dedicated page on your site, without giving them any admin access.
What it does
The shortcode [get_fund_edit_form] renders an edit form on any page. When a fundraiser visits that page with ?edit_fund={post_id} in the URL, they see their campaign data pre-filled and can save changes.
The form supports:
- Title and description (TinyMCE editor with bold, italic, and list formatting)
- Fundraising goal amount
- End date
- Featured image and gallery images (drag to reorder, remove existing, add new)
- Privacy setting (hide the creator name publicly)
- Campaign updates (add, edit, delete)
- Event tag assignment (if the admin has enabled it for all users)
- Per-campaign expiration visibility override (if the admin has enabled creator control)
- Option to disable child actions (joining is one-way for non-admins)
- Closing the campaign permanently
After saving, the fundraiser is redirected back to their campaign page.

How to use it
For administrators: initial setup
- Create a new page in WordPress and paste the shortcode
[get_fund_edit_form]into the content. - Publish the page.
- Go to Fundations > Settings and find the Edit Page option. Set it to the page you just created.
- Save settings.
Fundraisers will now see an “Edit Fundation” button on their dashboard and campaign pages, linking to this edit page.
For fundraisers: editing your campaign
- Log in to your account.
- Go to your user dashboard or open your campaign page.
- Click the Edit Fundation button.
- Make your changes in the form.
- Click Save Changes.

Closing a campaign
- Open the edit form for your campaign.
- Scroll to the Close Campaign section.
- Optionally enter a reason and closing message.
- Click Close Campaign.
Closure is permanent for non-admin users. There is no reopen button in the frontend. Only administrators can reopen a closed campaign from the WordPress admin.
Reactivating an expired campaign
If your campaign has expired and the administrator has enabled the reactivation option:
- Open the edit form.
- Set a new end date in the future.
- Save the form.
The campaign is automatically republished and the expired status is removed.
Settings & options
| Option | Default | Description |
|---|---|---|
get_fund_edit_page_id | (none) | The page ID where [get_fund_edit_form] is placed |
get_fund_expiration_creator_can_extend | true | Allow fundraisers to reactivate expired campaigns by setting a new end date |
get_fund_expiration_creator_can_choose | false | Allow fundraisers to choose their own expiration visibility setting |
get_fund_event_creation | admin_only | Who can assign event tags: admin_only or all_users |
What you can and cannot do
Fundraisers can edit their own campaigns from the frontend, add campaign updates visible to visitors, manage gallery images including reordering, and close a campaign with an optional reason and message. If the admin allows it, they can also reactivate an expired campaign by setting a future end date.
Fundraisers cannot edit another user’s campaign (unless they have the edit_others_posts WordPress capability), reopen a closed campaign from the frontend, re-enable child actions once disabled (only an admin can do that), or delete a campaign from the frontend.
Troubleshooting
| Problem | Likely cause | Fix |
|---|---|---|
| The edit form shows “You do not have permission” | You are not logged in, or you are not the campaign author | Log in with the correct account |
| There is no “Edit Fundation” button | The edit page ID option is not configured | Ask the admin to set the edit page in Fundations settings |
| The end date field does not appear after expiry | get_fund_expiration_creator_can_extend is disabled | Ask the admin to enable this option in settings |
| Changes are not saving | JavaScript error or session expiry | Refresh the page and try again; check the browser console for errors |
| Gallery reorder is not working | JavaScript is blocked or a plugin conflict | Disable other plugins temporarily to identify the conflict |
Developer reference
Hooks and filters
| Hook | Type | Description |
|---|---|---|
get_fund_user_can_edit_action | filter | Override edit permission for a specific user and post; receives bool, post_id, user_id |
get_fund_edit_form_fields | filter | Modify the initial form field data loaded into the form; receives array, post_id |
get_fund_edit_form_save_data | filter | Modify wp_update_post arguments before saving; receives array, post_id |
get_fund_edit_redirect_url | filter | Modify the URL the user is sent to after saving; receives string, post_id |
get_fund_before_frontend_edit | action | Fires before the form HTML is rendered; receives post_id |
get_fund_after_frontend_edit | action | Fires after the form HTML is rendered; receives post_id |
get_fund_action_updated | action | Fires after a successful save; receives post_id |
get_fund_action_closed | action | Fires after a campaign is closed; receives post_id |
Signatures
// Grant a custom role edit access
add_filter( 'get_fund_user_can_edit_action', function( bool $can_edit, int $post_id, int $user_id ) {
if ( user_can( $user_id, 'manage_campaigns' ) ) {
return true;
}
return $can_edit;
}, 10, 3 );
// Redirect to a custom page after saving
add_filter( 'get_fund_edit_redirect_url', function( string $url, int $post_id ) {
return get_permalink( $post_id ) . '?updated=1';
}, 10, 2 );
// Run code after a campaign is closed
add_action( 'get_fund_action_closed', function( int $post_id ) {
// e.g. notify a team manager
} );