【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+となっているので、実際にどれだけ使用されているか分かりませんが、お役に立てるとうれしいです。