diff --git a/lib/Form/Block/BlockRendererHelper.php b/lib/Form/Block/BlockRendererHelper.php
index f09d0e986f..49aeb1b52d 100644
--- a/lib/Form/Block/BlockRendererHelper.php
+++ b/lib/Form/Block/BlockRendererHelper.php
@@ -81,7 +81,7 @@ class BlockRendererHelper {
if (is_bool($value)) {
$value = ($value) ? 'true' : 'false';
}
- $validation[] = 'data-parsley-' . $rule . '="' . $value . '"';
+ $validation[] = 'data-parsley-' . $rule . '="' . $this->wp->escAttr($value) . '"';
}
}
return join(' ', $validation);
@@ -132,7 +132,7 @@ class BlockRendererHelper {
if (isset($styles['bold'])) {
$rules[] = 'font-weight: bold;';
}
- return $rules ? 'style="' . implode("", $rules) . '"' : '';
+ return $rules ? 'style="' . $this->wp->escAttr(implode("", $rules)) . '"' : '';
}
public function renderInputPlaceholder(array $block): string {
@@ -168,7 +168,7 @@ class BlockRendererHelper {
public function getFieldLabel(array $block = []): string {
return (isset($block['params']['label'])
&& strlen(trim($block['params']['label'])) > 0)
- ? trim($block['params']['label']) : '';
+ ? $this->wp->escHtml(trim($block['params']['label'])) : '';
}
public function getFieldValue($block = []) {
diff --git a/lib/Form/Block/Checkbox.php b/lib/Form/Block/Checkbox.php
index 1e32c4f2a2..710c4a5fa6 100644
--- a/lib/Form/Block/Checkbox.php
+++ b/lib/Form/Block/Checkbox.php
@@ -3,6 +3,7 @@
namespace MailPoet\Form\Block;
use MailPoet\Form\BlockWrapperRenderer;
+use MailPoet\WP\Functions as WPFunctions;
class Checkbox {
@@ -12,9 +13,13 @@ class Checkbox {
/** @var BlockWrapperRenderer */
private $wrapper;
- public function __construct(BlockRendererHelper $rendererHelper, BlockWrapperRenderer $wrapper) {
+ /** @var WPFunctions */
+ private $wp;
+
+ public function __construct(BlockRendererHelper $rendererHelper, BlockWrapperRenderer $wrapper, WPFunctions $wp) {
$this->rendererHelper = $rendererHelper;
$this->wrapper = $wrapper;
+ $this->wp = $wp;
}
public function render(array $block, array $formSettings): string {
@@ -51,12 +56,12 @@ class Checkbox {
$html .= $fieldValidation;
- $html .= ' /> ' . $option['value'];
+ $html .= ' /> ' . $this->wp->escHtml($option['value']);
$html .= '';
}
- $html .= '';
+ $html .= '';
return $this->wrapper->render($block, $html);
}
diff --git a/lib/Form/Block/Column.php b/lib/Form/Block/Column.php
index e33a71e4dd..c5563dd6fb 100644
--- a/lib/Form/Block/Column.php
+++ b/lib/Form/Block/Column.php
@@ -2,14 +2,23 @@
namespace MailPoet\Form\Block;
+use MailPoet\WP\Functions as WPFunctions;
+
class Column {
+ /** @var WPFunctions */
+ private $wp;
+
+ public function __construct(WPFunctions $wp) {
+ $this->wp = $wp;
+ }
+
public function render(array $block, string $content): string {
return "
getClass($block['params'])}{$this->getStyles($block['params'])}>$content
";
}
private function getStyles(array $params): string {
if (isset($params['width'])) {
- return " style=\"flex-basis:{$params['width']}%;\"";
+ return " style=\"flex-basis:{$this->wp->escAttr($params['width'])}%;\"";
}
return '';
}
@@ -23,6 +32,6 @@ class Column {
$classes[] = $params['class_name'];
}
$classes = implode(' ', $classes);
- return "class=\"$classes\"";
+ return "class=\"{$this->wp->escAttr($classes)}\"";
}
}
diff --git a/lib/Form/Block/Columns.php b/lib/Form/Block/Columns.php
index 2cca686787..cf1a46827d 100644
--- a/lib/Form/Block/Columns.php
+++ b/lib/Form/Block/Columns.php
@@ -2,7 +2,16 @@
namespace MailPoet\Form\Block;
+use MailPoet\WP\Functions as WPFunctions;
+
class Columns {
+ /** @var WPFunctions */
+ private $wp;
+
+ public function __construct(WPFunctions $wp) {
+ $this->wp = $wp;
+ }
+
public function render(array $block, string $content): string {
return "getClass($block['params'] ?? [])}{$this->getStyles($block['params'] ?? [])}>$content
";
}
@@ -19,7 +28,7 @@ class Columns {
$styles[] = "background:{$params['gradient']};";
}
if (count($styles)) {
- return ' style="' . implode('', $styles) . '"';
+ return ' style="' . $this->wp->escAttr(implode('', $styles)) . '"';
}
return '';
}
@@ -39,6 +48,6 @@ class Columns {
$classes[] = $params['class_name'];
}
$classes = implode(' ', $classes);
- return "class=\"$classes\"";
+ return "class=\"{$this->wp->escAttr($classes)}\"";
}
}
diff --git a/lib/Form/Block/Date.php b/lib/Form/Block/Date.php
index 585ffa31b9..249a44e298 100644
--- a/lib/Form/Block/Date.php
+++ b/lib/Form/Block/Date.php
@@ -4,6 +4,7 @@ namespace MailPoet\Form\Block;
use MailPoet\Form\BlockStylesRenderer;
use MailPoet\Form\BlockWrapperRenderer;
+use MailPoet\WP\Functions as WPFunctions;
class Date {
@@ -16,14 +17,19 @@ class Date {
/** @var BlockStylesRenderer */
private $blockStylesRenderer;
+ /** @var WPFunctions */
+ private $wp;
+
public function __construct(
BlockRendererHelper $rendererHelper,
BlockStylesRenderer $blockStylesRenderer,
- BlockWrapperRenderer $wrapper
+ BlockWrapperRenderer $wrapper,
+ WPFunctions $wp
) {
$this->rendererHelper = $rendererHelper;
$this->wrapper = $wrapper;
$this->blockStylesRenderer = $blockStylesRenderer;
+ $this->wp = $wp;
}
public function render(array $block, array $formSettings): string {
@@ -55,7 +61,7 @@ class Date {
foreach ($dateSelectors as $dateSelector) {
if ($dateSelector === 'DD') {
$html .= '';
} else if ($dateSelector === 'MM') {
$html .= '';
} else if ($dateSelector === 'YYYY') {
$html .= '