扩展woocommerce插件

时间:2016-05-09 16:27:00

标签: php wordpress templates woocommerce wordpress-theming

我有wordpress儿童主题,并且在其中我可以通过创建以下结构的文件夹来扩展woocommerce:

/wp-content/themes/theme-child/woocommerce/single-product/add-to-cart/*.php

但问题是我不想扩展位于

的内容
/wp-content/plugins/woocommerce-plugin/templates/single-product/add-to-cart/*.php

通过第一种方法,我可以覆盖woocommerce个文件,但如何为woocommerce-plugin执行此操作?

2 个答案:

答案 0 :(得分:1)

要在不更改woocommerce插件文件夹中的任何内容的情况下覆盖woocommerce模板,您需要将整个templates文件夹(位于woocommerce插件中)复制到您的活动子主题文件夹并重命名{{ 1}} see here。像这样,活动的woocommerce模板现在位于您的子主题文件夹中,您可以自定义它们......

答案 1 :(得分:0)

您可以通过调用wc_get_template挂钩来实现,只需告诉文件应该覆盖的位置:

add_filter('wc_get_template', 'plugin_wc_templates', 10, 5);
function plugin_wc_templates ($located, $template_name, $args, $template_path, $default_path) {
    $plugin_path = plugin_dir_path( __FILE__ );
    $newtpl = str_replace('woocommerce/templates', $plugin_path. '/templates', $located);
    if ( file_exists($newtpl) )
        return $newtpl;
    return $located;
}

请记住打印$plugin_path变量以确保路径生成正常。