An updated fork of Split Test For Elementor, with critical bug fixes, security patches, and the pro-version paywall removed.
Note: This fork is based on v1.8.4 of the original plugin. All credit for the core concept and implementation goes to Rocket Elements / novacreator. This fork exists solely because the original plugin appears to have limited maintenance activity, and the bugs below were blocking production use.
The original plugin is a solid, well-designed A/B testing solution that works natively inside Elementor — no external services, no subscription fees. However, in production use we encountered several critical issues that needed fixing:
- Template-loaded tests were broken — tests placed via Elementor templates never resolved correctly
- SQL injection vulnerabilities — multiple database queries used raw string concatenation
- Unreliable variation distribution — low-precision random range caused skewed results with fractional percentages
- Null reference errors — missing guards caused PHP fatals under certain conditions
- JavaScript bugs — typos in variable references broke client-side test execution
- Admin form bugs — unable to save URL values for 3+ variations in URL-type tests
- SQL injection patches — all raw query concatenations replaced with
$wpdb->prepare()acrossConversionTracker,TestRepo,TestService, andStatisticsRepo - Input validation — added
FILTER_VALIDATE_INTchecks on user-supplied parameters ($_GET['stid']) - REST API auth — moved authentication from inline checks to proper
permission_callbackon POST endpoints
- Template test resolution — null checks in
FrontendBeforeRenderEventmoved before the hiding loop so template-loaded tests correctly resolve and display the active variant - Variation distribution — replaced
rand(1, 100)withmt_rand(1, 10000)for better precision; added fallback for floating-point edge cases - Null reference guards — protected against null
$targetVariationinSendHeadersEvent - JavaScript typo — fixed
window.window.rocketSplitTestdouble-prefix (2 occurrences inWpHeaderEvent) - Uninitialized global — protected
$rocketSplitTestRunningTestswith?? []to prevent null injson_encode() - Admin form field naming — fixed URL input using wrong placeholder token (
VARIATION_IDinstead ofTEST_COUNT), which caused all dynamically-added URL variations to overwrite each other on save
The original plugin gates certain features (cache buster settings, unlimited variations/tests) behind a paid licence. This fork removes those restrictions entirely:
- Removed
LicenceManagerand all licence checks - Removed upsell banners, "Buy Pro" buttons, and variation count limits
- All features are now available without a licence key
The original plugin's "cache buster" feature used client-side AJAX to work around CDN caching, causing flash of unstyled content (FOUC) and extra HTTP requests. This fork replaces it with a simpler approach:
- Pages with active split tests automatically send
Cache-Control: no-store, privateheaders - CDN/proxy caches (Cloudflare, etc.) respect these headers and skip caching for tested pages
- No FOUC, no extra requests, no settings required — it just works
- Removed
CacheCheckService,ShowCacheWarningMessage,ShowWPEngineMessage,FrontendAfterRenderSectionEvent,SettingsPage, and all cache buster JS framework code
- Removed dead code, unreachable branches, and commented-out blocks
- Removed unused imports (
FormSubmitEvent,ConversionWidget) - Removed developer TODO comments
- Cleaned up
editor.min.jspro-version references
- Download or clone this repository
- Place the folder in
wp-content/plugins/split-test-for-elementor - Activate the plugin in WordPress admin
If you're replacing the original plugin, deactivate it first. The database schema is identical — no migration needed.
This fork uses the format {original_version}-fork.{patch}, e.g. 1.8.4-fork.1. The WordPress Update URI is set to false to prevent automatic updates from overwriting the fork with the original plugin.
This is an independent community fork. It is not affiliated with or endorsed by Rocket Elements. If the original plugin resumes active development, we encourage users to switch back to the official version. The original plugin is available at: WordPress.org.
GPL-2.0-or-later — see LICENSE. The original plugin was distributed on WordPress.org, which requires GPL-compatible licensing for all hosted plugins.