woocommerce woocommerce_ payment_complete 钩子不起作用?

you*_*ore 2 woocommerce

add_action( 'woocommerce_payment_complete', 'payment_complete_func' );

function payment_complete_func(){

    file_get_contents("http://localhost/wordpress/test.php?id=paymentagain2");
}
Run Code Online (Sandbox Code Playgroud)

我使用 paypal 沙箱模式进行付款检查,并且此函数 payment_complete_func() 从未被触发。请帮我。

Rad*_*d80 5

这个问题很老了,但谷歌仍然出现,所以我会在这里留下答案。

仅当您的网站收到 PayPal 的付款确认(称为 IPN - 即时付款通知)时,PayPal 付款才被视为完成。为此,PayPal 必须联系您,这意味着您的开发网站必须能够通过提供给 PayPal 的 URL 从外部访问。

在你的情况下,你的 url 是 localhost,它永远不会联系到你。要解决此问题,您需要为开发环境注册域名或使用公共 IP 地址。如果您正在进行离线开发安装,则必须使其在线可用,以便 PayPal 可以访问它。