A comprehensive WordPress donation plugin supporting Zimbabwean and international payment methods with multi-currency capabilities.
- Stripe - International credit/debit cards
- PayPal - Global payment processing
- Paynow - Zimbabwe's leading payment gateway
- InBucks - Mobile wallet payments
- ZimSwitch - Banking network integration
- USD (US Dollar)
- ZIG (Zimbabwean Gold)
- EUR (Euro)
- GBP (British Pound)
- ZAR (South African Rand)
- Campaign Management - Create and manage fundraising campaigns
- Donation Forms - Customizable multi-step donation forms
- Analytics & Reporting - Comprehensive donation tracking and analytics
- Donor Management - Track and manage donor information
- Recurring Donations - Monthly, yearly recurring payment support
- Exchange Rate Management - Automatic and manual currency conversion
- Admin Dashboard - Complete administrative interface
- WordPress 5.0+ compatibility
- PHP 7.4+ support
- Responsive design
- AJAX-powered forms
- Webhook support for payment confirmations
- Security-first approach with nonce verification
- Database-driven architecture
- Multilingual ready
-
Download the Plugin
git clone https://github.com/Terryo10/helpme.git
-
Upload to WordPress
- Upload the
zim-donationsfolder to/wp-content/plugins/ - Or install via WordPress admin: Plugins → Add New → Upload Plugin
- Upload the
-
Activate the Plugin
- Go to WordPress Admin → Plugins
- Find "Help Me Donations" and click "Activate"
-
Configure Settings
- Navigate to Donations → Settings
- Configure your payment gateways
- Set default currency and amounts
- Go to Donations → Settings → Payment Gateways
- Enable Stripe and enter your API keys:
- Test Mode: Use test keys for development
- Live Mode: Use live keys for production
- Enable PayPal in settings
- Enter your PayPal Client ID and Secret
- Configure webhook URL:
https://yoursite.com/?zim-donations-webhook=1&gateway=paypal
- Sign up for Paynow merchant account
- Enter Integration ID and Integration Key
- Set up webhook notifications
- Go to Donations → Campaigns
- Click "Add New"
- Fill in campaign details:
- Title and description
- Goal amount and currency
- Start/end dates
- Category
Use shortcodes to display donation forms:
// Basic donation form
[zim_donation_form]
// Campaign-specific form
[zim_donation_form campaign_id="1" title="Help Zimbabwe Education"]
// Custom preset amounts
[zim_donation_form amounts="10,25,50,100" currency="USD"]
// Campaign progress display
[zim_campaign_progress campaign_id="1"]
// Recent donations list
[zim_recent_donations limit="5" show_amount="true"]// Test Mode
zim_donations_stripe_test_publishable_key
zim_donations_stripe_test_secret_key
// Live Mode
zim_donations_stripe_live_publishable_key
zim_donations_stripe_live_secret_key// Test Mode
zim_donations_paypal_test_client_id
zim_donations_paypal_test_client_secret
// Live Mode
zim_donations_paypal_live_client_id
zim_donations_paypal_live_client_secretzim_donations_paynow_integration_id
zim_donations_paynow_integration_keySet default currency and exchange rates:
zim_donations_default_currency = 'USD'
zim_donations_exchange_api_key = 'your_api_key'Configure webhooks for payment confirmations:
| Gateway | Webhook URL |
|---|---|
| Stripe | https://yoursite.com/?zim-donations-webhook=1&gateway=stripe |
| PayPal | https://yoursite.com/?zim-donations-webhook=1&gateway=paypal |
| Paynow | https://yoursite.com/?zim-donations-webhook=1&gateway=paynow |
| InBucks | https://yoursite.com/?zim-donations-webhook=1&gateway=inbucks |
| ZimSwitch | https://yoursite.com/?zim-donations-webhook=1&gateway=zimswitch |
The plugin creates the following tables:
wp_zim_donations- Main donations tablewp_zim_campaigns- Campaign informationwp_zim_donors- Donor profileswp_zim_transactions- Payment transactionswp_zim_forms- Form configurations
// Process donation
do_action('zim_donations_process_donation', $donation_data);
// Campaign created
do_action('zim_donations_campaign_created', $campaign_id);
// Donation completed
do_action('zim_donations_donation_completed', $donation_id);// Modify supported currencies
apply_filters('zim_donations_supported_currencies', $currencies);
// Customize form output
apply_filters('zim_donations_form_html', $html, $atts);
// Filter donation data before processing
apply_filters('zim_donations_before_process', $donation_data);// Get donation by ID
$donation = zim_donations_get_donation($donation_id);
// Get campaign progress
$progress = zim_donations_get_campaign_progress($campaign_id);
// Format currency
$formatted = zim_donations_format_currency($amount, $currency);Main form classes:
.zim-donation-form- Main form container.zim-amount-selection- Amount selection section.zim-amount-button- Preset amount buttons.zim-payment-methods- Payment method selection.zim-form-navigation- Form navigation buttons
Progress display:
.zim-campaign-progress- Progress container.zim-progress-bar- Progress bar.zim-progress-fill- Progress fill
Override default styles in your theme:
.zim-donation-form {
/* Custom form styling */
}
.zim-amount-button.selected {
background: #your-color;
}-
Payment Gateway Errors
- Check API credentials
- Verify webhook URLs
- Enable test mode for debugging
-
Currency Conversion Issues
- Update exchange rates manually
- Check API key for exchange rate service
- Verify supported currencies
-
Form Display Problems
- Check shortcode syntax
- Verify campaign IDs exist
- Ensure JavaScript is loading
Enable debug logging:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);Check logs in /wp-content/debug.log
- API Keys: Store securely, never commit to version control
- Webhooks: Always verify signatures
- Form Data: Sanitize and validate all inputs
- Database: Use prepared statements
- Nonces: Verify for all AJAX requests
- CSRF protection with nonces
- Input sanitization and validation
- Webhook signature verification
- SQL injection prevention
- XSS protection
- Caching: Use object caching for exchange rates
- Database: Optimize with proper indexing
- Assets: Minify CSS/JS in production
- Images: Optimize campaign images
- CDN: Use CDN for static assets
- Documentation: Check this README and inline comments
- Issues: Report bugs on GitHub
- Support: Contact the development team
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This plugin is licensed under the GPL v2 or later.
- Initial release
- Multi-gateway payment support
- Campaign management
- Analytics dashboard
- Multi-currency support
- Responsive design
Developed by Tapiwa Tererai for the Zimbabwe community.
- WordPress 5.0 or higher
- PHP 7.4 or higher
- MySQL 5.6 or higher
- cURL PHP extension
- JSON PHP extension
- OpenSSL PHP extension
For more information, visit https://designave.co.za