Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Magento单页签出-获取类型错误:签出未定义(在opcheckout.js中)_Javascript_Jquery_Magento_Checkout - Fatal编程技术网

Javascript Magento单页签出-获取类型错误:签出未定义(在opcheckout.js中)

Javascript Magento单页签出-获取类型错误:签出未定义(在opcheckout.js中),javascript,jquery,magento,checkout,Javascript,Jquery,Magento,Checkout,大约一周前,单页签出还可以正常工作,现在不行了。毫无疑问,我是错的,因为我仍然有一个与管理后端相关的问题,我可能在处理这个问题的过程中不知怎么搞砸了 在任何情况下,当(登录、注册)用户单击单页签出的账单信息步骤中的“继续”按钮时,发生的情况就好像没有单击按钮一样。它不会进入下一步。错误控制台(在Firefox中)报告“TypeError:checkout未定义”,并在opcheckout.js中显示第303行 这个问题非常类似,但(a)一个问题没有得到真正的回答,(b)我没有足够高的分数来评论(

大约一周前,单页签出还可以正常工作,现在不行了。毫无疑问,我是错的,因为我仍然有一个与管理后端相关的问题,我可能在处理这个问题的过程中不知怎么搞砸了

在任何情况下,当(登录、注册)用户单击单页签出的账单信息步骤中的“继续”按钮时,发生的情况就好像没有单击按钮一样。它不会进入下一步。错误控制台(在Firefox中)报告“TypeError:checkout未定义”,并在opcheckout.js中显示第303行

这个问题非常类似,但(a)一个问题没有得到真正的回答,(b)我没有足够高的分数来评论(或补充问题)

虽然有一个解决方案会很好,但我也在努力学习如何亲自调试它。我已经应用了很多通过谷歌搜索找到的magento解决方案(针对其他问题),尽管它们有效,这是最重要的,但我开始希望能够解决我自己的问题。也许最终还能帮助别人


因此,在这种情况下,考虑到“未定义中的签出”,我如何找到应该在哪里定义它呢?

这里的解决方案是

  • 更正onepage.phtml中的两个错误类引用,以及
  • 重命名一些css类以匹配stock magento签出代码所需的内容
  • 所需的特定css类包括:

    • 步骤标题
    • 台阶
    以下是更正后的onepage.html文件的摘录:

    <ol id="checkoutSteps" class="one-page-checkout">`<?php $i=0; foreach($this->getSteps() as $_stepId => $_stepInfo): ?>
    <?php if (!$this->getChild($_stepId) || !$this->getChild($_stepId)->isShow()): continue; endif; $i++ ?>
        <li id="opc-<?php echo $_stepId ?>" class="section <?php echo !empty($_stepInfo['allow'])?'allow':'' ?> <?php echo !empty($_stepInfo['complete'])?'saved':'' ?>">
            <div class="step-title">
                <h3><span class="step-count"><?php echo $i ?></span> &nbsp;<?php echo $_stepInfo['label'] ?></h3><a href="#"><?php echo $this->__('Edit') ?></a>
            </div>
            <div id="checkout-step-<?php echo $_stepId ?>" class="step <?php if($_stepId=='shipping_method'): ?>-no-padding<?php endif; ?> a-item"  style="display:none;">
                <?php echo $this->getChildHtml($_stepId) ?>
            </div>
        </li>
    <?php endforeach ?>
    </ol>
    
    我称之为“盒子”,但就Magento而言,它需要是“步骤”。由于您的css类可能有所不同,因此需要复制

    我希望这对某人有帮助

    顺便说一下,我是这样想的:

  • 观察我的主题的问题
  • 测试与股票主题:确认工作
  • 返回到我的主题,有选择地禁用文件以找出哪些文件起作用
  • 将其缩小为一个文件:onepage.phtml,仔细检查它,与股票进行比较
  • 找到了我的主题没有的css类名
  • 添加它们,调试它们

  • 这是一个冗长而乏味的过程,但它似乎可以工作。

    在我的例子中,
    /skin/frontend/base/default/js/opcheckout.js
    文件与pspahn建议的
    /skin/frontend/[yourpackage]/[yourtheme]/js/opcheckout.js
    文件不匹配。我的主题中的.js文件是完全空白的。复制内容,把一切都搞定了。在此处进行评论,以便于其他可能正在搜索的用户查看

    当我切换到默认主题时,这个问题就消失了。但这并不意味着我的问题得到了解决,它只是把它缩小了一点:如果使用了基本包,一切都会正常。但是我当然希望我的定制包能够正常工作(就像以前一样)。试着在
    /skin/frontend/base/default/js/opcheckout.js
    /skin/frontend/[yourpackage]/[yourtheme]/js/opcheckout.js
    文件(如果后者存在的话)上做一个比较。谢谢:这是一个好主意。不幸的是,它们完全匹配。但我想我可以在一些地方使用这条攻击线。如果我发现了什么,我会告诉你的。我发现有一个先前的错误,可能是它导致了这个错误。当我从购物车中单击“继续结帐”时,它会产生错误“TypeError:registry is undefined”,并显示指向prototype.js的链接。我以前没有注意到这一点,因为即使有错误,我还是按预期登陆了账单信息页面。
    .one-page-checkout .box { border:1px solid #bbb6a5; border-top:0; padding:15px 20px; background:#faf7ee; }
    .one-page-checkout .step { border:1px solid #bbb6a5; border-top:0; padding:15px 20px; background:#faf7ee; }