Woocommerce 模板覆盖不起作用

Woocommerce template overriding not working

我想从我的主题中覆盖 woocommerce 模板。我遵循 woocommerce 官方文档中的所有步骤。而且我确定我的主题中没有 woocommerce.php 文件。 所以,我不明白为什么它不起作用。 我用的是二十七主题。

我们将不胜感激。

如果您已经阅读过本文档 https://docs.woothemes.com/document/template-structure/

Please Note: When creating woocommerce.php in your theme’s folder, you will be unable to override the woocommerce/archive-product.php custom template in your theme, as woocommerce.php has priority over all other template files. This is intended to prevent display issues.

还要确保您没有激活“模板调试模式”,您可以在以下位置找到:

WP 仪表板 -> WooCommerce -> 系统状态 -> 工具

经过大量研究,我终于从这里找到了答案

实际上,我使用了模板文件夹中的所有文件,这就是它不起作用的原因。

如此简单的步骤。但我不明白我怎么会错过它!

感谢 Mo'men Mohamed 的建议。

尝试在您的主题 function.php

中声明 Woocommerce 支持

是的,我同意 Mobashir 的观点。 可以通过三个步骤检查为什么覆盖不起作用:

  1. 签入 functions.php 以添加支持的 woocommerce ( URL : https://docs.woocommerce.com/document/woocommerce-theme-developer-handbook/ )
  2. 在 your-theme/woocommerce 等主题中检查目录和文件的拼写是否正确。 ( URL : https://docs.woocommerce.com/document/template-structure/ )
  3. Woocommerce 允许更改 woocommerce 模板的位置。挂钩是:woocommerce_template_path。如果您使用的是高级主题,请检查主题的 functions.php 文件中的过滤器挂钩。如果该挂钩退出,则使用该挂钩的回调函数中提到的位置。

我遇到了同样的问题。我将 JupiterX 主题与 Elementor 一起使用,并试图覆盖 JupiterX Child 主题中的结帐模板,但它没有加载。我仔细检查了路径,就像 themes/jupiterx-child/woocommerce/checkout/form-checkout.php.

解法:

我已经解决了这个问题。实际上,JupiterX 主题有自己的 WooCommerce 覆盖结构,即 themes/jupiterx/lib/templates/woocommerce/checkout/form-checkout.php 和子主题相同,即 themes/jupiterx-child/lib/templates/woocommerce/checkout/form-checkout.php.

更多详情: themes.artbees.net/docs/overriding-woocommerce-templates

我遇到了与 WooCommerce 模板缓存相关的问题。

可以通过导航到清除缓存:

WooCommerce > 状态 > 工具 > 清除模板缓存