あなたがチェックアウトページ上のいくつかの基本的なJavaScriptで選択した支払方法を検出し、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コードの次のブロックを追加してください。
これは、ajaxの後にトリガーされるのと同じコードです。 両方のJSブロックのコードでは、のお支払い方法を実際に使用してを追加します。その後
あなたは、このように、チェックアウトにフックカスタムPHPコードを置く:
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');
私はこれが役に立てば幸い! これは、チェックアウトページですべてのカスタムロジックを実行するための非常に強力なオプションです!