Repository navigation
#1950 Fix - Plugins page fatal when Everest Forms is active on PHP 8 - #1556
Conversation
QA suite — refused, no regression specThis PR changes product source but adds no spec, so the suite was Source files changed with no matching spec |
PHPCS results✅ No PHPCS issues found. |
|
Build for ⬇️ Download user-registration-5.3.1.zip (8.2M) 🚀 Try this PR in a live test site (a fresh WordPress opens in your browser with this build installed and you logged in as admin; it resets when you close the tab) Installs directly via Plugins → Add New → Upload Plugin. A later push only rebuilds this if its commit message includes |
There was a problem hiding this comment.
🟡 Changes recommended
Add a focused regression test confirming shared labels, including id6, are preserved.
1 open issue
What changed in this PR
Fixes a PHP 8 fatal error on the Plugins page by preserving shared ThemeGrill SDK labels when Everest Forms and User Registration are active.
Changes:
- Merge URM labels instead of replacing shared SDK labels.
- Update related documentation and comments.
| File | Summary |
|---|---|
includes/admin/class-ur-sdk-deactivation-feedback.php |
Preserves labels required by other ThemeGrill SDK products. |
Review effort: Lite
| \ThemeGrillSDK\Loader::$labels['uninstall']['options'] = array_merge( | ||
| \ThemeGrillSDK\Loader::$labels['uninstall']['options'], | ||
| $our_options | ||
| ); |
There was a problem hiding this comment.
Added in ee35ec6: deactivation-popup.spec.ts now asserts patch_sdk_labels_after_init() writes Loader::$labels['uninstall']['options'] exactly once, via array_merge with the existing labels first. Verified it fails against the pre-fix replace code and passes on this branch.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PHPCS results✅ No PHPCS issues found. |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

All Submissions:
Changes proposed in this Pull Request:
Closes themegrill/user-registration-pro#1950 .
Problem: with User Registration & Membership (free 5.3.0 / Pro 6.3.0) and Everest Forms (free or Pro) active on PHP 8, wp-admin → Plugins shows a blank page / critical error. The rest of the site works.
Root cause:
UR_SDK_Deactivation_Feedback::patch_sdk_labels_after_init()(includes/admin/class-ur-sdk-deactivation-feedback.php) replaced\ThemeGrillSDK\Loader::$labels['uninstall']['options']with URM's four labels (id3, id4, id5, id999). That static is shared by every ThemeGrill SDK product on the site. Everest Forms' deactivation popup still uses the SDK default options (id3–id6, id999), soid6has no label →null→array_key_exists(): Argument #2 ($array) must be of type array, null giveninthemegrill-sdk/src/Modules/UninstallFeedback.php:502. The popups are rendered on every Plugins page load, so just opening the page crashes (PHP 7.4 only warns).Fix: merge URM's labels into the shared list (
array_merge) instead of replacing it — the 6.2.8 behaviour. URM's own popup is unchanged: its options still come from theuser_registration_feedback_deactivate_optionsfilter, so it still shows only its four reasons. Docblock/comment updated to match.Not changed (known, cosmetic): URM still writes its heading and reason wording into the shared labels, so Everest Forms' popup shows "Why are you parting ways with the URM plugin?". Scoping the text to URM's own popup is a separate follow-up.
Repo note: this file is synced from free into Pro, so the same one-line change is opened in both repos (free: wpeverest/user-registration, Pro: themegrill/user-registration-pro). Otherwise the next free → Pro sync would bring the replace back.
PHPCS: clean — 0 errors, 0 warnings on the changed file (project
phpcs.xml, wpeverest-sniffs).How to test the changes in this Pull Request:
Preconditions: PHP 8.x, Everest Forms (and optionally Everest Forms Pro) active, WP_DEBUG_LOG on.
Undefined array key "id6"and thearray_key_exists()TypeError inUninstallFeedback.php:502.Verified locally (PHP 8.2, Everest Forms 3.6.2 + Everest Forms Pro, Pro 6.3.0 + this change): steps 1–4 pass. A temporary snippet doing the same merge is live on the reporting customer's site and fixed it there too.
Types of changes:
Other information:
Changelog entry
Fix - Plugins page blank on PHP 8 when Everest Forms is also active.