GT Extensions for FluentCart uses a license key system for updates and support. This lesson covers how the license system works, how updates are delivered, and how to manage your license.
License Activation
- Go to Fluent Cart > GT Extensions > License in the WordPress admin.
- Enter the license key from your purchase confirmation email.
- Click Activate License.
On activation, the plugin sends a request to the license server (gauravtiwari.org) with your license key and site URL. The server validates the key and returns an activation hash.
The license data is stored in the gtfc_license WordPress option:
gtfc_license = {
"license_key": "xxxx-xxxx-xxxx-xxxx",
"status": "valid",
"activation_hash": "...",
"expiration_date": "2027-02-18" or "lifetime",
"product_title": "GT Extensions for FluentCart",
"activated_at": "2026-02-18 10:30:00"
}
License States
- State: Valid | Meaning: Active license | Updates: Yes | Support: Yes
- State: Expired | Meaning: License period ended | Updates: No | Support: No
- State: Inactive | Meaning: No license or not activated | Updates: No | Support: No
The license status is displayed as a badge on the License page.
License Verification
The plugin verifies the license weekly via a WordPress cron job:
- Cron action:
gtfc_verify_license - Schedule: Weekly (registered on
wp_schedule_event) - Endpoint: License server check_license API
If the verification fails (expired, revoked, or server unreachable), the status updates to reflect the change. The plugin continues to work but stops receiving updates.
The cron job is unscheduled when the plugin is deactivated.
Automatic Updates
With a valid license, the plugin integrates with WordPress’s native update system:
- WordPress checks for updates periodically (default: twice daily)
- GT Extensions hooks into
pre_set_site_transient_update_pluginsto check the license server - If a new version is available, it appears in Dashboard > Updates
- Click Update Now to install the latest version
Update information is cached in a transient (gtfc_update_info) for 12 hours to reduce server requests.
Manual Update Check
To check for updates immediately:
- Go to Fluent Cart > GT Extensions > License.
- Click the Check for Updates button.
- The result appears as a notice (cached for 2 minutes).
This is useful after a new version is announced or if the automatic check hasn’t run yet.
License Deactivation
To deactivate your license (e.g., when moving to a different site):
- Go to Fluent Cart > GT Extensions > License.
- Click Deactivate License.
- The license key is freed up for use on another site.
Admin Notices
The license system shows contextual admin notices:
- Expired license — Warning notice shown on Fluent Cart admin pages
- No license — Info notice (dismissible) shown on Fluent Cart admin pages
- Activation success/failure — Success or error messages after activation attempts
Notices are only shown on Fluent Cart-related admin screens, not on every WordPress page.
Security
The license system includes these security measures:
- Nonce verification — All license actions (activate, deactivate, check) require a valid WordPress nonce
- Capability check — Only users with
manage_optionscan manage the license - Server-side validation — License keys are validated against the server, not locally
- Key masking — The license page displays only the first 4 and last 4 characters of the key
Troubleshooting
“License activation failed”
- Verify the license key is correct (no extra spaces)
- Check that your site can reach
gauravtiwari.org(not blocked by firewall) - Ensure the license hasn’t reached its activation limit
Updates not appearing
- Check that the license status is “Valid” on the License page
- Click “Check for Updates” to force a check
- Clear the
gtfc_update_infotransient if updates are stuck
“This license key has already been used”
- Deactivate the license on the previous site first
- Contact support if you no longer have access to the previous site
Plugin Constants
The license system uses these constants:
GTFC_VERSION— Current plugin version (e.g.,1.1.7)GTFC_PLUGIN_FILE— Main plugin file path (used for update registration)
The item ID on the license server is 1149413.