WooCommerce 结帐不起作用:如何解决

已发表: 2020-12-26

您的结帐页面有问题吗? 您的 WooCommerce 结帐是否无法正常工作? 我们已经为您服务了。 在本指南中,您将了解如何解决结帐页面上最常见的问题,以便您可以立即启动并运行您的商店

每个店主都知道结账是 WooCommerce 商店最重要的页面,因为这是您完成销售的步骤。 但是,它也是购物车放弃率最高的页面之一。 研究表明,大多数购物者在结账时会因为额外的费用而放弃,因为它太长或太复杂,或者网站看起来不值得信赖。

我们已经了解了如何在 WooCommerce 中自定义结帐和结帐优化的不同策略。 优化结账可以帮助您提高转化率并提高销售额,这已不是什么秘密。 花时间打磨它会对您的在线商店产生很大的影响。

然而,说起来容易做起来难。 事情可能会出错并在结帐页面上产生问题,从而严重影响您的业务。 因此,在本指南中,我们将教您不同的方法来解决可能的原因并在您的 WooCommerce 结帐无法正常工作时解决问题

WooCommerce 结帐不起作用? 如何解决常见问题

许多事情都可能导致结帐无法正常工作。 在本节中,我们将了解最常见问题的解决方案,以帮助您尽快启动并运行您的商店。

1.停用插件和主题

导致结帐在 WooCommerce 中停止工作的最常见问题是创建冲突的主题或插件。 最有效的解决方案是停用所有插件,看看是哪个插件导致了问题。

您可以通过转到结帐处、右键单击页面上的任意位置并转到Inspect > Console来检查。 如果您看到 Javascript 错误,那么您的某些插件或主题会导致问题。 要检查哪个插件或主题正在创建冲突,您有两种选择:

  1. 批量停用插件
  2. 使用健康检查插件

注意:在开始之前,我们建议您对网站进行完整备份,以防出现问题。 即使停用和重新激活插件不会导致任何问题,但如果确实如此,备份将为您省去一个大麻烦。

使用这两个选项,想法是暂时禁用所有插件(WooCommerce 除外)并为您的用户会话激活默认主题。 这样,您可以一一激活插件并检查导致冲突的插件。 如果您使用健康检查,请确保您从/wp-admin/index.php?page=health-check&tab=troubleshoot进入故障排除模式。 另外,请记住,此工具需要默认主题(如二十一或店面)才能正常工作。

2. WooCommerce 结帐页面无限加载

导致 WooCommerce 结帐停止工作的另一个常见问题是无休止的加载。 在大多数情况下,AJAX 会导致问题。 Review Order 页面通过 AJAX 加载付款方式或总计,这将显示一个加载微调器。

但是,如果出现问题,该部分可能无法加载,或者微调器可能会保留而未加载页面。 如果是这种情况,请先查看WooCommerce > 系统状态并检查错误。

以下是一些最常见问题的解决方案:

由 WordPress 设置引起的 AJAX 错误

导致 WooCommerce 结帐停止工作的一个常见问题是 WordPress 地址 (URL) 和站点地址 (URL) 不匹配。 AJAX 请求仅适用于同一个域,因此这两个 URL 必须匹配。

要检查这是否会导致您的问题,请在您的 WordPress 仪表板中转到“设置”>“常规” ,并确保 WordPress 地址 (URL) 和站点地址 (URL) 字段匹配。 WooCommerce 结帐不起作用 - WordPress 地址和站点地址

与主题和插件冲突

如前所述,插件和主题冲突是导致 WooCommerce 结帐停止工作的最常见问题之一。 要检查是否是这种情况,请转到有问题的页面,右键单击并转到Inspect > Console 。 如果您看到 JavaScript 错误,则问题可能是由主题或插件引起的。

WooCommerce 结帐不起作用 - 控制台 JS 错误 如果是这种情况,请按照第 1 点中描述的步骤停用所有插件和主题。

由交易电子邮件引起的问题

有时与结帐相关的交易电子邮件可能会导致结帐在 WooCommerce 中停止工作。 如果您怀疑这可能是问题所在,您可以启用过滤器以在订单完成后发送电子邮件。 这将加快速度并可能解决问题。

add_filter( 'woocommerce_defer_transactional_emails', '__return_true' );

WordPress 内存限制

