如果满足条件,我希望从Woocommerce结帐页面中删除一个脚本。
脚本是从插件中注入的。插件作者选择将其添加为echo语句:
private function includeJavascript() {
$trackjsUrl = str_replace('server.php', 'trackjs.php', $this->session->getUrl());
echo '<script id="pap_x2s6df8d" src="'.$trackjsUrl.'" type="text/javascript"></script>';
}因为脚本(#pap_x2s6df8d)是在Echo语句中添加的,所以删除它的常用函数不起作用(例如,#pap_x2s6df8d)
我想避免编辑插件。还有别的办法可以绕开吗?
如果脚本是按照Wordpress最佳实践查询的,我就会这样处理它:
if( isset( $_COOKIE['cookieexists'] ) ) {
echo " // Cookie was found";
echo " // deactive script";
wp_deregister_script('pap_x2s6df8d');
wp_dequeue_script( 'pap_x2s6df8d');
}不幸的是,由于脚本没有注册/查询,上述操作都失败了。
在这种情况下,我可以尝试其他的方法吗?
发布于 2021-04-25 15:49:03
解决这一问题的一种方法是使用.htaccess文件并将trackjs.php重定向到另一个不返回任何内容的地方。
比方说,要有条件地执行的脚本是:http://localhost/wordpress/trackjs.php。在.htaccess中,在下面的行中,在Wordpress的内容之前写一些东西:
RewriteEngine On
RewriteRule ^trackjs.php$ /wp-content/themes/my-theme/custom-theme-file.php [L](实际实现取决于您的用例。您可以尝试不同的规则,这里。)custom-theme-file.php输出一个空字符串:
<?php echo ''; wp_die(); ?>条件部分:如果您希望在javascript中完成此操作,您可以再次添加脚本,但现在可以将查询字符串附加到url。在custom-theme-file.php中,您可以使用$_GET读取查询字符串参数,并输出原始插件文件的内容。
这有意义吗?
https://stackoverflow.com/questions/67221360
复制相似问题