VibeFox The Courier Guy for WooCommerce — Help
Requirements
WordPress: 5.8 or later.
WooCommerce: 7.0 or later, installed and active. The plugin refuses to activate without it.
PHP: 8.0 or later.
ShipLogic API key (for live rates and lockers): The Courier Guy runs on the ShipLogic platform. Create an API key in your The Courier Guy courier portal under Settings > API Keys (business account). Without the key only the price table is used and locker delivery cannot be offered.
Shipping to South Africa: live rates and lockers are for South African addresses only. Your store must ship to South Africa (WooCommerce > Settings > General > Shipping location(s)).
VibeFox license key: bought on vibefox.net. One key works on one domain.
Installation
1. In WordPress go to Plugins > Add New > Upload Plugin, choose the plugin ZIP file and click Install Now. You can also upload the vfd_the_courier_guy folder to /wp-content/plugins/ by FTP.
2. Click Activate.
3. Open the settings: WooCommerce > Settings > Shipping > VibeFox The Courier Guy, or click Settings under the plugin name on the Plugins page.
4. Enter your VibeFox license key in the license block at the top of the page and click Activate.
5. Enter the ShipLogic API key. For live rates fill in the sender address (street, city, province, postal code) and, if your store currency is not ZAR, the ZAR conversion rate.
6. Fill in the price table and/or a fallback cost.
7. Add VibeFox The Courier Guy to a shipping zone for South Africa in WooCommerce > Settings > Shipping > Shipping zones, choose the Delivery type (courier or TCG locker) and optionally a Title. Add it a second time for the other delivery type.
Configuration
The main settings are on one page: WooCommerce > Settings > Shipping > VibeFox The Courier Guy. They apply to every shipping zone. When you add the method to a zone, the zone window has two fields:
Title (zone): the name of this rate at checkout in this zone. Leave it empty to use the global Method name.
Delivery type (zone): Courier to the door (the default) or TCG locker (customer chooses a locker). Add the method twice to offer both. Lockers need the ShipLogic API key and are available in South Africa only.
Every time you save the settings, the cached rates and lockers are cleared. Warnings above the settings tell you when the store does not ship to South Africa, the API key is missing, the ZAR conversion rate or the sender address is missing, there is no price table and no fallback cost, or the last ShipLogic request failed (with its date and error).
General
Enable/Disable: turns the method off everywhere, including shipping zones.
Method name: the name shown at checkout. For locker delivery "locker" is added, for example "The Courier Guy locker". A zone can override it with its own Title. Default: The Courier Guy.
Tax status: Taxable: live rates are taken without VAT and WooCommerce adds its own tax. None: live rates are taken including VAT.
ShipLogic API (live rates and lockers)
API key: your ShipLogic API key from the The Courier Guy portal.
Account ID: optional. The numeric ShipLogic account ID, only if your key has access to several accounts.
Live rates (for South African addresses; if no live rate is available, the price table is used)
Price source: where the price comes from.
ZAR conversion rate: ShipLogic quotes in South African rand (ZAR). If your store currency is not ZAR, enter how much 1 ZAR is in your store currency, for example 0.05. Without it, live rates are not used and the price table applies. If your store currency is ZAR, leave it empty. The rate is not updated automatically.
Sender address (for live rates) (where The Courier Guy collects the parcels, in South Africa; street, city, province and postal code are needed for live rates)
Sender company: your company name.
Sender street address: for example 12 My Road.
Sender suburb: the suburb of the sender address.
Sender city: the city of the sender address.
Sender province: choose the South African province from the list.
Sender postal code: the postal code of the sender address.
Price table (your own prices in the store currency: used with Price table only, outside South Africa and whenever no live rate is available; a decimal comma or point is accepted)
Calculation type: applies to the price table only. A live rate is always for the whole order.
Prices by weight: a table of countries with a Price column and weight tiers XS (up to 1 kg), S (up to 2 kg), M (up to 3 kg), L (up to 5 kg) and XL (above 5 kg). Click + Add row to add a row (a new row starts with South Africa) and the cross to remove one. An empty or 0 tier uses the Price column. A price of 0 means free shipping. The row * Any country applies to countries without their own row and to a country row without any price.
Fallback cost: used when there is neither a live rate nor a table price. Leave it empty to hide the method in that case.
Conditions
Min weight (kg): hide the method below this cart weight. 0 means no limit.
Max weight (kg): hide the method above this cart weight. Default: 30. 0 means no limit.
Minimum order amount: show the method only from this cart subtotal. Leave it empty to always show it.
Free shipping from: the cart subtotal from which this method is free. Free shipping is offered only where the method has a price for the destination: a live rate, a table price or Fallback cost. If the table or Fallback cost has a price, no request goes to ShipLogic for the rate. Leave it empty to never offer free shipping.
Excluded shipping classes: hide the method if the cart contains products of these WooCommerce shipping classes.
Availability without shipping zones
Ignore shipping zones: offer the method for the countries below even where no zone contains it.
Delivery type without zones: courier or TCG locker for that mode. Used only with Ignore shipping zones.
Countries: the destination countries for that mode. Leave empty to use all countries you ship to. Lockers are offered in South Africa only.
Advanced
Debug log: writes debug messages to WooCommerce > Status > Logs, source vfd-the-courier-guy. API errors are always logged, even when this option is off. The API key and customer data are never logged.
Remove data on uninstall: when on, deleting the plugin removes the settings and the zone rates of this method. Deactivating the plugin never deletes settings. Lockers and tracking saved on orders are kept.
How it works at checkout
When the customer enters a delivery address, WooCommerce asks the plugin for a rate. The plugin first checks the conditions: cart weight, minimum order amount and excluded shipping classes. If free shipping applies and the destination has a price, the method is shown with a price of 0.
Courier to the door: the plugin asks ShipLogic for the cheapest service from your sender address to the customer's address. The customer's street, city, province and postal code must be filled in first. Until then the price table is shown.
TCG locker: the live rate is the cheapest door-to-locker service to the locker nearest the customer's city. It is not recalculated for the locker the customer picks.
The whole order is quoted as one parcel: the total weight, the longest length and width, and the heights stacked. Products without dimensions count as 10 cm cubes. The rand amount is converted to your store currency. The service level, for example ECO, is stored on the shipping line.
ShipLogic requests time out after 12 seconds. Rates are cached for 1 hour, lockers for 6 hours and failures for 10 minutes, so a slow API does not slow down every checkout refresh. If there is no live rate, the price comes from the table, then from Fallback cost. If neither applies, the method is hidden.
The method works on the classic checkout and on the Cart and Checkout blocks. It is compatible with WooCommerce High-Performance Order Storage (HPOS).
The plugin does not book shipments, create waybills or labels, or update tracking automatically. There is no locker map: lockers are chosen from a list. Live rates and lockers are for South Africa only. Other countries get the price table. Only one rate per zone instance (the cheapest service level) is shown, with no choice of service levels, insurance or extras at checkout.
Pickup points
When the customer chooses a TCG locker rate in the classic or the block checkout, a locker selector appears under it. It lists the lockers ShipLogic returns for the city of the shipping address, closest first. The customer can type another city, suburb or postal code and click Search. A locker must be chosen before the order can be placed.
The locker is checked again on the server against ShipLogic's list. Its name and provider are taken from ShipLogic, never from the browser. The choice survives checkout refreshes and is reset when the address changes.
If ShipLogic cannot be reached, the selector says that lockers cannot be loaded, and the order can be placed without a locker. The order is then flagged: "Not chosen — ShipLogic was unavailable at checkout. Agree the locker with the customer."
Orders
The chosen locker (name, ID and provider) is saved on the order. It is shown on the admin order screen, on the "Thank you" and My account order pages and in the order e-mails (HTML and plain text). The admin e-mail also shows the locker ID.
On the admin order screen, orders of this method have a The Courier Guy tracking reference field. Enter the reference from your The Courier Guy portal and click Save. The reference is shown to the customer on the order page and in e-mails sent afterwards.
License key
The plugin works with a VibeFox license key from vibefox.net. The license block is at the top of WooCommerce > Settings > Shipping > VibeFox The Courier Guy. Paste the key into License key and click Activate. The block shows the status, for example the date the license is active until and your domain. Use Check now to check the status again, Change key to enter another key and Remove key to remove it from this site. The link Manage licenses and domains in your account opens your vibefox.net account.
One key works on one domain. Removing the key from a site does not free its domain slot. Free the slot in your vibefox.net account.
Without an active key, The Courier Guy is not shown to customers at checkout. Logged-in store managers still see it, marked (unlicensed — visible to admins only), so you can set up and test the plugin before you buy a key. A reminder appears on the Plugins page and on WooCommerce pages. Existing orders are not affected.
When a license expires, the plugin keeps working, but updates and support need a renewal. The status is checked again automatically in the background.
Troubleshooting
The Courier Guy does not appear at checkout: check that the license is active, Enable/Disable is on, and the method is added to the zone of the customer's country (or Ignore shipping zones is on and the country is allowed). Check the weight limits, Minimum order amount and Excluded shipping classes. Check that the table or Fallback cost has a price. Locker rates appear only for South African addresses.
Customers see no locker list: lockers need the API key, a zone method with Delivery type "TCG locker" and a South African shipping address. The settings page shows the last ShipLogic error, if any, for example a refused key.
The price is always the table price: check the warnings on the settings page. A live rate needs the API key, the complete sender address and, for non-rand stores, the ZAR conversion rate. For courier delivery the customer's street, city, province and postal code must be filled in. For lockers ShipLogic must find a locker near the customer's city. Turn on Debug log and open WooCommerce > Status > Logs, source vfd-the-courier-guy.
ShipLogic is down: the table or fallback price is shown. Locker orders can be placed without a locker and are flagged on the order.
Rates look outdated after a change: save the settings page. This clears the cached rates and lockers.
The license block shows an error: follow the message in the block. For example, if the key is already used on another domain, free a slot in your vibefox.net account and click Check now. If the site address changed, click Check now to activate the key for the new domain. If the license server cannot be reached, the plugin keeps working on the last known status.
Uninstall
Deactivating the plugin keeps the settings and only clears cached rates and lockers. To remove it, deactivate and delete it on the Plugins page. The license key and license status of this plugin, the cached rates and lockers and the last error are always removed. Settings and zone rates are removed only if Remove data on uninstall was on. Otherwise they stay for a later re-install. Lockers and tracking references saved on orders are never removed, and existing orders keep their shipping lines.
The Courier Guy and ShipLogic are trademarks of their respective owners. This plugin is not affiliated with or endorsed by The Courier Guy or ShipLogic.
