Skip to content
Snippets Groups Projects
Select Git revision
  • dev default protected
  • prod protected
  • 1.0.58
  • 1.0.57
  • 1.0.52
  • 1.0.56
  • 1.0.51
  • 1.0.50
  • 1.0.33
  • 1.0.32
  • 1.0.31
  • 1.0.30
  • 1.0.29
  • 1.0.28
  • 1.0.27
  • 1.0.26
  • 1.0.25
  • 1.0.24
  • 1.0.23
  • 1.0.22
  • 1.0.21
  • 1.0.20
22 results

ConfigChangeObserver.php

Blame
  • ConfigChangeObserver.php 2.90 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');
    
            // Test for rates at checkout
            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 Bob Go
                            settings page to make sure your Magento channel is enabled to receive rates.
                            https://my.bobgo.co.za/rates-at-checkout?tab=settings')
                        );