2017-03-21 1 views
0

woocommerce 플러그인 및 braintree 확장 woocommerce를 사용하여 지불합니다. 나는 체크 아웃에 woocommerce braintree의 카드와 페이팔 지불을 가능하게했다. 나는 사용자가 실제로 체크 아웃하고 돈을 지불하기 전에 사용자가 선택한 지불 게이트웨이를 아는 방법을 파악하려고 노력하고 있습니다. 후크woocommerce 또는 braintree 신용 카드 라디오 버튼 또는 페이팔 지불 라디오 버튼을 찾으려면 결제가 선택되어 있는지 확인하십시오.Checkout에서 Woocommerce 지불 방법 감지 Page

그러나 성공적으로 지불 한 후에 특정 주문에 사용 된 게이트웨이를 감지 할 수 있지만 결제 과정에서 결제가 완료되기 전에 선택한 게이트웨이 정보를 원합니다. 어떤 도움?

답변

0

당신은 체크 아웃 페이지에 몇 가지 기본적인 자바 스크립트와 선택 결제 방법을 감지하고 woocommerce_checkout_update_order_review 행동으로 접선에 의해 PHP로 사용자 정의 코드를 실행할 수 있습니다.

먼저 체크 아웃 페이지, 체크 아웃 템플릿 또는 테마의 머리말/꼬리말에 JS 코드를 추가해야합니다. 그러면 사용자가 결제 수단 옵션을 변경 한 시점을 감지하고 그 후에 나만의 코드를 실행할 수 있습니다.

JS 코드 : 각 지불 방법에 대해 당신이 이벤트를 추가 '클릭'해야 활성 가지고

jQuery(document).ready(function() { 

    jQuery("#payment_method_bacs").on("click", function() { 
     jQuery('body').trigger('update_checkout'); 
    }); 

    jQuery("#payment_method_paypal").on("click", function() { 
     jQuery(document.body).trigger("update_checkout"); 
    }); 

    jQuery("#payment_method_stripe").on("click", function() { 
     jQuery(document.body).trigger("update_checkout"); 
    }); 

}); 

알 수 있습니다. 사용자 정의 코드가 트리거 될 때 미세 조정 옵션을 제공합니다. 으로 클릭 이벤트가 발생하지 않도록하려면 한 번만 실행하고 첫 번째 JS 코드의 다음 블록을 추가해야합니다.

아약스 후 트리거되는 동일한 코드입니다. 두 JS 코드 블록 모두 을 사용하는 결제 옵션을 추가하십시오.

if (! function_exists('name_of_your_function')) : 
    function name_of_your_function($posted_data) { 

     // Your code goes here 

    } 

endif; 

add_action('woocommerce_checkout_update_order_review', 'name_of_your_function'); 

이 코드는 functions.php에 배치 할 수 있습니다 : 그 후

는이 같은 체크 아웃에 후크 사용자 정의 PHP 코드를 넣습니다.

function name_of_your_function($posted_data) { 

    global $woocommerce; 

    // Parsing posted data on checkout 
    $post = array(); 
    $vars = explode('&', $posted_data); 
    foreach ($vars as $k => $value){ 
     $v = explode('=', urldecode($value)); 
     $post[$v[0]] = $v[1]; 
    } 

    // Here we collect payment method 
    $payment_method = $post['payment_method']; 

    // Run code custom code for each specific payment option selected 
    if ($payment_method == "paypal") { 
     // Your code goes here 
    } 

    elseif ($payment_method == "bacs") { 
     // Your code goes here 
    } 

    elseif ($payment_method == "stripe") { 
     // Your code goes here 
    } 
} 

add_action('woocommerce_checkout_update_order_review', 'name_of_your_function'); 

난이 도움이되기를 바랍니다 :

여기에 감지하고 특정 지불 옵션이 체크 아웃 페이지에서 선택한 경우 실행이 완료 PHP 코드입니다! 이것은 결제 페이지에서 모든 맞춤 로직을 실행하는 매우 강력한 옵션입니다!

관련 문제