Php 在Paypal IPN通话中获取Wordpress选项

Php 在Paypal IPN通话中获取Wordpress选项,php,wordpress,paypal,paypal-ipn,Php,Wordpress,Paypal,Paypal Ipn,我已经成功地在一个文件中实现了Paypal IPN侦听器,该文件与构成Wordpress主题的其他文件位于同一目录中。但是,我希望用户通过自定义仪表板设置一些变量,例如来自Wordpress的get\u option()函数的$receiver\u email。我尝试加载wp load.php,它可以识别get_option()函数和我试图传递的值,但只有当我通过浏览器URL栏直接访问文件时,它才能识别。因此,即使我在IPN模拟器面板上设置了正确的输入,我也无法通过IPN获得经过验证的付款。不知

我已经成功地在一个文件中实现了Paypal IPN侦听器,该文件与构成Wordpress主题的其他文件位于同一目录中。但是,我希望用户通过自定义仪表板设置一些变量,例如来自Wordpress的
get\u option()
函数的
$receiver\u email
。我尝试加载
wp load.php
,它可以识别
get_option()
函数和我试图传递的值,但只有当我通过浏览器URL栏直接访问文件时,它才能识别。因此,即使我在IPN模拟器面板上设置了正确的输入,我也无法通过IPN获得经过验证的付款。不知何故,在IPN调用期间没有传递
get\u option()
值。有什么问题吗?

如果您将IPN侦听器设置得稍有不同,并将其直接指向WordPress实例,会更容易。例如,将通知URL设置为domain.com/?paypal\u ipn\u 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.
}

你甚至可以使用比模板重定向更早的钩子来让WordPress不再解析你的请求。也许
请求
过滤器是一个好地方,或者甚至可能
初始化
检查您的站点域是否具有公共访问权限,以及是否存在任何防火墙限制

您能否澄清在
/您的IPN内容进入此处后,paypal(或任何其他IPN)信息如何可用
?例如,如果XML代码被发送到此IPN侦听器,我如何访问该传入代码?这不是一个变量,所以我有点不清楚。PayPal会使用POST方法返回给您,因此请查看
$\u POST
数组中可用的PayPal数据。非常感谢!我最终需要
文件获取内容('php://input“)
给我原始的$u POST数据,因为我没有使用Paypal,正在将XML发回给我。