File "AssetsController.php"
Full Path: /home/warrior1/public_html/languages/wp-content/plugins/mailpoet/lib/Form/AssetsController.php
File size: 4.38 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace MailPoet\Form;
if (!defined('ABSPATH')) exit;
use MailPoet\Config\Env;
use MailPoet\Config\Renderer as BasicRenderer;
use MailPoet\Settings\SettingsController;
use MailPoet\Subscription\Captcha;
use MailPoet\WP\Functions as WPFunctions;
class AssetsController {
/** @var WPFunctions */
private $wp;
/** @var BasicRenderer */
private $renderer;
/** @var SettingsController */
private $settings;
const RECAPTCHA_API_URL = 'https://www.google.com/recaptcha/api.js?render=explicit';
public function __construct(
WPFunctions $wp,
BasicRenderer $renderer,
SettingsController $settings
) {
$this->wp = $wp;
$this->renderer = $renderer;
$this->settings = $settings;
}
/**
* Returns assets scripts tags as string
* @return string
*/
public function printScripts() {
ob_start();
$captcha = $this->settings->get('captcha');
if (!empty($captcha['type']) && Captcha::isReCaptcha($captcha['type'])) {
echo '<script src="' . esc_attr(self::RECAPTCHA_API_URL) . '" async defer></script>';
}
$this->wp->wpPrintScripts('jquery');
$this->wp->wpPrintScripts('mailpoet_vendor');
$this->wp->wpPrintScripts('mailpoet_public');
$scripts = ob_get_contents();
ob_end_clean();
if ($scripts === false) {
return '';
}
return $scripts;
}
public function setupFormPreviewDependencies() {
$this->setupFrontEndDependencies();
$this->wp->wpEnqueueScript(
'mailpoet_form_preview',
Env::$assetsUrl . '/dist/js/' . $this->renderer->getJsAsset('form_preview.js'),
['jquery'],
Env::$version,
true
);
}
public function setupFrontEndDependencies() {
$captcha = $this->settings->get('captcha');
if (!empty($captcha['type']) && Captcha::isRecaptcha($captcha['type'])) {
$this->wp->wpEnqueueScript(
'mailpoet_recaptcha',
self::RECAPTCHA_API_URL
);
}
$this->wp->wpEnqueueStyle(
'mailpoet_public',
Env::$assetsUrl . '/dist/css/' . $this->renderer->getCssAsset('mailpoet-public.css')
);
$this->wp->wpEnqueueScript(
'mailpoet_public',
Env::$assetsUrl . '/dist/js/' . $this->renderer->getJsAsset('public.js'),
['jquery'],
Env::$version,
true
);
$this->wp->wpLocalizeScript('mailpoet_public', 'MailPoetForm', [
'ajax_url' => $this->wp->adminUrl('admin-ajax.php'),
'is_rtl' => (function_exists('is_rtl') ? (bool)is_rtl() : false),
]);
$ajaxFailedErrorMessage = __('An error has happened while performing a request, please try again later.', 'mailpoet');
$inlineScript = <<<EOL
function initMailpoetTranslation() {
if (typeof MailPoet !== 'undefined') {
MailPoet.I18n.add('ajaxFailedErrorMessage', '%s')
} else {
setTimeout(initMailpoetTranslation, 250);
}
}
setTimeout(initMailpoetTranslation, 250);
EOL;
$this->wp->wpAddInlineScript(
'mailpoet_public',
sprintf($inlineScript, esc_js($ajaxFailedErrorMessage)),
'after'
);
}
public function setupAdminWidgetPageDependencies() {
$this->wp->wpEnqueueScript(
'mailpoet_vendor',
Env::$assetsUrl . '/dist/js/' . $this->renderer->getJsAsset('vendor.js'),
[],
Env::$version,
true
);
$this->wp->wpEnqueueScript(
'mailpoet_admin',
Env::$assetsUrl . '/dist/js/' . $this->renderer->getJsAsset('mailpoet.js'),
[],
Env::$version,
true
);
}
public function setupAutomationListingDependencies(): void {
$this->wp->wpEnqueueScript(
'automation',
Env::$assetsUrl . '/dist/js/' . $this->renderer->getJsAsset('automation.js'),
[],
Env::$version,
true
);
$this->wp->wpSetScriptTranslations('automation', 'mailpoet');
}
public function setupAutomationEditorDependencies(): void {
$this->wp->wpEnqueueScript(
'automation_editor',
Env::$assetsUrl . '/dist/js/' . $this->renderer->getJsAsset('automation_editor.js'),
[],
Env::$version,
true
);
$this->wp->wpSetScriptTranslations('automation_editor', 'mailpoet');
}
public function setupAutomationTemplatesDependencies(): void {
$this->wp->wpEnqueueScript(
'automation_templates',
Env::$assetsUrl . '/dist/js/' . $this->renderer->getJsAsset('automation_templates.js'),
[],
Env::$version,
true
);
$this->wp->wpSetScriptTranslations('automation_templates', 'mailpoet');
}
}