WP 内存限制也会产生问题并阻止 WooCommerce 结帐正常工作。 发生这种情况时,您会在您的网站上看到其中一条消息。

 致命错误:在第 xxx 行的 /home4/xxx/public_html/wp-includes/plugin.php 中允许的内存大小为 33554432 字节已用尽(尝试分配 2356915 字节)

或者

413 错误:请求实体太大

有两种方法可以解决此问题。 你可以:

  • 自己增加内存
  • 联系您的托管公司

如果您有一些编码技能并想自己修复它,您可以尝试以下三种方法中的任何一种:

  • 编辑 wp-config.php 文件
  • PHP.ini 文件
  • .htaccess 文件

让我们看看如何定位和编辑它们。 专业提示:以下方法涉及编辑核心 WordPress 文件。 这意味着如果出现问题,您可以破坏您的网站,因此在编辑之前,我们建议您创建网站的完整备份。 如果您不知道如何操作,请按照本教程进行操作。

A) 编辑 wp-config.php 文件

要访问和编辑wp-config.php文件,您有两种选择:

  • 面板
  • FTP客户端

如果您尝试使用cPanel选项,您会在File Manager > public_html下找到wp-config.php文件。 另一方面,如果您使用 FTP 客户端,则wp-config.php文件位于public_html文件夹中。 无论您使用哪种方法,您都必须下载文件,对其进行编辑,然后再次上传。

要增加 WP 内存限制,请在“就是这样”行之前添加以下代码,停止编辑! 快乐的博客

 定义('WP_MEMORY_LIMIT','256M');

该脚本基本上告诉 WordPress 将 PHP 内存限制增加到 256MB。 如果这不起作用,您可以将限制增加到 512MB,但在大多数情况下,256MB 就足够了。

注意:值得注意的是,WordPress 内存可能与服务器内存不同,因此我们建议您设置此限制,而不管您的服务器内存设置如何。

或者,如果您对编辑核心文件感到不舒服,您可以联系您的托管公司。

B) 编辑 PHP.ini 文件

在 WordPress 中增加内存限制的另一种方法是编辑PHP.ini文件。 为此,请转到public_html文件夹或安装 WordPress 的任何位置,然后查找名为php.ini的文件。 在那里,粘贴以下代码行以将限制增加到 256 MB。

 memory_limit = 256M
C) 编辑 .htaccess 文件

增加 WP 内存限制并解决可能导致 WooCommerce 停止工作的问题的第三个选项是编辑.htaccess文件。 此文件位于文件夹中,但如果您在主域上安装了 WordPress,您将在public_html文件夹下找到htaccess文件。 这是一个隐藏文件,因此请确保启用隐藏文件。

找到 .htaccess 文件后,粘贴此代码以增加内存限制:

 php_value memory_limit 256M

index.html 文件导致的 AJAX 调用错误

另一个可能导致 WooCommerce 结帐页面停止正常工作的常见问题是由index.html文件引起的 AJAX 调用的无效响应

要解决此问题,请转到开发人员控制台上的 XHR 选项卡 (XMLHttpRequest) 并检查响应。 如果响应是 HTML 而不是 JSON,则问题可能是由根目录中的index.html文件引起的。

解决此问题的最简单方法是删除index.html文件。 但是,如果您不想删除任何文件,您可以调整服务器设置上的索引指令,并将index.php优先于index.html

值得注意的是,一些缓存插件还可以将 HTML 添加到 JSON 响应中,因此如果您使用其中一种工具,这也可能是导致问题的原因。

3. 确认邮件不包含下载链接

另一个可能给您带来很多麻烦的常见 WooCommerce 问题是,当您在客户购买可下载产品后发送的确认电子邮件不包含下载链接时。 正如您可以想象的那样,这可能会引起很多投诉,因为用户无法下载他们刚刚购买的内容。

出现此问题是因为您的数据库中缺少 SQL 表wp_woocommerce_downloadable_product_permissions 。 发生这种情况是因为当您在您的网站上激活 WooCommerce 时,一些 SQL 表会添加到您的数据库中。 但是,如果存储在wp-config.php文件中的 WordPress SQL 表前缀太长,此过程有时可能会失败。

要解决此问题,您需要重命名 WordPress SQL 表前缀。 名称可以包含超过 64 个字符,因此我们建议您选择包含不超过 20-25 个字符的前缀。

