見出し画像

【WordPress】PayPal & Stripe Proプラグインで決済画面に遷移しない


お問い合わせフォームからPayPal決済に

WordPressでお問い合わせフォームを作成し、支払い方法に「PayPal」を選択した場合に、PayPal決済画面に遷移するようにしています。

固定ページにお問い合わせフォームを作成しておけば、必要に応じて「公開・非公開」を切り替えられます。
シーズンによって決まったメニューがある場合などに便利ですね。

使用しているのは、以下のプラグインです。

  • Contact Form 7

  • Contact Form 7 - PayPal & Stripe Pro(有料ライセンス)

お問い合わせフォームのメニューを選択し、送信ボタンを押すとPayPal決済画面に飛ぶようにしています。

[select* menu-123
"コースA分割払い:¥10,000 x3回払い|10000.00|3|month|3"
"コースB分割払い:¥20,000 x2回払い|20000.00|2|month|2"
"コースC一括払い:¥50,000 x1回払い|50000.00|1|month|1"
"コースD分割払い:¥25,000 x2回払い|25000.00|2|month|2"
"無料体験コース:無料|0.00|1|month|1"
]

しかし、新たに作成したフォームの送信ボタンを押しても、決済画面に飛ばなくなりました。
従来のフォームは正常動作したままなので、さて原因は…。

金額が無料だとダメ?

調べたところ、金額が「0.00」になっているものがあると、プラグインが正しく動作しないことがあるようです。

そこで、無料体験コースを削除すると、正常動作するようになりました。

無料コースを残すためには?

でも実際には「無料体験コース」が必要になるケースもあります。

その場合には、メニューに残しておいてJavaScriptで処理を分岐させます。

document.addEventListener( 'wpcf7mailsent', function( event ) {
// フォームIDが "your-form-id" の場合
if ( event.detail.contactFormId == 'your-form-id' ) {
var paymentOption = document.querySelector('select[name="menu-123"]').value;
if (paymentOption.includes('0.00')) {
// 無料コースが選択された場合の処理
alert("無料コースが選択されました。お申し込みを完了しました。");
} else {
// PayPal決済ページへの遷移
// PayPalボタンがsubmitイベントで処理されるようにしてください
}
}
}, false );

ひとまず今回はこれで解消できました。

このプラグインも有効インストール数:10,000+となっているので、実際にどれだけ使用されているか分かりませんが、お役に立てるとうれしいです。

いいなと思ったら応援しよう!