2

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

任何帮助将不胜感激。

4

6 回答 6

7

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

请注意:在主题文件夹中创建 woocommerce.php 时,您将无法覆盖主题中的 woocommerce/archive-product.php 自定义模板,因为 woocommerce.php 优先于所有其他模板文件。这是为了防止显示问题。

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

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

于 2017-08-24T00:27:57.050 回答
6

经过大量研究,我终于从这里找到了答案WordPress - Failing to override woocommerce templates

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

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

感谢Mo'men Mohamed 的建议。

于 2017-08-27T19:34:54.090 回答
6

尝试在您的主题中声明 Woocommerce 支持function.php

于 2018-07-07T14:47:53.437 回答
3

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

可以通过导航到以下位置来清除缓存:

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

于 2021-05-26T13:51:52.070 回答
1

是的,我同意莫巴希尔的观点。有三个步骤可以检查为什么覆盖不起作用:

  1. 检查 functions.php 是否添加了支持的 woocommerce ( URL : https://docs.woocommerce.com/document/woocommerce-theme-developer-handbook/ )
  2. 检查目录和文件的拼写在您的主题/woocommerce 等主题中是否正确。(网址:https ://docs.woocommerce.com/document/template-structure/ )
  3. Woocommerce 允许更改 woocommerce 模板的位置。钩子是:woocommerce_template_path。如果您使用的是高级主题,请检查主题的 functions.php 文件中的过滤器钩子。如果该钩子退出,则使用该钩子的回调函数中提到的那个位置。
于 2020-06-11T11:50:21.130 回答
0

我面临同样的问题。我正在将 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

于 2020-10-20T10:44:03.590 回答