$options * @param array $hookData */ public function afterOptOut(Entity $entity, array $options, array $hookData): void { if (!empty($options['skipWorkflow'])) { return; } if (!empty($options['skipSignal'])) { return; } if (!empty($options['silent'])) { return; } $targetType = $hookData['targetType']; $targetId = $hookData['targetId']; $target = $this->entityManager->getEntityById($targetType, $targetId); if (!$target) { return; } $this->signalManager->trigger(implode('.', ['@optOut', $entity->getId()]), $target); $this->signalManager->trigger( implode('.', ['optOut', $target->getEntityType(), $target->getId(), $entity->getId()])); } /** * @param array $options * @param array $hookData */ public function afterCancelOptOut(Entity $entity, array $options, array $hookData): void { if (!empty($options['skipWorkflow'])) { return; } if (!empty($options['skipSignal'])) { return; } if (!empty($options['silent'])) { return; } $targetType = $hookData['targetType']; $targetId = $hookData['targetId']; $target = $this->entityManager->getEntityById($targetType, $targetId); if (!$target) { return; } $this->signalManager->trigger(implode('.', ['@cancelOptOut', $entity->getId()]), $target); $this->signalManager->trigger( implode('.', ['cancelOptOut', $target->getEntityType(), $target->getId(), $entity->getId()])); } }