[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@3.145.157.93: ~ $
<?php // phpcs:ignore SlevomatCodingStandard.TypeHints.DeclareStrictTypes.DeclareStrictTypesMissing

namespace MailPoet\Premium\Config;

if (!defined('ABSPATH')) exit;


use MailPoet\Cron\Workers\StatsNotifications\Worker;
use MailPoet\DI\ContainerWrapper;
use MailPoet\Premium\Automation\Engine\Engine;
use MailPoet\Premium\Config\Hooks as ConfigHooks;
use MailPoet\Premium\Segments\DynamicSegments\Filters\SubscriberTag;
use MailPoet\Premium\Segments\DynamicSegments\SegmentCombinations;
use MailPoet\Util\License\Features\Subscribers;
use MailPoet\WP\Functions as WPFunctions;

class Initializer {

  /** @var Renderer */
  private $renderer;

  /** @var WPFunctions */
  private $wp;

  /** @var ConfigHooks */
  private $hooks;

  /** @var SegmentCombinations */
  private $segmentCombinations;

  /** @var SubscriberTag */
  private $subscriberTag;

  /** @var Engine */
  private $automationEngine;

  /** @var Subscribers */
  private $subscribers;

  const INITIALIZED = 'MAILPOET_PREMIUM_INITIALIZED';

  public function __construct(
    WPFunctions $wp,
    ConfigHooks $hooks,
    SegmentCombinations $segmentCombinations,
    SubscriberTag $subscriberTag,
    Engine $automationEngine,
    Subscribers $subscribers
  ) {
    $this->wp = $wp;
    $this->hooks = $hooks;
    $this->segmentCombinations = $segmentCombinations;
    $this->subscriberTag = $subscriberTag;
    $this->automationEngine = $automationEngine;
    $this->subscribers = $subscribers;
  }

  public function init(
    $params = [
      'file' => '',
      'version' => '1.0.0',
    ]
  ) {
    Env::init($params['file'], $params['version']);

    $this->wp->addAction('mailpoet_initialized', [
      $this,
      'setup',
    ]);

    $this->setupAutomations();
  }

  public function setup() {
    $this->setupLocalizer();
    $this->setupRenderer();

    $this->wp->addAction(
      'mailpoet_styles_admin_after',
      [$this, 'includePremiumStyles']
    );

    $this->wp->addAction(
      'mailpoet_scripts_admin_before',
      [$this, 'includePremiumJavascript']
    );

    $this->setupStatsPages();
    $this->setupSegmentCombinations();
    $this->setupSegmentFilters();

    $this->hooks->init();

    if (!defined(self::INITIALIZED)) {
      define(self::INITIALIZED, true);
    }
  }

  private function setupAutomations() {

    // automation
    $subscriberLimitReached = $this->subscribers->check();
    $premiumFeaturesEnabled = $this->subscribers->hasValidPremiumKey() && !$subscriberLimitReached;
    if ($premiumFeaturesEnabled) {
      $this->automationEngine->initialize();
    }
  }

  public function setupRenderer() {
    $this->renderer = ContainerWrapper::getInstance()->get(Renderer::class);
  }

  public function setupLocalizer() {
    $localizer = new Localizer();
    $localizer->init();
  }

  public function setupStatsPages() {
    $this->wp->addAction(
      'mailpoet_newsletters_translations_after',
      [$this, 'newslettersCampaignStats']
    );
    $this->wp->addAction(
      'mailpoet_subscribers_translations_after',
      [$this, 'subscribersStats']
    );
  }

  public function setupSegmentCombinations() {
    $this->wp->addFilter(
      'mailpoet_dynamic_segments_filters_map',
      [$this->segmentCombinations, 'mapMultipleFilters'],
      10,
      2
    );
    $this->wp->addAction(
      'mailpoet_dynamic_segments_filters_save',
      [$this->segmentCombinations, 'saveMultipleFilters'],
      10,
      2
    );
    $this->wp->addAction(
      'mailpoet_segments_translations_after',
      [$this, 'dynamicSegmentCombinations']
    );
  }

  public function setupSegmentFilters(): void {
    $this->wp->addAction(
      'mailpoet_dynamic_segments_filter_subscriber_tag_apply',
      [$this->subscriberTag, 'apply'],
      10,
      2
    );
    $this->wp->addFilter(
      'mailpoet_dynamic_segments_filter_subscriber_tag_getLookupData',
      [$this->subscriberTag, 'getLookupDataFilterCallback'],
      10,
      2
    );
  }

  public function newslettersCampaignStats() {
    // shortcode URLs to substitute with user-friendly names
    $data['shortcode_links'] = Worker::getShortcodeLinksMapping();

    $this->renderView('newsletters/campaign_stats.html', $data);
  }

  public function subscribersStats() {
    // shortcode URLs to substitute with user-friendly names
    $data['shortcode_links'] = Worker::getShortcodeLinksMapping();

    $this->renderView('subscribers/stats.html', $data);
  }

  public function dynamicSegmentCombinations() {
    $this->renderView('segments/dynamic_premium_translations.html');
  }

  public function includePremiumStyles() {
    $this->wp->wpEnqueueStyle(
      'mailpoet_premium',
      Env::$assetsUrl . '/dist/css/' . $this->renderer->getCssAsset('mailpoet-premium.css'),
      [],
      Env::$version
    );
  }

  public function includePremiumJavascript() {
    $this->wp->wpEnqueueScript(
      'premium',
      Env::$assetsUrl . '/dist/js/' . $this->renderer->getJsAsset('premium.js'),
      ['mailpoet_admin_vendor'],
      Env::$version,
      true
    );
    $this->wp->wpSetScriptTranslations('premium', 'mailpoet-premium');
  }

  /**
   * @param string $path
   * @param array<string, mixed> $data
   * @return void
   * @throws \Exception
   */
  private function renderView(string $path, array $data = []) {
    // We control those templates and the data.
    // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
    echo $this->renderer->render($path, $data);
  }
}

Filemanager

Name Type Size Permission Actions
Env.php File 1.52 KB 0644
Hooks.php File 2.25 KB 0644
Initializer.php File 5.35 KB 0644
Localizer.php File 732 B 0644
Renderer.php File 4.04 KB 0644
index.php File 6 B 0644