【发布时间】:2017-01-24 03:23:19
【问题描述】:
我遇到了一个问题,让我对支付完成挂钩非常疯狂,因为它与 PayPal 沙盒完美配合,但在我上线时却不行。
我要求所有新客户验证首次购买时使用的 PayPal 电子邮件。我相信我遇到的问题是钩子和函数在 WordPress 将贝宝电子邮件写入帖子元之前触发。
我无法发布整个功能,但以下是相关内容:
add_action('woocommerce_payment_complete', 'preapproved_api_order', 10, 1);
function preapproved_api_order($order_id){
if ( ! empty( $gateway->id ) && 'paypal' == $gateway->id ) {
$order = new WC_Order( $order_id );
$user_id = $order->get_user_id();
$gateway = wc_get_payment_gateway_by_order( $order );
$paypal_email = get_post_meta( $order_id, 'Payer PayPal address', true );
$error = 'paypal email used for payment '.$paypal_email;
send_test_mail($error);
}
我添加了一些快速错误检查,并且发送的电子邮件确实没有包含电子邮件地址,这就是为什么我认为 WP 没有将电子邮件地址写入帖子元。
如果有人能想到另一种方法来获取贝宝电子邮件地址,以便它与这个钩子一起工作,那将不胜感激。很奇怪它在沙箱中工作而不是实时运行,我不确定是什么导致了延迟。提前致谢。
【问题讨论】:
标签: php wordpress paypal woocommerce paypal-ipn