Meta Data
Basic idea
<?php
declare(strict_types=1);
namespace Basic\Example\Plugin\Magento\Newsletter\Model;
use MageHook\Hook\ManagerInterface;
use Magento\Framework\Exception\NoSuchEntityException;
use Magento\Newsletter\Model\Subscriber as Subject;
use Magento\Store\Model\StoreManagerInterface;
/**
* Class Subscriber
*
* @package Basic\Example\Plugin\Magento\Newsletter\Model
*/
class Subscriber
{
/** @var HookManagerInterface $hookEventsManagerInterface */
protected $hookEventsManagerInterface;
/**
* OrderRepositoryInterface constructor.
* @param HookManagerInterface $hookEventsManagerInterface
*/
public function __construct(
HookManagerInterface $hookEventsManagerInterface
) {
$this->hookEventsManagerInterface = $hookEventsManagerInterface;
}
/**
* @param Subject $subject
*
* @return Subject
*/
public function afterSave(Subject $subject): Subject
{
if ($subject->isStatusChanged()) {
$additional = [];
try {
$store = $this->storeManagerInterface->getStore($subject->getStoreId());
$additional['store_name'] = $store->getName();
$additional['store_active'] = (bool) $store->getIsActive();
} catch (NoSuchEntityException $exception) {
// Just send the webhook without any additional data
}
$this->hookEventsManagerInterface->fire('newsletter_subscription_change', $subject->getData(), $additional);
}
return $subject;
}
}The public key
Last updated