Server IP : 104.21.14.103 / Your IP : 3.144.9.172 Web Server : LiteSpeed System : Linux business53.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : giankuin ( 1871) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/proc/thread-self/root/proc/self/root/proc/self/root/proc/thread-self/root/home/giankuin/thietke365.net/wp-content/plugins/mailpoet/lib/Automation/Integrations/MailPoet/Fields/ |
Upload File : |
<?php declare(strict_types = 1); namespace MailPoet\Automation\Integrations\MailPoet\Fields; if (!defined('ABSPATH')) exit; use MailPoet\Automation\Engine\Data\Automation; use MailPoet\Automation\Engine\Data\AutomationRun; use MailPoet\Automation\Engine\Data\Field; use MailPoet\Automation\Engine\Data\Subject; use MailPoet\Automation\Engine\Storage\AutomationStorage; use MailPoet\Automation\Integrations\MailPoet\Payloads\SubscriberPayload; use MailPoet\Automation\Integrations\MailPoet\Subjects\SubscriberSubject; class SubscriberAutomationFieldsFactory { /** @var AutomationStorage */ private $automationStorage; public function __construct( AutomationStorage $automationStorage ) { $this->automationStorage = $automationStorage; } /** @return Field[] */ public function getFields(): array { $automations = $this->automationStorage->getAutomations( array_diff(Automation::STATUS_ALL, [Automation::STATUS_TRASH]) ); $args = [ 'options' => array_map(function (Automation $automation) { return [ 'id' => $automation->getId(), 'name' => $automation->getName() . " (#{$automation->getId()})", ]; }, $automations), ]; return [ new Field( 'mailpoet:subscriber:automations-entered', Field::TYPE_ENUM_ARRAY, __('Automations — entered', 'mailpoet'), function (SubscriberPayload $payload) { return $this->getAutomationIds($payload); }, $args ), new Field( 'mailpoet:subscriber:automations-processing', Field::TYPE_ENUM_ARRAY, __('Automations — processing', 'mailpoet'), function (SubscriberPayload $payload) { return $this->getAutomationIds($payload, [AutomationRun::STATUS_RUNNING]); }, $args ), new Field( 'mailpoet:subscriber:automations-exited', Field::TYPE_ENUM_ARRAY, __('Automations — exited', 'mailpoet'), function (SubscriberPayload $payload) { return $this->getAutomationIds($payload, [AutomationRun::STATUS_COMPLETE]); }, $args ), ]; } private function getAutomationIds(SubscriberPayload $payload, array $status = null): array { $subject = new Subject(SubscriberSubject::KEY, ['subscriber_id' => $payload->getId()]); $automations = $this->automationStorage->getAutomationsBySubject($subject, $status); return array_map(function (Automation $automation) { return $automation->getId(); }, $automations); } }