要更改 WordPress SQL 表前缀,您有两种选择:

  1. 使用像 Change Table Prefix 或 Brozzme DB Prefix 这样的插件。 这些工具已经有一段时间没有更新了,但它们仍然可以完成工作。
  2. 手动重命名表。 为此,您需要使用 phpMyAdmin,减少表的前缀,并更新wp-config.php中的前缀值。 然后,停用 WooCommerce 并重新激活它以强制创建缺少的 SQL 表。

注意:无论您选择哪种方法,我们都建议您在开始之前创建站点的备份。

4. WooCommerce 中未显示的页面

如果您遇到页面不显示内容的问题。 这可能有几个原因,但在大多数情况下,以下内容将帮助您解决它:

  • 创建一个新页面,添加正确的短代码,然后发布它。
  • 然后,转到WooCommerce > Settings > General以选择您刚刚创建的页面,然后按Save

5.致命错误:调用未定义函数is_woocommerce_active()

如果您遇到此问题并且结帐页面在您的 WooCommerce 商店中不起作用,可能有两个原因:

  • 过时的插件
  • 第三方主题

要解决此问题,首先,请确保您的所有插件都是最新的。 如果这不能解决错误,请停用您的主题,切换到 26,然后再次激活插件。 然后,您将能够返回到您喜欢的主题。

6. 继续结帐和使用 PayPal 付款按钮不起作用

如果您在使用 PayPal 结账和付款按钮时遇到问题,并且该问题不是由插件或主题冲突引起的,您可以使用一些 CSS 解决它。 有时,某些 < div>容器具有可能导致问题的浮动集

要解决此问题,您可以在完成后清除浮动,或在包含 < div>上设置overflow:hidden 。 这样,您可以剪辑溢出并隐藏其余内容。

要从<div>容器中清除浮动,请在您的WordPress 仪表板中转到外观 > 自定义 > 附加 CSS并粘贴以下代码:

 .e1120-2.x-container, .e1120-10.x-container { clear: both; }

或者,您可以将代码粘贴到子主题的style.css文件中。 如果您没有子主题,您可以创建一个或使用这些插件之一。

7. ssl_error_rx_record_too_long

如果您的 WooCommerce 结帐页面不起作用并且您看到以下错误:

 SSL 收到超过最大允许长度的记录。
(错误代码:ssl_error_rx_record_too_long)

SSL/apache 配置错误。 如果这是您的情况,您需要联系您的托管服务提供商,因为这不是 WooCommerce 问题。 或者,如果您不需要使用 SSL,您可以从WooCommerce > Settings关闭Force SSL设置。

此外,您可以从“结帐”选项卡中禁用“强制安全结帐”选项。 WooCommerce 结帐不起作用 - 禁用强制 SSL

8. 下单按钮不起作用

如果结帐页面上的“下订单”按钮不起作用,则可能是主题或插件冲突。 只需按照上述步骤操作,您就可以立即启动并运行您的商店。

9. session_start 错误

如果您在网站标题中看到这样的警告,则说明您的服务器存在问题。

警告:session_start() [function.session-start]: open(xxx) failed: Permission denied (13) in xxx/wp-content/plugins/woocommerce/woocommerce.php on line XX

这是由以下两件事之一引起的:

  • PHP 会话未正确设置
  • 会话目录 (/ tmp ) 不可写

要解决此问题,您需要联系您的托管服务提供商。

结帐停止工作时该怎么办?

结帐页面出现问题是任何在线商店最糟糕的噩梦。 但是,如果您正在处理结帐问题,请不要惊慌。 不同的问题可能有不同的根源,因此很难知道是什么导致了问题。

在大多数情况下,应该归咎于插件或主题冲突,因此请先尝试按照第 1 点中的说明停用所有插件和主题。如果这不能解决问题,请尝试我们在本指南中介绍的不同解决方案,具体取决于您收到的错误消息的类型。 如果您没有找到解决方案,可以查看 WooCommerce 的故障排除指南。

结论

总而言之,有几个原因可能导致结帐在 WooCommerce 中停止工作。 在本指南中,我们向您展示了解决大多数用户面临的最常见问题的几种解决方案。

其中一些问题比其他问题更容易解决,但在大多数情况下,您无需联系托管服务提供商即可解决这些问题。

您能否解决结帐页面的问题并让您的商店恢复正常运行? 您是否面临本指南未涵盖的问题? 在下面的评论部分让我们知道! 我们很乐意为您提供帮助!