FormPays Pro is a comprehensive payment form plugin designed to make online payments simple and secure. Whether you』re running a small business or a large site, this plugin provides everything you need to collect payments through custom forms. From flexible payment forms to enterprise-grade security, FormPays Pro is designed to simplify online payments for businesses, nonprofits, and educators.
Core Features
- Custom Payment Forms: Create unlimited payment forms with custom fields
- Multiple Payment Gateways: Support for Razorpay and PayU (more coming soon)
- Conditional Logic: Show/hide fields based on user selections
- Shortcode Support: Easy embedding with
[formpays_pro_payment_form id="123"] - Transaction Management: Complete payment tracking and management
- Email Notifications: Automatic notifications for payments and failures
- Email Templates: Customize notification emails for customers and admins
Payment Gateways
- Razorpay: Cards, UPI, NetBanking, Wallets
- PayU: Cards, UPI, NetBanking, Wallets
- Test Mode: Development and testing support
- Webhook Integration: Automatic payment status updates
Form Builder
- Field Types: Text, Email, Phone, Number, Select, Radio, Checkbox, Textarea
- Custom Fields: Add unlimited custom fields
- Required Fields: Mark fields as required
- Field Validation: Built-in validation for all field types
- Drag & Drop: Easy field reordering
Admin Features
- Dashboard: Overview of forms, transactions, and revenue
- Form Management: Create, edit, and delete payment forms
- Transaction Tracking: View all payments with filters and export
- Gateway Settings: Secure configuration for payment gateways
- Email Templates: Customize notification emails
Security Features
- Nonce Verification: CSRF protection for all forms
- Input Sanitization: All user inputs are sanitized
- Encrypted Storage: Sensitive gateway credentials are encrypted
- Webhook Verification: Secure webhook handling with signature verification
- Permission Checks: Admin-only access to sensitive operations
External Services
This plugin connects to third-party payment gateway services to process payments. Below is detailed information about each service:
Razorpay
- What it is: Payment gateway service for processing online payments in India
- When data is sent: When a user submits a payment form using Razorpay gateway
- Data sent: Customer name, email, mobile number, payment amount, currency, order details
- Purpose: To create payment orders and process payments securely
- Service URL: https://razorpay.com/
- Terms of Service: https://razorpay.com/terms/
- Privacy Policy: https://razorpay.com/privacy/
- Documentation: https://razorpay.com/docs/
PayU
- What it is: Payment gateway service for processing online payments
- When data is sent: When a user submits a payment form using PayU gateway
- Data sent: Customer name, email, mobile number, payment amount, currency, order details
- Purpose: To create payment orders and process payments securely
- Service URL: https://payu.in/
- Terms of Service: https://payu.in/terms-of-use
- Privacy Policy: https://payu.in/privacy-policy
- Documentation: https://docs.payu.com/
PayPal
- What it is: Global payment gateway service for processing online payments
- When data is sent: When a user submits a payment form using PayPal gateway
- Data sent: Customer name, email, payment amount, currency, order details
- Purpose: To create payment orders and process payments securely
- Service URL: https://paypal.com/
- Terms of Service: https://www.paypal.com/us/legalhub/useragreement-full
- Privacy Policy: https://www.paypal.com/us/legalhub/privacy-full
- Documentation: https://developer.paypal.com/
PhonePe
- What it is: Digital payment platform for processing UPI and other payments in India
- When data is sent: When a user submits a payment form using PhonePe gateway
- Data sent: Customer name, email, mobile number, payment amount, currency, order details
- Purpose: To create payment orders and process payments securely
- Service URL: https://phonepe.com/
- Terms of Service: https://www.phonepe.com/terms-and-conditions/
- Privacy Policy: https://www.phonepe.com/privacy-policy/
- Documentation: https://developer.phonepe.com/
Instamojo
- What it is: Payment gateway service for processing online payments in India
- When data is sent: When a user submits a payment form using Instamojo gateway
- Data sent: Customer name, email, mobile number, payment amount, currency, order details
- Purpose: To create payment orders and process payments securely
- Service URL: https://instamojo.com/
- Terms of Service: https://instamojo.com/terms/
- Privacy Policy: https://instamojo.com/privacy/
- Documentation: https://docs.instamojo.com/
Data Security: All payment data is transmitted securely using HTTPS encryption. Customer payment details (card numbers, etc.) are handled directly by the payment gateways and never stored on your WordPress site.
User Consent: By using payment forms created with this plugin, users consent to their payment data being processed by the selected payment gateway according to that gateway』s terms and privacy policy.
Requirements
- WordPress 5.0 or higher
- PHP 7.4 or higher
- MySQL 5.6 or higher
- SSL certificate (recommended for production)
Configuration
1. Gateway Setup
- Go to FormPays Pro Settings
- Select your preferred payment gateway
- Enter your gateway credentials:
- Razorpay: Key ID, Key Secret, Webhook Secret
- PayU: Merchant Key, Salt Key, Authorization Header
2. Create Your First Form
- Go to FormPays Pro Forms Add New
- Fill in form details (title, description, gateway)
- Add fields (Name, Email, Mobile, Amount, etc.)
- Set up conditional logic if needed
- Save the form
3. Embed the Form
Use the generated shortcode in any post or page:
[formpays_pro_payment_form id=」1″]
Usage
Creating Payment Forms
Basic form structure:
php
$form_data = array(
'title' => 'Product Payment',
'description' => 'Complete your purchase',
'gateway' => 'razorpay',
'amount_type' => 'fixed',
'fixed_amount' => 999.00,
'currency' => 'INR',
'fields' => array(
array(
'id' => 'name',
'label' => 'Full Name',
'type' => 'text',
'required' => true
),
array(
'id' => 'email',
'label' => 'Email Address',
'type' => 'email',
'required' => true
),
array(
'id' => 'mobile',
'label' => 'Mobile Number',
'type' => 'tel',
'required' => true
)
)
);
Conditional Logic
`php
$conditional_logic = array(
array(
『field』 => 『payment_type』,
『operator』 => 『equals』,
『value』 => 『business』,
『action』 => 『show』,
『target』 => 『company_name』
)
);
`
Payment Processing
Form submission:
`php
add_action(『wp_ajax_formpays_pro_submit_form』, 『handle_payment』);
add_action(『wp_ajax_nopriv_formpays_pro_submit_form』, 『handle_payment』);
function handle_payment() {
// Form data is automatically processed
// Payment gateway is initialized
// User is redirected to payment page
}
`
Webhook handling:
php
// Webhook endpoints are automatically created
// /wp-json/formpays-pro/v1/webhook/razorpay
// /wp-json/formpays-pro/v1/webhook/payu
Transaction Management
Get transaction:
php
global $formpays_pro;
$transaction = $formpays_pro->transactions->get_transaction('TXN_123');
Update status:
php
$result = $formpays_pro->transactions->update_transaction_status(
'TXN_123',
'success'
);
Customization
Styling
The plugin includes CSS classes for easy customization:
css
.formpays-pro-form-wrapper { /* Form container */ }
.formpays-pro-field { /* Individual field */ }
.formpays-pro-field-label { /* Field labels */ }
.formpays-pro-field-input { /* Field inputs */ }
.formpays-pro-submit-btn { /* Submit button */ }
JavaScript Events
`javascript
// Form submission events
jQuery(document).on(『formpays_pro_form_submit』, function(e, formData) {
// Custom handling before submission
});
// Payment success events
jQuery(document).on(『formpays_pro_payment_success』, function(e, response) {
// Custom handling after successful payment
});
`
Hooks and Filters
`php
// Modify form data before processing
add_filter(『formpays_pro_form_data』, 『modify_form_data』, 10, 2);
// Custom payment validation
add_filter(『formpays_pro_validate_payment』, 『custom_validation』, 10, 2);
// Modify email content
add_filter(『formpays_pro_email_content』, 『customize_email』, 10, 3);
`
Testing
Test Mode
Both Razorpay and PayU support test mode:
1. Enable test mode in gateway settings
2. Use test credentials from your gateway dashboard
3. Test complete payment flow without real charges
Test Cards
Razorpay:
* Success: 4111 1111 1111 1111
* Failure: 4000 0000 0000 0002
PayU:
* Success: 4012 0000 0000 0000
* Failure: 4000 0000 0000 0002
Email Notifications
Available Notifications
- Payment Success – Customer: Confirmation email to customer with transaction details
- Payment Success – Admin: Notification to admin about successful payment
- Payment Failed – Customer: Failure notification with retry information
- Payment Failed – Admin: Alert to admin about failed payment
Email Template Customization
- Go to FormPays Pro Email Notifications
- Customize email templates with dynamic placeholders:
{transaction_id}– Transaction ID{amount}– Payment amount{customer_name}– Customer name{customer_email}– Customer email{payment_date}– Payment date and time{payment_method}– Selected payment method{form_title}– Form title{site_name}– Your site name
- Enable/disable individual email notifications
- Test email functionality to verify settings
Customization
`php
// Modify email templates
add_filter(『formpays_pro_email_template』, 『custom_email_template』, 10, 3);
// Add custom notification recipients
add_filter(『formpays_pro_admin_emails』, 『add_custom_emails』);
`
Troubleshooting
Common Issues
Payment Not Processing:
1. Check gateway credentials
2. Verify webhook URLs are set correctly
3. Check server logs for errors
4. Ensure SSL is enabled (for live mode)
Forms Not Displaying:
1. Check if form is published
2. Verify shortcode syntax
3. Check for JavaScript conflicts
4. Review browser console for errors
Webhook Issues:
1. Verify webhook secret is correct
2. Check webhook URL accessibility
3. Review server logs for webhook failures
4. Test webhook endpoint manually
Debug Mode
Enable WordPress debug mode for detailed error logging:
php
// wp-config.php
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
API Reference
REST API Endpoints
`
GET /wp-json/formpays-pro/v1/forms/{id}
GET /wp-json/formpays-pro/v1/transactions/{id}
POST /wp-json/formpays-pro/v1/webhook/{gateway}
`
AJAX Actions
`php
// Form submission
wp_ajax_formpays_pro_submit_form
wp_ajax_nopriv_formpays_pro_submit_form
// Admin actions
wp_ajax_formpays_pro_save_form
wp_ajax_formpays_pro_delete_form
wp_ajax_formpays_pro_save_gateway_settings
`
Contributing
We welcome contributions! Please follow these steps:
- Fork the repository (https://github.com/sanyogs/formpays-pro)
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
License
This plugin is licensed under the GPL v2 or later.
Acknowledgments
- WordPress community for the amazing platform
- Razorpay and PayU for their excellent APIs
- All contributors and beta testers
FormPays Pro – Making payment forms simple and powerful!





