【问题标题】:WooCommerce: Cannot read property 'reload' of null checkout.min.js?WooCommerce:无法读取 null checkout.min.js 的属性“重新加载”?
【发布时间】:2025-12-25 05:10:12
【问题描述】:

使用 WooPress - 8theme WordPress 主题运行 Wordpress 4.1.5 和 WooCommerce 2.3.8。在结帐页面上,当我点击“下订单”时,它会停止,在控制台中我得到:

Uncaught TypeError: Cannot read property 'reload' of null 来自 checkout.min.js。我将其替换为非缩小版本并扣除它来自这里:

            $.ajax({
                type:       'POST',
                url:        wc_checkout_params.checkout_url,
                data:       $form.serialize(),
                success:    function( code ) {

原来code 为空。请求的操作是wp-admin/admin-ajax.php?action=woocommerce_checkout。为什么这会是空的?

注意:对于支付供应商,我使用的是 AuthorizeNetAIM 插件(来自 codecanyon)并使用测试模式 + 沙箱登录。

更新 #1:尝试此修复:http://www.tech.theplayhub.com/woocommerce_js_issue_on_checkout/

通过禁用电子邮件通知。没有运气。

更新 #2:尝试了此修复: https://github.com/woothemes/woocommerce/issues/5332

在这种情况下,用户有一个罪魁祸首 FB 插件并且不得不禁用它。

我安装的唯一插件:

  • RevolutionSlider 4.6.5
  • WC Authorize.Net AIM 1.2.1
  • WooCommerce 2.3.8
  • WPBakery Visual Composer 4.4.3

更新 #3: 将 WooCommerce 2.3.8 降级为 2.3.0,因为我使用的主题 (8theme / woopress) 包含 woocommerce 2.3.0 文件。一样。还尝试将主题更改为裸( TwelveFourteen 等)主题。一样。

我怀疑这可能是 AuthorizeNet AIM 插件失败/抛出异常,除非代码没有以某种方式获取它。

【问题讨论】:

    标签: javascript wordpress woocommerce woothemes


    【解决方案1】:

    原来是这样的:cURL requires CURLOPT_SSL_VERIFYPEER=FALSE)

    基本上,我使用的插件使用的是过时的 cert.pem 文件。

    有问题的模块:http://codecanyon.net/item/authorizenet-aim-payment-module-for-woocommerce/1991981

    有问题的文件:wp-content/plugins/wc-authorize-aim/includes/lib/ssl/cert.pem。

    虽然可以说plugins/woocommerce/assets/js/frontend/checkout.min.js 的错误处理可以更好地改进以检测是否有任何实际响应。

    【讨论】:

    • 非常完整的问答。你试过 wootheme 版本的授权吗?
    • 哈哈,我看到了,但不幸的是它超出了我的预算。