首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从插件内的echo语句中停用脚本

从插件内的echo语句中停用脚本
EN

Stack Overflow用户
提问于 2021-04-22 22:01:09
回答 1查看 33关注 0票数 0

如果满足条件,我希望从Woocommerce结帐页面中删除一个脚本。

脚本是从插件中注入的。插件作者选择将其添加为echo语句:

代码语言:javascript
复制
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最佳实践查询的,我就会这样处理它:

代码语言:javascript
复制
if( isset( $_COOKIE['cookieexists']  ) ) {
  echo " // Cookie was found";
  echo " // deactive script";
  wp_deregister_script('pap_x2s6df8d'); 
  wp_dequeue_script( 'pap_x2s6df8d');
}

不幸的是,由于脚本没有注册/查询,上述操作都失败了。

在这种情况下,我可以尝试其他的方法吗?

EN

回答 1

Stack Overflow用户

发布于 2021-04-25 15:49:03

解决这一问题的一种方法是使用.htaccess文件并将trackjs.php重定向到另一个不返回任何内容的地方。

比方说,要有条件地执行的脚本是:http://localhost/wordpress/trackjs.php。在.htaccess中,在下面的行中,在Wordpress的内容之前写一些东西:

代码语言:javascript
复制
RewriteEngine On
RewriteRule ^trackjs.php$ /wp-content/themes/my-theme/custom-theme-file.php [L]

(实际实现取决于您的用例。您可以尝试不同的规则,这里。)custom-theme-file.php输出一个空字符串:

代码语言:javascript
复制
<?php echo ''; wp_die(); ?>

条件部分:如果您希望在javascript中完成此操作,您可以再次添加脚本,但现在可以将查询字符串附加到url。在custom-theme-file.php中,您可以使用$_GET读取查询字符串参数,并输出原始插件文件的内容。

这有意义吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67221360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档