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-donations
folder 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_secret
zim_donations_paynow_integration_id
zim_donations_paynow_integration_key
Set 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