0

所以,我开始尝试一些 Magento 代码。我正在尝试追踪计算购物车页面上运费的代码。我正在查看一个名为shipping.phtmlin的文件/your_theme/template/checkout/cart/

邮编输入框:

            <li>
                <label for="postcode"<?php if ($this->isZipCodeRequired()) echo ' class="required"' ?>><?php if ($this->isZipCodeRequired()) echo '<em>*</em>' ?><?php echo $this->__('Zip/Postal Code') ?></label>
                <input class="input-text validate-postcode<?php if ($this->isZipCodeRequired()):?> required-entry<?php endif;?>" type="text" id="postcode" name="estimate_postcode" value="<?php echo $this->htmlEscape($this->getEstimatePostcode()) ?>" />
            </li>

计算运费按钮:

        <div class="buttons-set">
            <button type="button" onclick="coShippingMethodForm.submit()" class="button"><span><span><?php echo $this->__('Get a Quote') ?></span></span></button>
        </div>

Javascript:

<script type="text/javascript">
//<![CDATA[
    var coShippingMethodForm = new VarienForm('shipping-zip-form');
    var countriesWithOptionalZip = <?php echo $this->helper('directory')->getCountriesWithOptionalZip(true) ?>;

    coShippingMethodForm.submit = function () {
        var country = $F('country');
        var optionalZip = false;

        for (i=0; i < countriesWithOptionalZip.length; i++) {
            if (countriesWithOptionalZip[i] == country) {
                optionalZip = true;
            }
        }
        if (optionalZip) {
            $('postcode').removeClassName('required-entry');
        }
        else {
            $('postcode').addClassName('required-entry');
        }
        return VarienForm.prototype.submit.bind(coShippingMethodForm)();
    }
//]]>
</script>

现在,我不知道它从这里去哪里。有人可以向我提供一些关于这从这里开始的提示吗?

编辑:

我应该补充一点,我正在寻找包含物品重量并计算 USPS 运费的代码。我读过一个名为 Usps.php 的文件是用来计算这个费率的,但是即使修改了核心文件,我也无法更改成本在网站上的显示方式,所以我想知道自己确实是计算运费的代码。

4

1 回答 1

1

这不是计算运费的代码——它只是提交请求的表单。可能最简单的方法是在嗅探 HTTP 请求的同时提交表单(即通过浏览器开发人员工具的网络选项卡),然后查看请求的去向——然后找到处理该 URL 请求的控制器。

如果您想知道 $this 在该文件中引用了哪个类,那么最可靠的方法可能是get_class($this)从模板中回显。但是,这可能不是找到所需内容的最直接方法。

于 2012-06-16T00:54:42.993 回答