我已成功在一个文件中实现了Paypal IPN侦听器,该文件与构成Wordpress主题的其他文件位于同一目录中。但是,我希望用户通过自定义的仪表板设置一些变量,例如来自Wordpress“$receiver_email
功能的get_option()
。我尝试加载wp-load.php
并且它识别get_option()
函数以及我试图传递的值,但仅当我通过导航直接访问文件时浏览器URL栏。因此,即使我在IPN模拟器面板上设置了正确的输入,我也无法通过IPN获得验证付款。不知何故,在IPN呼叫期间没有传递get_option()
值。可能有什么不对?
答案 0 :(得分:0)
如果您将IPN侦听器设置为略有不同并将其直接指向WordPress实例,则会更容易。例如,将您的通知URL设置为domain.com/?paypal_ipn_result=1,然后在插件文件或主题的functions.php文件中设置类似的内容:
add_action( 'template_redirect', 'my_template_redirect' );
function my_template_redirect() {
if ( ! isset( $_REQUEST['paypal_ipn_result'] ) )
return;
// Your IPN stuff goes here, you can use get_option and other things.
}
你甚至可以使用比template_redirect更早的钩子来让WordPress永远不会解析你的请求。也许request
过滤器可能是一个好地方,甚至可能是init
。
答案 1 :(得分:0)
检查您的站点域是否具有公共访问权限以及是否存在防火墙限制