geno/wp-content/plugins/mailpoet/lib/Twig/Analytics.php

62 lines
1.5 KiB
PHP
Raw Normal View History

2024-02-01 17:24:18 +05:30
<?php // phpcs:ignore SlevomatCodingStandard.TypeHints.DeclareStrictTypes.DeclareStrictTypesMissing
namespace MailPoet\Twig;
if (!defined('ABSPATH')) exit;
use MailPoet\Analytics\Analytics as AnalyticsGenerator;
use MailPoet\DI\ContainerWrapper;
use MailPoet\InvalidStateException;
use MailPoetVendor\Twig\Extension\AbstractExtension;
use MailPoetVendor\Twig\TwigFunction;
class Analytics extends AbstractExtension {
/** @var AnalyticsGenerator */
private $analytics;
public function getFunctions() {
return [
new TwigFunction(
'is_analytics_enabled',
[$this, 'isEnabled'],
['is_safe' => ['all']]
),
new TwigFunction(
'get_analytics_public_id',
[$this, 'getPublicId'],
['is_safe' => ['all']]
),
new TwigFunction(
'is_analytics_public_id_new',
[$this, 'isPublicIdNew'],
['is_safe' => ['all']]
),
];
}
private function getAnalytics() {
if ($this->analytics === null) {
$this->analytics = ContainerWrapper::getInstance()->get(AnalyticsGenerator::class);
}
if (!$this->analytics instanceof AnalyticsGenerator) {
throw new InvalidStateException('AnalyticsGenerator service was not registered!');
}
return $this->analytics;
}
public function isEnabled() {
return $this->getAnalytics()->isEnabled();
}
public function getPublicId() {
return $this->getAnalytics()->getPublicId();
}
public function isPublicIdNew() {
return $this->getAnalytics()->isPublicIdNew();
}
}