我正在将WorldPay托管的支付页面网关集成到我的WordPress安装中,并将WorldPay中的通知URL设置为WordPress内的路由。
我遇到的问题是,如果您向WordPress传递名为“name”的参数或此处定义的任何其他保留术语,WordPress会自动响应404错误:WordPress reserved Terms 就像WorldPay一样。
我想知道是否有可能更改此默认404响应,我已尝试使用unset($_POST[\'name\'])
在我的插件代码中,但我认为这在请求生命周期内为时已晚,因为它没有改变响应。我也不希望将我的回调url设置为另一个脚本,这样会改变$\\u POST数组并将其传递给我的插件,如果有人能建议一种方法,我可以不这样做而获得200个响应?
edit: My question in a much easier to read format
远程服务X正在向示例中的我的WordPress站点发送回调。com/?name=nameofcount当WordPress使用name作为保留术语并且远程服务不会更改时,您如何处理?
SO网友:s_ha_dum
听起来好像是WorldPay负责发送过于通用的name
参数,所以您无法控制它。相反,您必须捕获请求并强制其工作。类似于:
function redir_404_wpse_137703() {
if (is_404() && isset($_GET[\'name\'])) {
locate_template(\'some-theme-template.php\',true);
exit;
}
}
add_action(\'template_redirect\',\'redir_404_wpse_137703\');
some-theme-template.php
需要使用
get_header()
, 内容,以及
get_footer()
与普通自定义模板类似。
我所看到的最大问题是从WorldPay中挑选出真正的404,但必须有其他参数来帮助挑选出来。