Skip to content
Snippets Groups Projects
Select Git revision
  • aa3692729d62856fe8140ad884011db80a3ea9a5
  • 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
23 results

ConfigChangeObserver.php

Blame
  • 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.')
                        );
                    }