WordPressでSWELLテーマを使っている環境にて、会員制プラグイン「Simple Membership」とStripe決済を組み合わせた際、「購入する」ボタンが動作せず、決済エラーになる現象が発生しました。
原因と対応方法をまとめます。
⸻
💥 発生したエラー内容
Simple Membershipプラグインの「購入する」ボタンを押した直後に、StripeのSCA(3Dセキュア)処理は開始されたものの、以下のようなエラーログが残って決済が正常に完了しませんでした。
[2025/05/29 17:12:05] - SUCCESS: Stripe SCA Buy Now IPN received. Processing request...
[2025/05/29 17:12:06] - FAILURE: Fatal error! Payment with ref_id swpm_390d4e20f3f4d979374dc51c5b3c58da|2508 can't be found
🧠 原因
SWELLの管理画面にある以下の設定が有効になっていたことが原因です。
SWELL設定 → 高度な設定 → 「jQueryをwp_footerで登録する」 にチェックが入っていた
このオプションが有効だと、jQueryがページの最下部で読み込まれるため、ボタン押下時点ではjQueryが未定義状態になり、JavaScriptによるStripe連携処理が動作しません。
その結果、Stripeに送られたパラメータ(特にref_id)が壊れてしまい、戻ってきたデータと照合できず「決済情報が見つからない」というエラーに繋がります。
⸻
🛠 対応方法
SWELLテーマの設定から、以下のチェックを外すことで解決しました。
• SWELL設定 → 高度な設定 → jQueryをwp_footerで登録する → ✅ チェックを外す
(設定画面のURL例:/wp-admin/admin.php?page=swell_settings&tab=jquery)
加えて、キャッシュ系プラグインを使用している場合はキャッシュの削除も行ってください。
⸻
✅ 改善結果
設定変更後、Simple Membership の「購入する」ボタンは正常に動作し、Stripe決済も完了するようになりました。
⸻
📝 備考・今後の対策
• SWELLではページ高速化のためにjQueryの読み込みタイミングを遅延させる設定がありますが、JavaScriptに依存するプラグインとの併用には注意が必要です。
• StripeやPayPalなど、外部連携がある場合は、JSの読み込み順・タイミングがトラブルの原因になりがちなので、該当ボタン周りは開発者ツールでの確認を推奨します。
⸻
🧩 使用環境
項目
WordPressテーマ
SWELL (バージョン: 最新)
会員プラグイン
Simple Membership
決済サービス
Stripe (Buy Now ボタン + SCA 対応)
発生バージョン
2025年5月時点
🔚 まとめ
SWELLの便利な機能も、他プラグインと組み合わせた時には思わぬ落とし穴があります。
「購入する」ボタンが反応しない、決済が失敗する、といった場合にはまずJavaScript(特にjQuery)の読み込みタイミングをチェックするのがおすすめです。
⸻
🙌 どなたかの助けになれば幸いです!