Къде се генерира?
Ако погледнете в app/code/core/Mage/Sales/Model/Order.php
около линия 2052
, ще намерите следното:
$this->setData('protect_code', substr(md5(uniqid(mt_rand(), true) . ':' . microtime(true)), 5, 6));
Това е мястото, където protect_code
се генерира за поръчката (използвайки комбинация от md5, uniqid и произволно цяло число.
За какво се използва?
Ако погледнете в app/code/core/Mage/Sales/Helper/Guest.php
и намерете loadValidOrder
функция. Ще видите protect_code
използва се в някои области, за да се гарантира, че поръчката, която се зарежда, е правилната за стойността на бисквитката на госта.
Използва се и в други области, като сравнения на информация за проследяване. Можете да видите няколко екземпляра на getProtectCode()
метод, който се извиква в моделите за изпращане, за да се сравни поръчката с информацията за проследяване. Пример за функция, която го използва е:
public function getTrackingInfoByTrackId()
{
$track = Mage::getModel('sales/order_shipment_track')->load($this->getTrackId());
if ($track->getId() && $this->getProtectCode() == $track->getProtectCode()) {
$this->_trackingInfo = array(array($track->getNumberDetail()));
}
return $this->_trackingInfo;
}
Както можете да видите с $this->getProtectCode() == $track->getProtectCode()
, проследяващият protect_code
трябва да съвпада с protect_code
на пратката .