覆盖筛选器变量不工作

时间:2019-01-08 作者:Johnny97

我目前正在尝试覆盖插件中的过滤器。此筛选器有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/
正如您所看到的,仍然存在插件模板路径集。我不知道我做错了什么。。

1 个回复
SO网友:Johnny97

插件作者说这是一个bug。该修复程序将在几天后发布到下一个版本中。因此,您可以在以下链接中看到更改:

https://github.com/Awesome-Support/Awesome-Support/commit/4312c02a3e35bb369e943d807377610670e71f41

相关推荐

如何通过函数.php使applyFilters函数返回FALSE

因此,插件中有以下代码:if( window.wp.hooks.applyFilters( \'filtername\', true, $(this) ) ) { //do something } 在不编辑插件文件但使用函数的情况下,如何使上述语句始终为false。改为php?我不确定我是否正确理解applyfilters,但我尝试过:function filtername() { return false; } add_filter( \'fil