catalog/model/extension/shipping/usps.php
(开头部分) 17KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
class ModelExtensionShippingUsps extends Model {
public function getQuote($address) {
$this->load->language('extension/shipping/usps');
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "zone_to_geo_zone WHERE geo_zone_id = '" . (int)$this->config->get('shipping_usps_geo_zone_id') . "' AND country_id = '" . (int)$address['country_id'] . "' AND (zone_id = '" . (int)$address['zone_id'] . "' OR zone_id = '0')");
if (!$this->config->get('shipping_usps_geo_zone_id')) {
$status = true;
} elseif ($query->num_rows) {
$status = true;
} else {
$status = false;
}
$weight = $this->weight->convert($this->cart->getWeight(), $this->config->get('config_weight_class_id'), $this->config->get('shipping_usps_weight_class_id'));
// 70 pound limit
if ($weight > 70) {
$status = false;
}
$method_data = array();
if ($status) {
$this->load->model('localisation/country');
$quote_data = array();
$weight = ($weight < 0.1 ? 0.1 : $weight);
$pounds = floor($weight);
$ounces = round(16 * ($weight - $pounds), 2); // max 5 digits
$postcode = str_replace(' ', '', $address['postcode']);
if ($address['iso_code_2'] == 'US') {
$xml = '<RateV4Request USERID="' . $this->config->get('shipping_usps_user_id') . '">';
$xml .= ' <Package ID="1">';
$xml .= ' <Service>ALL</Service>';
$xml .= ' <ZipOrigination>' . substr($this->config->get('shipping_usps_postcode'), 0, 5) . '</ZipOrigination>';
$xml .= ' <ZipDestination>' . substr($postcode, 0, 5) . '</ZipDestination>';
$xml .= ' <Pounds>' . $pounds . '</Pounds>';
$xml .= ' <Ounces>' . $ounces . '</Ounces>';
// Prevent common size mismatch error from USPS (Size cannot be Regular if Container is Rectangular for some reason)
if ($this->config->get('shipping_usps_container') == 'RECTANGULAR' && $this->config->get('shipping_usps_size') == 'REGULAR') {
$this->config->set('shipping_usps_container', 'VARIABLE');
}
$xml .= ' <Container>' . $this->config->get('shipping_usps_container') . '</Container>';
$xml .= ' <Size>' . $this->config->get('shipping_usps_size') . '</Size>';
$xml .= ' <Width>' . $this->config->get('shipping_usps_width') . '</Width>';
$xml .= ' <Length>' . $this->config->get('shipping_usps_length') . '</Length>';
$xml .= ' <Height>' . $this->config->get('shipping_usps_height') . '</Height>';
// Calculate girth based on usps calculation
$xml .= ' <Girth>' . (round(((float)$this->config->get('shipping_usps_length') + (float)$this->config->get('shipping_usps_width') * 2 + (float)$this->config->get('shipping_usps_height') * 2), 1)) . '</Girth>';
$xml .= ' <Machinable>' . ($this->config->get('shipping_usps_machinable') ? 'true' : 'false') . '</Machinable>';
$xml .= ' </Package>';
$xml .= '</RateV4Request>';
后面还有 424 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
