wp = $wp; } public function getKey(): string { return 'mailpoet:segment:subscribed'; } public function getName(): string { return __('Subscribed to segment'); } public function registerHooks(): void { $this->wp->addAction('mailpoet_segment_subscribed', [$this, 'handleSubscription'], 10, 2); } public function handleSubscription(SubscriberSegmentEntity $subscriberSegment): void { $segment = $subscriberSegment->getSegment(); $subscriber = $subscriberSegment->getSubscriber(); if (!$segment || !$subscriber) { throw new InvalidStateException(); } $this->wp->doAction(Hooks::TRIGGER, $this, [ [ 'key' => SegmentSubject::KEY, 'args' => [ 'segment_id' => $segment->getId(), ], ], [ 'key' => SubscriberSubject::KEY, 'args' => [ 'subscriber_id' => $subscriber->getId(), ], ], ]); } }