我主持了一个已经启动并运行多年的网站。到目前为止,它的工作非常出色,但在过去的几天里我出现了一个非常奇怪的错误。
在我的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的核心功能之外,我已经用干净的代码完全替换了所有代码。有什么输入吗?也许我可以让单选按钮隐藏,直到按下它?任何想法如何做到这一点?
答案 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不是很满意。谢谢大家的帮助。你的意见进一步推动了我的研究和理解,如果不是我在这里得到的答案,我就不能解决问题。