php - 从插件中的 echo 语句停用脚本
问题描述
如果满足条件,我想从 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 语句中,所以删除它的常用函数不起作用(例如wp_deregister_script)
我想避免编辑插件。还有其他方法吗?
如果根据 Wordpress 最佳实践对脚本进行排队,这就是我将如何处理它:
if( isset( $_COOKIE['cookieexists'] ) ) {
echo " // Cookie was found";
echo " // deactive script";
wp_deregister_script('pap_x2s6df8d');
wp_dequeue_script( 'pap_x2s6df8d');
}
不幸的是,由于脚本未注册/入队,上述操作失败。
对于这种情况,我可以尝试其他方法吗?
解决方案
解决这个问题的一种方法是使用你的.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
原始插件文件的内容读取查询字符串参数并输出。
那有意义吗?
推荐阅读
- python - 使用python从Windows应用程序中提取数据
- ios - 无效的捆绑包。捆绑包 xxx 不支持最低操作系统版本 (2020)
- java - GCJ 在编译时抛出错误:“未定义的 main 引用”
- xml - 从 git 中的暂存中删除某些 XML 行
- java - javafx按钮颜色不变
- php - 方支付PHP SDK返回null
- python - 如何在 Oneweek 中比较 django 模板中的 DateTime
- python - 实现嵌套或多维 python 列表扩展切片
- python - 列值列表中的数据透视表
- sql-server - 从一个 Excel 行向 SQL Server 中的两列插入两个值