From cc536959630f6cea948e5321cc33b3fcf082476c Mon Sep 17 00:00:00 2001 From: "vivi-the-going-merry[bot]" <308115520+vivi-the-going-merry[bot]@users.noreply.github.com> Date: Tue, 20 Oct 2026 19:11:21 -0600 Subject: [PATCH 1/4] Add test: settings form posts action field for add-ons --- .../settings/test_FrmSettingsController.php | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 tests/phpunit/settings/test_FrmSettingsController.php diff --git a/tests/phpunit/settings/test_FrmSettingsController.php b/tests/phpunit/settings/test_FrmSettingsController.php new file mode 100644 index 0000000000..5bf1cc7ecd --- /dev/null +++ b/tests/phpunit/settings/test_FrmSettingsController.php @@ -0,0 +1,25 @@ +factory->user->create( array( 'role' => 'administrator' ) ) ); + + ob_start(); + FrmSettingsController::display_form(); + $html = ob_get_clean(); + + $this->assertStringContainsString( '', $html ); + $this->assertStringContainsString( '', $html ); + } +} From 851ba4e93322fe238b2a1242fea7317db5ecffcb Mon Sep 17 00:00:00 2001 From: "vivi-the-going-merry[bot]" <308115520+vivi-the-going-merry[bot]@users.noreply.github.com> Date: Tue, 20 Oct 2026 19:16:12 -0600 Subject: [PATCH 2/4] Restore hidden action field on the Global Settings form Add-ons read 'action' (not 'frm_action') in their settings routes, so removing it in 04702c59a0 stopped them from saving. Co-Authored-By: Claude Sonnet 5.5 --- classes/views/frm-settings/form.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/classes/views/frm-settings/form.php b/classes/views/frm-settings/form.php index 99ea8670d2..7a6e37a40e 100644 --- a/classes/views/frm-settings/form.php +++ b/classes/views/frm-settings/form.php @@ -26,6 +26,8 @@ + + Date: Tue, 20 Oct 2026 19:26:09 -0600 Subject: [PATCH 3/4] Drop inline comment that fails PHPCS Co-Authored-By: Claude Sonnet 5.5 --- classes/views/frm-settings/form.php | 1 - 1 file changed, 1 deletion(-) diff --git a/classes/views/frm-settings/form.php b/classes/views/frm-settings/form.php index 7a6e37a40e..ecbc28b012 100644 --- a/classes/views/frm-settings/form.php +++ b/classes/views/frm-settings/form.php @@ -26,7 +26,6 @@ - From a7243d2a023291eada6d5e0b7e7277ae7c0a58d2 Mon Sep 17 00:00:00 2001 From: "vivi-the-going-merry[bot]" <308115520+vivi-the-going-merry[bot]@users.noreply.github.com> Date: Tue, 20 Oct 2026 21:21:14 -0600 Subject: [PATCH 4/4] Allow the shared action name in the settings HTML validation Co-Authored-By: Claude Sonnet 5.5 --- tests/cypress/e2e/admin-html-validation.cy.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/cypress/e2e/admin-html-validation.cy.js b/tests/cypress/e2e/admin-html-validation.cy.js index 7fe46bfcd4..adb095ae4e 100644 --- a/tests/cypress/e2e/admin-html-validation.cy.js +++ b/tests/cypress/e2e/admin-html-validation.cy.js @@ -29,6 +29,8 @@ describe( 'Run some HTML validation', function() { cy.visit( '/wp-admin/admin.php?page=formidable-settings' ); cy.get( '#wpbody-content' ).htmlvalidate( { rules: { + // The hidden `action` field and the MCP buttons' `action` share a name on purpose. + 'form-dup-name': 'off', 'element-permitted-content': 'off', 'valid-id': 'off', 'prefer-button': 'off',