Install the Plugin
At a Glance
- Time: About 2 minutes plus key retrieval
- What you do: Check system, upload ZIP, activate, run onboarding wizard
- Up next: Get Turnstile Keys · First-Time Setup
Pre-flight Checklist
- [ ] PHP 7.4 or higher (run
php -v) - [ ] WordPress 5.8 or higher
- [ ] WooCommerce 8.0 or higher, installed and active
- [ ] MySQL 5.7+ or MariaDB 10.3+
- [ ] You have admin login
- [ ]
curlenabled on the server (needed to hit the Cloudflare verify API)
System Requirements
| Requirement | Minimum | Tested Up To |
|---|---|---|
| PHP | 7.4 | 8.3 |
| WordPress | 5.8 | 6.9 |
| WooCommerce | 8.0 | 9.6 |
| MySQL | 5.7 | 8.4 |
Recommended
| Item | Why |
|---|---|
| PHP 8.1+ | Better performance, modern syntax support |
| 256MB memory limit | Enough headroom for admin analytics charts |
| WP-Cron working | Required for email digest + webhooks |
| Outbound HTTPS | Server must reach challenges.cloudflare.com |
Server must reach Cloudflare
The plugin makes a server-to-server HTTPS call to https://challenges.cloudflare.com/turnstile/v0/siteverify on every form submit. If your host blocks outbound HTTPS, Turnstile cannot verify tokens.
How to Install the Plugin
Three install methods. Pick what matches your style.
Option 1 — Upload the ZIP (Easiest)
- Download
turnstile-captcha-for-woocommerce.zipfrom your Webkul account or CodeCanyon - In WordPress, go to
Plugins → Add Newand click Upload Plugin - Click Choose File, pick the ZIP, click Install Now
- Wait for "Plugin installed successfully" and click Activate Plugin
Option 2 — FTP or SFTP
Use this if your host limits file upload size.
- Unzip
turnstile-captcha-for-woocommerce.zipon your computer - Open your FTP/SFTP client (FileZilla, Cyberduck) and connect to your server
- On the remote side, go to
/wp-content/plugins/ - Drag the unzipped
turnstile-captcha-for-woocommercefolder and drop it in - In WordPress, go to
Plugins → Installed Plugins - Find Turnstile CAPTCHA For WooCommerce and click Activate
Option 3 — WP-CLI (For Developers)
wp plugin install /path/to/turnstile-captcha-for-woocommerce.zip --activate
What Happens After You Activate
Four things happen automatically.
1. A New Admin Menu Appears
You get two entry points:
- WooCommerce → Turnstile Settings — The 9-tab settings page (slug:
wkcft-settings) - WooCommerce → Webkul Addons → Analytics — The analytics dashboard (slug:
wkcft-analytics)
2. Database Table Is Created
A single log table is added.
| Table | What It Stores |
|---|---|
wp_wkcft_log | Pass/fail result, form slug, IP, hashed UA, timestamp |
No PII is stored. IPs are kept in their raw form for rate-limiting but hashed for analytics aggregates.
3. Onboarding Wizard Launches
A 3-step guided setup opens automatically at ?page=wkcft-onboarding:
- Step 1 — Paste your Site Key + Secret Key
- Step 2 — Pick which forms to protect
- Step 3 — Review and finish
If you close it mid-way, a persistent banner in the admin takes you back until you finish or dismiss.
4. Compatibility Declared
The plugin declares compatibility with:
- HPOS (High-Performance Order Storage / custom order tables)
- Cart/Checkout Blocks (modern WooCommerce checkout)
You do not need to do anything — WooCommerce reads this and stops showing the "plugin not yet compatible" notices.
Verify the Install
Open WooCommerce → Turnstile Settings. You should see:
- The tabbed settings page with 9 tabs across the top
- A header banner prompting you to enter API keys (if the wizard was skipped)
- The API Settings tab selected by default
- No PHP errors, no blank page
Open WooCommerce → Webkul Addons → Analytics. You should see:
- "No data yet" message (expected — no form submits have run)
- Empty charts
- Date range selector
If both pages load cleanly, the plugin is installed correctly.
How to Uninstall or Reset
- Deactivate — Keeps all your data. Options and logs stay in place
- Delete (Plugins screen) — Removes the files but keeps options in case of reinstall
- Full wipe — Delete the plugin, then run these SQL statements:
DROP TABLE IF EXISTS wp_wkcft_log;
DELETE FROM wp_options WHERE option_name LIKE 'wkcft_%';
DELETE FROM wp_options WHERE option_name LIKE '_transient_wkcft_%';
DELETE FROM wp_options WHERE option_name LIKE '_transient_timeout_wkcft_%';
SQL wipe is final
Only run the SQL statements if you intend to permanently remove every trace of the plugin. There is no undo.
Troubleshooting
| Problem | Fix |
|---|---|
| "Plugin could not be activated — fatal error" | PHP version too old. Upgrade to 7.4+ |
| "WooCommerce is not active" | Install and activate WooCommerce first |
| Menu does not appear | Clear browser cache. Confirm you have manage_woocommerce capability |
| Onboarding wizard does not launch | Go directly to wp-admin/admin.php?page=wkcft-onboarding&step=1 |
| "Requires Plugins" warning on activation | WP 6.5+ enforces the WooCommerce dependency — install WC first |
| Analytics page blank | No data yet. Run a test form submission |
Where to Go Next
- Get Turnstile Keys — Create Cloudflare account, copy Site Key + Secret Key
- Onboarding Wizard — The guided 3-step setup
- First-Time Setup — Full manual walkthrough
- Quick Start — Minimum-steps summary
