我目前正在尝试覆盖插件中的过滤器。此筛选器有1个变量,用于定义某些模板所在文件夹的根路径。
此根路径通常位于插件的assets文件夹中(Awesome Support)。因为我想覆盖模板,所以需要将templates文件夹的根路径更改为我自己的文件夹,以便使用我自己的模板,而不是原始模板。
经过大量搜索,我在文档中找到了正确的过滤器:Filter
过滤器应用于该文件的第722行:File
所以我在我的主题中添加了这个过滤器function.php
文件:
add_filter( \'wpas_email_template_root_path\', \'set_wpas_email_template_root_path\', 30, 1 );
function set_wpas_email_template_root_path( $template_root_path ) {
error_log( \'email-functions.php\' );
return get_home_path() . \'wp-content/themes/\' . get_option( \'stylesheet\' ) . \'/awesome-support/emails/\';
}
为了测试它,我在函数中以及需要重写根路径的位置添加了一些错误日志:
error_log( \'Before\' );
// Allow other add-ons to set this path
apply_filters( \'wpas_email_template_root_path\', $template_root_path );
error_log( \'functions-tools.php\' . $template_root_path );
这是调试结果:
[08-Jan-2019 08:56:19 UTC] Before
[08-Jan-2019 08:56:19 UTC] email-functions.php
[08-Jan-2019 08:56:19 UTC] functions-tools.php/var/www/vhosts/localhost/httpdocs/wp-content/plugins/awesome-support/assets/admin/email-templates/blue-block/
正如您所看到的,仍然存在插件模板路径集。我不知道我做错了什么。。