Select Git revision
ConfigChangeObserver.php
ConfigChangeObserver.php 2.12 KiB
<?php
namespace BobGroup\BobGo\Observer;
use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;
use Magento\Framework\Message\ManagerInterface;
use Psr\Log\LoggerInterface;
use BobGroup\BobGo\Model\Carrier\BobGo;
class ConfigChangeObserver implements ObserverInterface
{
/**
* @var BobGo
*/
protected $bobGo;
/**
* @var LoggerInterface
*/
protected $logger;
/**
* @var ManagerInterface
*/
protected $messageManager;
/**
* Constructor
*
* @param BobGo $bobGo
* @param LoggerInterface $logger
* @param ManagerInterface $messageManager
*/
public function __construct(
BobGo $bobGo,
LoggerInterface $logger,
ManagerInterface $messageManager
) {
$this->bobGo = $bobGo;
$this->logger = $logger;
$this->messageManager = $messageManager;
}
/**
* Execute observer to handle configuration changes.
*
* @param Observer $observer
* @return void
*/
public function execute(Observer $observer)
{
$changedPaths = $observer->getEvent()->getData('changed_paths');
if (is_array($changedPaths) && in_array('carriers/bobgo/active', $changedPaths)) {
if ($this->bobGo->isActive()) {
$result = $this->bobGo->triggerRatesTest();
if ($result !== false) {
$this->messageManager->addSuccessMessage(
__('Bob Go rates at checkout connected.')
);
} else {
$this->messageManager->addErrorMessage(
__('Failed to connect to rates at checkout. Please check your internet connection and make '
. 'sure Rates at checkout is enabled for your channel on Bob Go. Please visit '
. '<a href="https://my.bobgo.co.za/rates-at-checkout?tab=settings" target="_new">Bob '
. 'Go</a> and make sure your WooCommerce channel is enabled to receive rates.')
);
}