*/ class PostSubject implements Subject { const KEY = 'wordpress:post'; /** @var WordPress */ private $wordPress; /** @var PostFieldsFactory */ private $postFieldsFactory; public function __construct( WordPress $wordPress, PostFieldsFactory $postFieldsFactory ) { $this->wordPress = $wordPress; $this->postFieldsFactory = $postFieldsFactory; } public function getName(): string { // translators: automation subject (entity entering automation) title return __('WordPress post', 'mailpoet'); } public function getKey(): string { return self::KEY; } public function getArgsSchema(): ObjectSchema { return Builder::object([ 'post_id' => Builder::integer()->required(), ]); } public function getPayload(SubjectData $subjectData): Payload { $id = $subjectData->getArgs()['post_id']; return new PostPayload((int)$id, $this->wordPress); } public function getFields(): array { return $this->postFieldsFactory->getFields(); } }