我正在开发基于woocommerce的插件,作为其中的一部分,我必须覆盖woocommerce的默认模板文件位置。我的意思是我希望从我的插件中加载自定义woocommerce模板。

为此,我阅读了基于article的woocommerce中的woocommerce_locate_template,但是我注意到该link弃用了相同的功能。现在我想知道什么可以替代此功能。

我的整个意图是将默认的woocommerce模板加载位置更改为我的插件文件夹。解决这个问题有帮助吗?
提前致谢。

最佳答案

不推荐使用woocommerce_locate_template函数,而推荐使用wc_locate_template:您可以阅读代码here

但是,如果您正在寻找过滤器,它仍然是 woocommerce_locate_template 并采用三个参数:

  • $ template ,它是wp核心函数locate_template
  • 的结果
  • $ template_name 只是文件名
  • $ template_path ,它是模板
  • 的woocommerce路径

    因此,您可以检查$ template_name是否是您要截取的内容,并更改路径(如果为true),就像这样
    function intercept_wc_template($template, $template_name, $template_path) {
        if ($template_name == 'that_template.php') {
            $template = 'the/path/of/your/plugin/template.php';
        }
        return $template;
    }
    
    add_filter('woocommerce_locate_template', 'intercept_wc_template', 20, 3);
    

    我尚未对其进行测试,所以很抱歉出现任何语法错误:)

    希望能帮助到你!

    -更新1:我忘记了分号:P-
    -更新2:我弄错了! --

    关于php - Woocommerce-woocommerce_locate_template的替代方案,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32446556/

    10-13 08:49