Applies to: Fundations (Free) and Fundations Pro
Review these requirements before installing Fundations. Most modern WordPress hosting environments meet them without any configuration.
Software requirements
| Requirement | Minimum | Recommended |
|---|---|---|
| WordPress | 5.0 | 6.4 or later |
| PHP | 7.4 | 8.1 or later |
| MySQL / MariaDB | 5.6 | 8.0 / 10.5 or later |
| Theme type | Block theme (FSE) | Twenty Twenty-Four or any FSE-compatible theme |
Fundations 2.8.x has been tested up to WordPress 6.9. WordPress enforces the PHP minimum at install time, so the plugin will not activate on PHP 7.3 or lower.
Server configuration
| Setting | Minimum | Notes |
|---|---|---|
| PHP memory limit | 128 MB | 256 MB recommended for large donation archives |
| Max upload size | 2 MB | 10 MB or more recommended for campaign image uploads |
| WP-Cron | Enabled | See note below |
WP-Cron dependency
Fundations schedules three background tasks on activation:
| Event | Frequency | Purpose |
|---|---|---|
get_fund_check_pending_donations | Every 30 minutes | Reconciles donations stuck in a pending state |
get_fund_check_expired_actions | Daily | Closes fundraisers that have passed their end date |
get_fund_cleanup_sync_logs | Daily | Removes old integration sync log entries |
If your hosting environment has disabled WP-Cron (define( 'DISABLE_WP_CRON', true ) in wp-config.php), these events will not fire automatically. Set up a real server cron job that calls wp-cron.php at least once every 30 minutes:
*/30 * * * * wget -q -O - https://yoursite.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
Without the pending-donation check running, some payments that complete asynchronously (for example Mollie with a delayed webhook) may remain in a pending state until the next cron run.
PHP extensions
| Extension | Status | Purpose |
|---|---|---|
json | Required | Core data handling |
mbstring | Recommended | Multi-byte string processing for international names |
gd or imagick | Recommended | Image resizing for campaign photos |
curl | Recommended | Payment gateway webhooks and integration HTTP requests |
Database tables
On activation, Fundations creates three custom database tables:
| Table | Purpose |
|---|---|
{prefix}get_fund_donations | Full donation records (amount, donor, payment provider, status) |
{prefix}get_fund_action_stats | Denormalized aggregate cache for raised amounts and donor counts |
{prefix}get_fund_sync_logs | Log entries for integration syncs (CRM, webhooks) |
For fresh installs, the custom donations table is enabled automatically. Sites upgrading from an older version that stored donations in post meta will need to run a one-time migration. See Installation & Setup for details.
Optional plugins
| Plugin | Required for |
|---|---|
| WooCommerce (latest) | Fundations Pro WooCommerce payment integration |
| WP Fusion | Fundations Pro WP Fusion CRM integration |
Recurring donations
Recurring donations are disabled in the current release. The codebase includes the infrastructure but it is turned off via an internal flag (GET_FUND_RECURRING_ENABLED = false). No recurring donation UI is shown to donors. This applies to both Free and Pro.
Troubleshooting
Plugin will not activate after upload. WordPress checks the PHP version stated in the plugin header before allowing activation. Confirm your server is running PHP 7.4 or later via Tools → Site Health → Info → Server.
Cron events are not running. Check whether DISABLE_WP_CRON is set in wp-config.php. If it is, add a real server cron job as described above. You can verify scheduled events with a plugin such as WP Crontrol.
Custom table not created. If the {prefix}get_fund_donations table is missing after activation, deactivate and reactivate the plugin. The activator routine runs dbDelta() on each activation. Check wp-admin/admin.php?page=fundations for any database error notices.