在magento的运输估计

时间:2013-07-21 00:03:37

标签: php xml magento

我主持了一个已经启动并运行多年的网站。到目前为止,它的工作非常出色,但在过去的几天里我出现了一个非常奇怪的错误。

在我的magento购物车中,它为用户提供了输入运输邮政编码并获得运费估算的选项。在出现问题之前,在输入邮政编码之前,估计的运费不会出现。现在,它自动默认为30.00美元,我无法弄清楚如何解决它。我不确定是否有更新的内容,如PHP,Magento或某些扩展,但我需要尽快修复。我一直在Magento的管理区域,并改变了运输选项,查看了税收选项和我可能想到的一切。我甚至一直在Magento的cart.phtml文件中注释掉了这一行:

if (!$this->getIsVirtual()): echo $this->getChildHtml('shipping'); endif;

执行此操作只会将估算完全取消。我不想要它,我只是希望它在输入邮政编码之后产生估计而不是之前。我在这里不知所措,我的老板希望明天这样做。任何建议将不胜感激。感谢

修改

我已经完成了我可以想到的所有解决问题的方法,甚至可以用magento提供的原始干净副本完全替换文件。在按下任何东西之前,它仍然默认为30.00运费;在页面加载。该网站使用一步结账作为magento的扩展,我完全不知道这个。我猜这是内部软件中的一个错误,因为除了magento / one step checkout的核心功能之外,我已经用干净的代码完全替换了所有代码。有什么输入吗?也许我可以让单选按钮隐藏,直到按下它?任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:1)

事实证明,一切都被设置为默认值。它将最大运费显示为文件中的默认值。客户只是不希望这样做。我最终做的是

/app/design/frontend/default/scottsflowers/template/checkout/cart/shipping.phtml

文件并在单选按钮及其相应标签上添加ID,并使其在页面加载时不可见:

<input id="radioone" name="estimate_method" style="display:'none';" type="radio"...

<label id="labelone" style="display:'none';"

然后我在代码中放入这两个项目之后不久添加了一个脚本,以检查邮政编码是否为空白或是否已填写。如果已填写,请使两个项目可见。如果没有,请将它们隐藏起来。这是我用于该任务的代码:

            <script type="text/javascript">
                if (document.getElementById("postcode").value != "") {
                    document.getElementById("radioone").style.display='block';
                    document.getElementById("labelone").style.display='block';
                } else {
                    document.getElementById("radioone").style.display='none';
                    document.getElementById("labelone").style.display='none';
                }
            </script>

问题解决了。虽然我被聘为PHP程序员,但不需要做太多(如果有的话)前端工作。这非常令人沮丧,因为我首先对javscript不是很满意。谢谢大家的帮助。你的意见进一步推动了我的研究和理解,如果不是我在这里得到的答案,我就不能解决问题。