Uname:
Linux webm012.cluster130.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
Software:
Apache
PHP version:
8.0.30 [ PHP INFO ] PHP os:
Linux
Server Ip:
145.239.37.162
Your Ip:
216.73.216.190
User:
dreampi (1009562) | Group:
users (100)
Safe Mode:
OFF
Disable Function:
_dyuweyrj4,_dyuweyrj4r,dl
<?php // phpcs:ignore SlevomatCodingStandard.TypeHints.DeclareStrictTypes.DeclareStrictTypesMissing
namespace MailPoet\Router\Endpoints;
if (!defined('ABSPATH')) exit;
use MailPoet\Config\AccessControl;
use MailPoet\Form\PreviewPage;
use MailPoet\WP\Functions as WPFunctions;
class FormPreview {
const ENDPOINT = 'form_preview';
const ACTION_VIEW = 'view';
/** @var WPFunctions */
private $wp;
/** @var array|null */
private $data;
/** @var PreviewPage */
private $formPreviewPage;
public $allowedActions = [self::ACTION_VIEW];
public $permissions = [
'global' => AccessControl::NO_ACCESS_RESTRICTION,
];
public function __construct(
WPFunctions $wp,
PreviewPage $formPreviewPage
) {
$this->wp = $wp;
$this->formPreviewPage = $formPreviewPage;
}
public function view(array $data) {
$this->data = $data;
$this->wp->addFilter('the_content', [$this, 'renderContent'], 10);
$this->wp->addFilter('the_title', [$this->formPreviewPage, 'renderTitle'], 10, 2);
$this->wp->addFilter('show_admin_bar', function () {
return false;
});
}
public function renderContent(): string {
if (!array_key_exists('id', $this->data ?? []) || !isset($this->data['form_type'])) {
return '';
}
return $this->formPreviewPage->renderPage(
(int)$this->data['id'],
(string)$this->data['form_type'],
(string)$this->data['editor_url']
);
}
}