_shippingConfig = $shippingConfig; $this->_coreRegistry = $registry; parent::__construct($context, $data); } /** * Prepares layout of block * * @return void */ protected function _prepareLayout() { $this->addChild( 'add_button', \Magento\Backend\Block\Widget\Button::class, ['label' => __('Add Tracking Number'), 'class' => '', 'onclick' => 'trackingControl.add()'] ); } /** * Retrieve shipment model instance * * @return \Magento\Sales\Model\Order\Shipment */ public function getShipment() { return $this->_coreRegistry->registry('current_shipment'); } /** * Retrieve carriers * * @return array */ public function getCarriers() { $carriers = []; $carrierInstances = $this->_getCarriersInstances(); $carriers['custom'] = __('Custom Value'); foreach ($carrierInstances as $code => $carrier) { if ($carrier->isTrackingAvailable()) { $carriers[$code] = $carrier->getConfigData('title'); } } return $carriers; } /** * @return array */ protected function _getCarriersInstances() { return $this->_shippingConfig->getAllCarriers($this->getShipment()->getStoreId()); } }