Kanguru Support self-updates
Integrated multi-step support request system with WHMCS backend.
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/salarkafashan/wordpress-plugin/archive/refs/heads/master.zipShips its own WordPress updater (Plugin Update Checker), so new versions show up under Dashboard → Updates.
Kanguru Support (WordPress Plugin)
Kanguru Support is a WordPress plugin that provides a multi-step support request form with:
- Website/service request flows
- WHMCS validation
- Captcha support (Cloudflare Turnstile / Google reCAPTCHA)
- Jira queue/ticket integration
- Admin settings and ticket management UI
Requirements
- WordPress (latest stable recommended)
- PHP 7.4+ (8.x recommended)
- MySQL/MariaDB
Installation
- In WordPress Admin, go to Plugins -> Add New -> Upload Plugin.
- Upload the plugin ZIP.
- Activate Kanguru Support.
- Go to Kanguru Support settings and configure:
- WHMCS credentials
- Jira credentials
- Captcha provider/keys
The plugin creates and migrates its own database tables automatically on activation/update.
Shortcode
Use this shortcode on any page:
[support_request_form]
Versioning
Plugin version is defined in:
- Plugin header in
kanguru-support.php KGR_PLUGIN_VERSIONconstant inkanguru-support.php
Keep both aligned.
WordPress Updates via GitHub Releases
This plugin uses GitHub as the update source in WordPress Admin.
- Repository:
https://github.com/salarkafashan/wordpress-plugin - Slug:
kanguru-support - Update method: GitHub release assets
Release asset format
Upload a ZIP asset to each GitHub release with this naming pattern:
kanguru-support-<version>.zip- Example:
kanguru-support-1.1.1.zip
Publish a new update
- Bump version in
kanguru-support.php. - Commit and push.
- Create Git tag/release (example:
v1.1.2). - Build the ZIP with
.\scripts\build-release.ps1 -Version X.Y.Zand upload that release asset ZIP (example:kanguru-support-1.1.2.zip). - In WordPress Admin:
- Dashboard -> Updates -> Check Again
- Plugins page should show the update
- Click Update now
ZIP packaging rules
Important:
- The ZIP must unpack to a single top-level
kanguru-support/folder. - The main plugin file must remain
kanguru-support/kanguru-support.php. - Do not change the folder name or main file name between releases.
- Use the release build script on Windows. Some zip tools create invalid entry paths for Linux hosts, which causes files to unzip into the plugin root with names like
kanguru-support/assets/css/admin.css.
Include:
- Plugin PHP files
assets/includes/templates/backend/(needed runtime code)vendor/(Composer dependencies)composer.jsonandcomposer.lock(recommended)
Exclude:
.git/- local environment files/secrets
- temporary runtime logs/storage artifacts
- development-only files that are not required in production
Database Migrations
The plugin uses two migration/version tracks:
-
Schema migration version
- Option:
kgr_support_db_version - Managed by
DatabaseManagerwith idempotent table migrations.
- Option:
-
Plugin migration version
- Option:
kgr_support_plugin_migration_version - Tracks plugin-version update migrations.
- Option:
On plugin load, if installed plugin migration version is lower than KGR_PLUGIN_VERSION, migrations run and the option is updated.
Data Persistence
- Plugin updates preserve settings and normal operational data.
- Data is not deleted on deactivate.
- Data is deleted on uninstall (full cleanup behavior is enabled).
Uninstall Behavior
On uninstall, plugin cleanup removes:
kgr_support_*database tables- plugin options with
kgr_prefix - plugin runtime data directories/files under
backend/(storage/logs/uploads/database/.env if present)
Use uninstall only when full data removal is intended.