* @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * @link https://www.temando.com/ */ class AddRmaShipmentsTabObserver implements ObserverInterface { /** * @var Registry */ private $registry; /** * AddPickupTabObserver constructor. * @param Registry $registry */ public function __construct(Registry $registry) { $this->registry = $registry; } /** * Append an additional tab block if the current order is a Temando order. * * - event: layout_load_before * * @param Observer $observer * @return void */ public function execute(Observer $observer) { $applicableActions = [ 'adminhtml_rma_edit', ]; $action = $observer->getData('full_action_name'); if (!in_array($action, $applicableActions)) { // not the RMA edit page return; } /** @var \Magento\Sales\Model\Order $order */ $order = $this->registry->registry('current_order'); if (!$order instanceof OrderInterface) { return; } if ($order->getIsVirtual() || !$order->getData('shipping_method')) { return; } $shippingMethod = $order->getShippingMethod(true); if ($shippingMethod->getData('carrier_code') !== Carrier::CODE) { return; } /** @var \Magento\Framework\View\Layout $layout */ $layout = $observer->getData('layout'); $layout->getUpdate()->addHandle('temando_rma_shipments_tab'); } }