WordPress / Plugin DevelopmentSeptember 2023

Stompies Wood – Geo-Based Payment Split Plugin

Developed a custom WooCommerce payment plugin for Stompies Wood to automatically route payments based on province, enabling separate processing for Cape Town and Gauteng. Included Docker environment setup, plugin customization, and QA testing.

Technologies Used

WordPressWooCommercePHPMySQLDockerCustom Logic
Stompies Wood – Geo-Based Payment Split Plugin

Project Metrics

Architecture

Province-aware WooCommerce payment split

Development

Custom plugin built using WooCommerce hooks

Testing

Docker-based local testing and deployment workflow

Reliability

Fully update-safe and version-compatible

Delivery

End-to-end tested and deployed to production

Challenges

  • Needed to split WooCommerce payments dynamically by customer province
  • Ensure province detection remained reliable across checkout methods
  • Maintain compatibility with WordPress and WooCommerce updates
  • Isolate development to avoid plugin conflicts in production
  • Design fallback handling for missing or ambiguous user location data

Solutions

  • Developed a custom WooCommerce payment plugin with province detection logic
  • Implemented routing conditions for Cape Town and Gauteng customers
  • Used WooCommerce hooks and filters for stable integration
  • Configured Docker for full local WordPress + MySQL testing environment
  • Built automated validation and rollback testing for future upgrades
  • Ensured modularity for potential expansion to other provinces or gateways

Results

  • Fully automated geo-based payment routing
  • Reduced manual intervention in transaction processing
  • Improved backend transparency and audit tracking
  • Stable integration with client’s existing WooCommerce setup
  • Delivered on-time and update-safe for long-term use

Project Overview

Stompies Wood required a customized WooCommerce payment flow capable of splitting transactions by province, ensuring that purchases made in Cape Town and Gauteng were processed through different payment routes.

The task involved creating a custom WooCommerce plugin that dynamically detects a user’s location and adjusts payment handling logic during checkout — all while maintaining update compatibility and full control over the payment pipeline.


Technical Implementation

Plugin Architecture

  • Built a modular payment-split plugin using WooCommerce’s native hooks and filters.
  • Implemented real-time province detection based on checkout address data.
  • Added conditional routing logic to direct payments to appropriate gateway instances.
  • Configured graceful fallback for undefined or mismatched province inputs.

Development Environment

  • Created a Docker-based local WordPress environment for plugin testing.
  • Included containerized PHP, MySQL, and WordPress instances for version isolation.
  • Verified plugin compatibility with WordPress core and WooCommerce updates.

Features

  • Geo-based province detection logic (Cape Town & Gauteng)
  • Automatic payment routing and logging
  • Configurable via plugin settings panel
  • Fail-safe fallback if location data unavailable
  • Compatible with multiple gateways and checkout flows

Deployment & Testing

The plugin was rigorously tested under simulated transaction scenarios to confirm accurate routing and successful payment handling for both regions.
Final deployment included verification on the production WordPress environment, ensuring seamless integration with existing order management and reporting tools.


Result

The new Geo-Based Payment Split Plugin enabled Stompies Wood to manage regional transactions independently while maintaining a single WooCommerce system.
This approach simplified financial tracking, improved order visibility, and eliminated manual post-processing.

The solution remains scalable for future expansion — capable of supporting additional provinces or gateway rules with minimal configuration.

Ready to Build Something Amazing?

Let's discuss how we can transform your ideas into powerful software solutions.