From 2d32e5013e033f4ee1a36a4db79f61d75277227e Mon Sep 17 00:00:00 2001 From: oluwaseun Olorunsola Date: Mon, 1 Nov 2021 16:06:34 +0100 Subject: [PATCH] Fixed uncheck status not saved in Manage subscriptions page Please note: Mandatory (required) checkbox Fields can not be Empty. This means the checkbox field can not be uncheck by the user. The admin can still control the status of the checkbox [MAILPOET-3858] --- lib/Form/Block/BlockRendererHelper.php | 6 ++++++ lib/Form/Block/Checkbox.php | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/lib/Form/Block/BlockRendererHelper.php b/lib/Form/Block/BlockRendererHelper.php index 2deadec1de..7dd72729b1 100644 --- a/lib/Form/Block/BlockRendererHelper.php +++ b/lib/Form/Block/BlockRendererHelper.php @@ -191,6 +191,12 @@ class BlockRendererHelper { ? $this->wp->escAttr(trim($block['params']['value'])) : ''; } + public function getFieldIsRequired($block = []): bool { + return (isset($block['params']['required']) + && strlen(trim($block['params']['required'])) > 0) + ? !empty($block['params']['required']) : false; + } + public function getInputModifiers(array $block = []): string { $modifiers = []; diff --git a/lib/Form/Block/Checkbox.php b/lib/Form/Block/Checkbox.php index 3850482bd9..41aa9fefd6 100644 --- a/lib/Form/Block/Checkbox.php +++ b/lib/Form/Block/Checkbox.php @@ -40,10 +40,15 @@ class Checkbox { ); $selectedValue = $this->rendererHelper->getFieldValue($block); + $isFieldRequired = $this->rendererHelper->getFieldIsRequired($block); foreach ($options as $option) { + $hiddenValue = $isFieldRequired ? '1' : '0'; // Mandatory Fields can not be Empty + $html .= ''; + $html .= '