Как изменить цель ссылки отслеживания
Как изменить ссылку отслеживания как в администраторе, так и в интерфейсе, чтобы при нажатии на ссылку track this shipment
она открывалась непосредственно на страницу перевозчика?
Я хочу, чтобы он открывался 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;
}
Я погуглил, как изменить это всплывающее окно, но не нашел никакого решения. И можно ли его изменить?
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;
?>