Avel PanaliganGet in touch
All projects
WordPress / PHPClient · PHP / WooCommerce2026Live · private

Signal One International

An Australian tactical-gear retailer moved from staging to a live store on shared cPanel hosting with no SSH access, then had its Stripe webhooks fixed in production, with paying customers on the other side.

Signal One banner: the store's homepage on a laptop and a phone, beside the headline Australia's #1 supplier of security uniforms and tactical equipment.

01 · The constraint

Shared cPanel hosting, no SSH, and a live store with paying customers on the other side of the cut-over. The paid restore path for the migration plugin was unavailable, so the whole import had to run through the All-in-One WP Migration JavaScript API: chunked uploads, in the browser, against a host with default PHP limits.

02 · What I did

  1. 1Upgraded PHP 7 → 8 and raised MultiPHP INI limits for upload size, POST size and memory so the chunked import could complete.
  2. 2Carried 293 products, 1,156 variations, ~5,100 orders, 55 active plugins and a 213MB database across intact, then verified counts on both sides.
  3. 3Traced live Stripe webhook failures to a signing-secret mismatch between environments, fixed it, and reconciled the orders paid during the outage window.
  4. 4Diagnosed WooCommerce transactional email bypassing the mail service for the default wp_mail handler.
  5. 5Pre-launch QA caught GST calculated without shipping, a missing AU Terms & Conditions page and SKU-prefix collisions in search.

03 · What it cost

Roughly two weeks, one outage window during which orders still landed in Stripe but not in WooCommerce, and a handover document the client's team can follow without me: the correct cache-clear sequence, where the limits live, and what to check first when a webhook goes quiet.