Add-ons & Extensions
Extensions add whole features to WaDesk — a new channel, a new tool — that ship as code, not as a billing package. You manage them from Admin → Extensions (/admin/extensions). This is different from Add-on Packages, which are à-la-carte feature packs a customer buys on top of a plan.
Two kinds of add-on live here: uploaded extensions (a ZIP you install through this page) and in-place modules (code already sitting in addon/<slug>/ that runs without any upload). Both appear under Installed add-ons.
How to upload & install an add-on
An add-on is delivered as a .zip. To install it:
- Go to Admin → Extensions.
- Verify your purchase code first — paste your CodeCanyon purchase code and confirm it. This is the same licence check the Updater uses; installation is refused until it passes.
- Click Choose file and pick the add-on
.zip, then Install. - WaDesk inspects the package before writing anything — a malformed or too-new package is rejected while your install is still untouched. On success it merges the code in and runs any database migrations the add-on ships.
The result message tells you exactly what happened: how many files were merged, how many protected paths were skipped, and whether the database was updated. Protected paths (your .env, storage/, the database, uploaded media) are never overwritten.
The sections on this page
- Install an add-on — the licence + upload box at the top.
- Installed add-ons — every active add-on, each on its own card with its version and status:
- An uploaded extension (DB-tracked) shows a Disable toggle and a Remove button.
- An in-place module (e.g. the Instagram add-on) shows an Active / Inactive badge, an In-place module tag, and a Remove / Re-activate button.
Deactivate or remove an add-on
Remove behaves differently for the two kinds, and never touches your data — that always stays in the database.
- In-place module — Remove = deactivate. Clicking Remove drops a hidden marker so the module stops loading — its pages, automations, routes and classes go quiet — but every file is kept on disk. Nothing is deleted, so you can hit Re-activate any time and it works again immediately, with no re-upload. The card then shows Inactive.
- Uploaded extension — Remove = delete files. This removes the files that were installed (tracked from the moment it was added, so core files are never touched). Its data stays in the database.
- Disable (uploaded extensions only) switches an extension off without deleting anything — a lighter alternative to Remove.
Instagram runs one engine at a time. If the native Instagram add-on is active here, you cannot also connect a remote Instagram product — deactivate (Remove) the native add-on first. See Instagram Engine.