0

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

4

2 回答 2

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

于 2012-10-15T18:51:21.677 回答
0

检查您的站点域是否具有公共访问权限以及是否有任何防火墙限制

于 2012-10-16T15:47:55.720 回答