inject js after redirect

时间:2017-03-01 作者:lcdservices

我创建了一个简单的插件,在用户登录后执行一些额外的检查,以确定是否允许他们访问该站点。它使用wp\\u登录挂钩来完成此操作。

该功能运行良好:我们运行检查,如果不允许他们访问该站点,我们将调用wp\\u logout()。

但如果他们被拒绝访问,我会将他们重定向(wp\\u redirect)回注册/登录页面,并希望在屏幕上插入一条消息,告知他们为什么不允许访问。但我很难想出一个方法来做到这一点。

我尝试在重定向后将脚本排队(wp\\u enqueue\\u script)。我还尝试通过wp\\u页脚挂钩注入内联脚本。但一切都没有结果。我认为问题是我没有能力影响被重定向到的页面(即使在wp\\u重定向之后脚本不会退出,除非我明确这样做)。

处理此post重定向js注入的最佳方法是什么?(我想用js/jquery来处理这个问题,这样我就可以将目标元素定位到要插入消息的位置。)

2 个回复
SO网友:lcdservices

我想出了一个解决方案,最终按照所提供的建议进行了(尽管感觉需要做的工作比在页面上注入一些js还多)。

我在重定向url中附加了一个变量:wp\\u safe\\u redirect(esc\\u url(add\\u query\\u arg(\'failed\\u authentication\',\'1\',\'/register\'))

  • 我使用:add\\u query\\u vars\\u filter($vars)注册了参数变量
  • 我使用wp\\u footer hook注册了一个函数。在该函数中,我检索了变量get\\u query\\u var(\'failed\\u authentication\'),并打印了js/jQuery以注入消息(以该变量为条件)
  • SO网友:Elex

    您能否提供有关如何进行重定向的更多详细信息?

    你可以试试wp_redirect(add_query_arg(\'allowed\', 0, wp_logout_url($url)));

    如果您有一个$\\u GET参数,那么可以添加一个HTML元素,然后如您所说使用JS跟踪它,或者添加HTML内容。