From the very beginning, I want to make one thing clear: this post is not promotional. I’m not here to praise or criticize anyone. From time to time, I simply write about things I run into while doing my work.
I was asked to investigate an issue related to the checkout page — more precisely, a noticeable delay after clicking Payment during the checkout process. Following that thread led me to the plugin in use: WooCommerce Network Merchants (NMI) Gateway (Enterprise). Overall, it’s a solid plugin that does what it promises, but it turns out it doesn’t properly support Sandbox testing.
The most interesting part? At first glance, I genuinely thought that enabling “Test Mode” would activate the sandbox environment.

In reality, that setting is handled by the WooCommerce core and is used in multiple contexts. Within this plugin, however, it does little more than display a message indicating that the store is running in test mode.
Actual sandbox testing still requires manually enabling Test Mode directly in the Merchant Portal:
To place your account in Test Mode, log into your Merchant Portal and go to Settings → Test Mode → Enable Test Mode. This is also documented in NMI’s official documentation.
It’s a bit odd, especially considering that nothing particularly complex is required. A small amount of custom code is enough to bridge the gap. To be fair, the developers did a good job overall — the plugin is well structured and exposes the necessary hooks, specifically filters, which makes this kind of adjustment possible without hacking core files.
I spent some time browsing through the plugin’s comments and issues but didn’t find anything especially helpful.
So I ended up writing the necessary code myself to address the problem. I’ve shared this solution publicly on GitHub, in case it helps others running into the same issue.