2016-09-16 3 views
-1

PayPal 샌드 박스와 완벽하게 작동하기 때문에 결제 완료 후크로 완전히 정신 나간다는 문제가 있습니다.PayPal WooCommerce - 사용 된 이메일을 캡처하는 payment_complete 후크

모든 신규 고객은 첫 구매시 사용한 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는 게시물 메타에 이메일 주소를 작성하지 않았습니다.

누군가가이 훅으로 작동하도록 페이팔 이메일 주소를받는 다른 방법을 생각할 수 있다면 크게 감사하겠습니다. 샌드 박스에서 작동하고 라이브가 아니라는 것은 매우 이상합니다. 지연을 유발할 수있는 것이 무엇인지 확신 할 수 없습니다. 미리 감사드립니다.

답변

0

post_meta에 지연 게시가 발생하는 원인을 파악할 수 없지만 PayPal에서 모든 주문 및 지불 세부 사항을 다시 캡처하는 IPN 후크를 찾았습니다. WooCommerce에서 PayPal에 대한 결제 완료 후크를위한 또 다른 방법. 바라건대 다른 사람들이 같은 문제를 겪는 데 도움이되기를 바랍니다.

add_action('valid-paypal-standard-ipn-request', 'preapproved_api_order', 10, 1); 
function preapproved_api_order($details){ 
    global $woocommerce, $wpdb; 

    $order_id = $details['item_number1']; 
    $order = new WC_Order($order_id); 
} 
관련 문제