Version History
This page documents all changes, features, and improvements to the Paga con ZIGI WordPress plugin.Version 2.0.0
Release Date: 2024 (Current Version)
Status: Stable
License: GPL v2 or later
Status: Stable
License: GPL v2 or later
Overview
Initial public release of Paga con ZIGI, a WooCommerce payment gateway for accepting QR code payments via the ZIGI app in Guatemala.Core Features
Payment Gateway Integration- Full WooCommerce payment gateway implementation
- Extends
WC_Payment_Gatewayclass - Seamless integration with WooCommerce checkout flow
- Manual payment verification system (similar to bank transfer)
- Orders placed with “On Hold” status for admin review
- Upload custom ZIGI QR code through admin settings
- QR code displayed in modal popup at checkout
- Live preview of QR code in admin configuration
- Media library integration for QR code selection
- Responsive QR code display for all device sizes
- Customers upload payment receipt during checkout
- Drag-and-drop file upload interface
- Traditional file selection fallback
- HTML5 advanced upload features with browser detection
- Supported formats: JPG, JPEG, PNG, GIF
- Real-time upload progress indication
- Client-side and server-side file validation
- Custom meta box on order edit page
- Receipt image display with lightbox view
- Direct link to full-size receipt
- Receipt accessible from order details
- Compatible with WooCommerce order admin interface
- Configurable payment method title and description
- Custom popup description text
- Payment amount limit with custom warning message
- Optional affiliated phone number display
- Fully translatable interface (Text Domain:
paga-con-zigi)
- WordPress nonce verification for all AJAX requests
- File type validation (client-side and server-side)
- Input sanitization using WordPress standards
- Output escaping to prevent XSS
ABSPATHcheck on all PHP files- Secure file upload handling via
wp_handle_upload() - Custom upload directory with index protection
- Minimum WordPress: 5.2
- Tested up to WordPress: 6.6
- Minimum WooCommerce: Not specified (requires WooCommerce active)
- Tested up to WooCommerce: 9.3
- Minimum PHP: 7.4
- Text Domain:
paga-con-zigi - License: GPL v2 or later
HPOS Compatibility
High-Performance Order Storage Support- Declares compatibility with
custom_order_tables - Meta box registration for both traditional and HPOS orders
- Uses WooCommerce order meta API for cross-compatible data storage
- Tested with WooCommerce 7.0+ HPOS feature
- Seamless migration support from traditional to HPOS storage
File Management
Receipt Storage- Custom upload directory:
wp-content/uploads/zigi-payment-qrcode/ - Automatic directory creation with proper permissions
- Unique filename generation with timestamp
- Directory listing protection via
index.html - Uses WordPress Filesystem API
- Compatible with various hosting environments
- MIME type verification
- File extension whitelist
- Upload size respects PHP configuration
- Nonce-protected upload endpoint
- Sanitized filenames prevent path traversal
User Interface
Frontend Components- Modal popup for QR code display
- Two-step checkout process:
- QR code scan and payment
- Receipt upload and order completion
- Amount display in popup
- Optional contact number with tel: link
- Amount limit warning when threshold exceeded
- Responsive design for mobile and desktop
- Loading indicators during upload
- Error messages with user-friendly text
- Settings page under WooCommerce > Settings > Payments
- QR code upload with preview
- Text area fields for descriptions
- Enable/disable toggle
- Drag-and-drop settings organization
- Inline field descriptions with tooltips
JavaScript Features
Frontend Script (woopro-front.js)
- Drag-and-drop upload detection
- File type validation before upload
- AJAX file upload with progress
- Form submission prevention until upload complete
- jQuery-based DOM manipulation
- Event delegation for dynamic content
- Fallback upload for older browsers
- Payment method detection in checkout
woopro.js)
- Media library integration
- QR code preview update
- Remove uploaded QR functionality
- Settings form enhancements
Localization
Translation Ready- All strings wrapped with translation functions
- Spanish (Guatemala) as default language
- Translation functions used:
__()- Get translated stringesc_html_e()- Echo and escape translated stringesc_html__()- Get and escape translated stringesc_attr_e()- Echo and escape for attribute
- JavaScript translations via
wp_localize_script() .potfile generation ready
Integration & Compatibility
WordPress Ecosystem- Standard plugin architecture
- Follows WordPress Coding Standards
- Uses WordPress Core APIs exclusively
- No external dependencies
- No API calls to external services
- Declares WooCommerce as required plugin
- Uses WooCommerce order meta methods
- Compatible with WooCommerce cart and checkout
- Respects WooCommerce order statuses
- Integrates with WooCommerce email notifications
- Works with any WooCommerce-compatible theme
- Self-contained CSS styling
- No theme file modifications required
- Responsive design adapts to theme layout
Files Structure
Database Schema
Order Meta- Meta Key:
zigi-payment-qrcode - Meta Value: URL to uploaded receipt image
- Storage: WooCommerce order meta (HPOS compatible)
- Option Name:
woocommerce_zigi_payment_settings - Storage: WordPress options table
- Structure: Serialized array with keys:
enabled- Enable/disable gatewaytitle- Payment method titledescription- Checkout descriptionfront_description- Popup descriptionlimit_amount- Maximum payment amountmessage_limit_amount- Limit warning messagenumber_telephone- Affiliated phone numberpreview_qr- QR code image URL
Known Limitations
- Manual payment verification required (no API integration)
- Receipt upload mandatory during checkout (cannot be added later)
- No automated payment confirmation
- Guatemala-specific (ZIGI only available in Guatemala)
- No refund support (manual refunds only)
- Single QR code per store (cannot vary by order)
- No multi-currency support
- Requires customer to have ZIGI app installed
Development Notes
Hooks Usedwoocommerce_payment_gateways- Register gatewaybefore_woocommerce_init- Declare HPOS compatibilityplugins_loaded- Initialize gateway classwoocommerce_update_options_payment_gateways_{id}- Save settingsadmin_enqueue_scripts- Load admin assetswp_enqueue_scripts- Load frontend assetswp_footer- Render popup HTMLadd_meta_boxes- Register receipt meta boxwp_ajax_zigi_payment_qr_code- Handle uploads (logged in)wp_ajax_nopriv_zigi_payment_qr_code- Handle uploads (guest)
upload_dir- Customize receipt upload directory
Author Information
- Developer: Andrés Turcios
- Company: Neopunto
- Website: https://neopunto.com
- Support: [email protected]
- Plugin URI: https://neopunto.com
Future Roadmap
The following features are under consideration for future releases. Implementation depends on community feedback and technical feasibility.
Potential Enhancements
API Integration (if ZIGI provides merchant API)- Automatic payment verification
- Real-time transaction status updates
- Webhook support for payment notifications
- Automatic order completion
- Refund support
- Multiple QR codes per product or order amount
- Post-order receipt upload
- Customer account receipt history
- Admin dashboard statistics
- Payment reports and analytics
- Email receipt to admin on upload
- SMS notifications for payment received
- Receipt preview before upload
- Image compression before upload
- Multi-file upload (multiple receipt images)
- Video instructions in popup
- Progressive Web App for QR scan
- Copy QR code to clipboard
- Per-product QR codes
- Different QR for different order amounts
- Scheduled QR code rotation
- Multiple affiliated accounts
- Custom CSS styling options
- Conditional gateway availability
- REST API endpoints
- Webhook system
- Action/filter hooks for customization
- Developer documentation
- Code snippets library
Upgrade Notes
Updating the Plugin
When updates become available:-
Backup first
- Backup WordPress database
- Backup plugin files
- Backup receipt directory:
wp-content/uploads/zigi-payment-qrcode/
-
Update plugin
- Via WordPress admin dashboard (when available in repository)
- Or manually replace plugin files
-
Clear caches
- Browser cache
- WordPress cache plugins
- Server-side caching
-
Test functionality
- Verify settings preserved
- Test checkout process
- Check receipt upload
- Review existing orders
Version Numbering
This plugin follows Semantic Versioning:- Major version (2.x.x) - Breaking changes, major features
- Minor version (x.0.x) - New features, backward compatible
- Patch version (x.x.0) - Bug fixes, security updates
Support & Feedback
For questions about this release or to report issues:- Email: [email protected]
- Website: https://neopunto.com
- Guide: Cómo cobrar con ZIGI mediante código QR en WordPress