t> */
public function getSubjects(): array {
return $this->subjects;
}
public function addSubjectTransformer(SubjectTransformer $transformer): void {
$this->subjectTransformers[] = $transformer;
}
public function getSubjectTransformers(): array {
return $this->subjectTransformers;
}
public function getField(string $key): ?Field {
return $this->getFields()[$key] ?? null;
}
/** @return array */
public function getFields(): array {
// add fields lazily (on the first call)
if ($this->fields === null) {
$this->fields = [];
foreach ($this->subjects as $subject) {
foreach ($subject->getFields() as $field) {
$this->addField($field);
}
}
}
return $this->fields ?? [];
}
public function addFilter(Filter $filter): void {
$fieldType = $filter->getFieldType();
if (isset($this->filters[$fieldType])) {
throw new \Exception(); // TODO
}
$this->filters[$fieldType] = $filter;
}
public function getFilter(string $fieldType): ?Filter {
return $this->filters[$fieldType] ?? null;
}
/** @return array */
public function getFilters(): array {
return $this->filters;
}
public function addStep(Step $step): void {
if ($step instanceof Trigger) {
$this->addTrigger($step);
} elseif ($step instanceof Action) {
$this->addAction($step);
}
// TODO: allow adding any other step implementations?
}
public function getStep(string $key): ?Step {
return $this->steps[$key] ?? null;
}
/** @return array */
public function getSteps(): array {
return $this->steps;
}
public function addTrigger(Trigger $trigger): void {
$key = $trigger->getKey();
if (isset($this->steps[$key]) || isset($this->triggers[$key])) {
throw new \Exception(); // TODO
}
$this->steps[$key] = $trigger;
$this->triggers[$key] = $trigger;
}
public function getTrigger(string $key): ?Trigger {
return $this->triggers[$key] ?? null;
}
/** @return array */
public function getTriggers(): array {
return $this->triggers;
}
public function addAction(Action $action): void {
$key = $action->getKey();
if (isset($this->steps[$key]) || isset($this->actions[$key])) {
throw new \Exception(); // TODO
}
$this->steps[$key] = $action;
$this->actions[$key] = $action;
}
public function getAction(string $key): ?Action {
return $this->actions[$key] ?? null;
}
/** @return array */
public function getActions(): array {
return $this->actions;
}
public function addContextFactory(string $key, callable $factory): void {
$this->contextFactories[$key] = $factory;
}
/** @return callable[] */
public function getContextFactories(): array {
return $this->contextFactories;
}
public function onBeforeAutomationSave(callable $callback, int $priority = 10): void {
$this->wordPress->addAction(Hooks::AUTOMATION_BEFORE_SAVE, $callback, $priority);
}
public function onBeforeAutomationStepSave(callable $callback, string $key = null, int $priority = 10): void {
$keyPart = $key ? "/key=$key" : '';
$this->wordPress->addAction(Hooks::AUTOMATION_STEP_BEFORE_SAVE . $keyPart, $callback, $priority, 2);
}
/**
* This is used only internally. Fields are added lazily from subjects.
*/
private function addField(Field $field): void {
$key = $field->getKey();
if (isset($this->fields[$key])) {
throw new \Exception(); // TODO
}
$this->fields[$key] = $field;
}
}
Fatal error: Uncaught Error: Class "MailPoet\Automation\Engine\Registry" not found in /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php:1705
Stack trace:
#0 /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php(1511): MailPoetGenerated\FreeCachedContainer->getRegistryService()
#1 /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php(1863): MailPoetGenerated\FreeCachedContainer->getFilterHandlerService()
#2 /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php(1873): MailPoetGenerated\FreeCachedContainer->getIfElseActionService()
#3 /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php(1675): MailPoetGenerated\FreeCachedContainer->getCoreIntegrationService()
#4 /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php(2640): MailPoetGenerated\FreeCachedContainer->getEngineService()
#5 /htdocs/wp-content/plugins/mailpoet/vendor-prefixed/symfony/dependency-injection/Container.php(122): MailPoetGenerated\FreeCachedContainer->getInitializerService()
#6 /htdocs/wp-content/plugins/mailpoet/vendor-prefixed/symfony/dependency-injection/Container.php(110): MailPoetVendor\Symfony\Component\DependencyInjection\Container->make('MailPoet\\Config...', 1)
#7 /htdocs/wp-content/plugins/mailpoet/lib/DI/ContainerWrapper.php(39): MailPoetVendor\Symfony\Component\DependencyInjection\Container->get('MailPoet\\Config...')
#8 /htdocs/wp-content/plugins/mailpoet/mailpoet_initializer.php(89): MailPoet\DI\ContainerWrapper->get('MailPoet\\Config...')
#9 /htdocs/wp-content/plugins/mailpoet/mailpoet.php(194): require_once('/htdocs/wp-cont...')
#10 /htdocs/wp-settings.php(545): include_once('/htdocs/wp-cont...')
#11 /htdocs/wp-config.php(85): require_once('/htdocs/wp-sett...')
#12 /htdocs/wp-load.php(50): require_once('/htdocs/wp-conf...')
#13 /htdocs/wp-blog-header.php(13): require_once('/htdocs/wp-load...')
#14 /htdocs/index.php(17): require('/htdocs/wp-blog...')
#15 {main}
thrown in /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php on line 1705