Как изменить цель ссылки отслеживания


Как изменить ссылку отслеживания как в администраторе, так и в интерфейсе, чтобы при нажатии на ссылку track this shipment она открывалась непосредственно на страницу перевозчика?

tracking information

Я хочу, чтобы он открывался https://www.paket.id/is/MPMTD вместо magento/shipping/tracking/[...]

Вот как я изменил URL-адрес перевозчика:

public function getTrackingInfo($tracking)
{
    $track = Mage::getModel('shipping/tracking_result_status');
    $track->setUrl('https://www.paket.id/is/' . $tracking)
       ->setTracking($tracking)
       ->setCarrierTitle($this->getConfigData('name'));
    return $track;
}

Я погуглил, как изменить это всплывающее окно, но не нашел никакого решения. И можно ли его изменить?

Author: Julien Lachal, 2016-09-14

1 answers

Мне пришлось немного повозиться с этим, но я нашел, как это сделать.

Скопируйте этот файл /app/design/adminhtml/default/default/template/sales/order/view/tab/info.phtml в свою тему, если она у вас есть, или измените ее напрямую (я бы не советовал этого делать).

Затем в строках 60 вы должны увидеть что-то вроде этого:

<a href="#" id="linkId" onclick="popWin('<?php echo $this->helper('shipping')->getTrackingPopupUrlBySalesModel($_order) ?>','trackorder','width=800,height=600,resizable=yes,scrollbars=yes')" title="<?php echo $this->__('Track Order') ?>"><?php echo $this->__('Track Order') ?></a>

Если вы используете PHP>=5.5, замените его на:

<?php  
      echo array_shift(
               Mage::getModel('shipping/info')->loadByHash(Mage::helper('core')->urlEncode("order_id:{$_order->getId()}:{$_order->getProtectCode()}"))->getTrackingInfo()
              )[0]->getData('status'); 
?>

Если вы используете PHP

<?php 
    $firstTrack = array_shift(Mage::getModel('shipping/info')->loadByHash(Mage::helper('core')->urlEncode("order_id:{$_order->getId()}:{$_order->getProtectCode()}"))->getTrackingInfo());
    $trackLink = $firstTrack[0]->getData('status');
    echo $trackLink;
?>
 1
Author: Julien Lachal, 2016-09-19 09:16:52