2026年5月20日
2026年5月20日
WooCommerceで決済が通らないときの確認手順|注文の状態・ログ・テストモード・HTTPS
WooCommerce で「決済が通らない」と言っても、原因はカード会社の判断、決済プラグインの設定、サイトの設定(HTTPS やキャッシュ)、他のプラグインとの競合など、いくつもあります。この記事では、どこで止まっているかを注文の状態とログから絞り込み、順に確かめる手順を説明します。
画面の名前は、2026年11月時点で WordPress.org で配布されている WooCommerce 11.2 と WooCommerce Stripe Payment Gateway 11.1 のファイルで確認したものです。日本語表示と英語表示の名前を併記しています。
1. まず注文の状態を見る
「WooCommerce → 注文」(Orders)で、問題の注文の状態を確認します。状態によって、調べる場所が変わります。
| 注文の状態 | 意味 | 調べること |
|---|---|---|
| 支払い待ち(Pending payment) | 注文は作られたが、支払いの完了が記録されていない | 購入者が決済画面で中断していないか。決済サービス側で成功しているなら、サイトへの通知(Webhook)が届いているか |
| 失敗(Failed) | 決済サービスが支払いを拒否した、またはエラーで止まった | 注文のメモとログに残った理由 |
| 保留中(On hold) | 銀行振込など、入金の確認を待っている | 決済方法の仕様どおりか |
| 処理中(Processing) | 支払いが完了している | 決済は通っている。メールや在庫など別の問題 |
注文の編集画面の右側にある「注文メモ」には、決済プラグインが書いた記録(拒否の理由や決済サービス側の ID)が残っていることがあります。最初にここを見ます。
なお、在庫管理を有効にしている場合、支払い待ちの注文は「WooCommerce → 設定 → 商品 → 在庫」の「在庫保持 (分単位)」(Hold stock (minutes)、初期値は60分)を過ぎると自動でキャンセルされます。
2. WooCommerceのログを見る
決済プラグインの多くは、エラーを WooCommerce のログに書きます。
- 見る場所: 「WooCommerce → ステータス → ログ」(Status → Logs)。ソース(記録したプラグイン)ごとに分かれています。Stripe の拡張機能なら
woocommerce-gateway-stripe、PHP の致命的エラーはfatal-errorsです。 - 保存先: 初期設定ではファイルに保存され、場所は
wp-content/uploads/wc-logs/です。保存先と保持期間は、同じ画面の「設定」(Settings)で確認・変更できます。 - 記録が見つからない場合は、「設定」の「ログを有効化」(Enable logging)がオンになっているかを確認します(初期値はオン)。
サーバーに SSH で入れる場合は、ファイルを直接見ることもできます。
# 新しい順にログファイルを表示する
ls -lt wp-content/uploads/wc-logs/ | head
# Stripe 拡張機能のログの末尾を表示する(ファイル名には日付と識別子が付く)
tail -n 100 wp-content/uploads/wc-logs/woocommerce-gateway-stripe-*.log
Stripe の拡張機能は、エラーは常にログに書きます。それより細かい記録が必要なときは、Stripe の設定画面の「デバッグモード」(Debug mode)で「デバッグメッセージのログを取得」(Log debug messages)をオンにしてから、もう一度決済を試します。調べ終わったらオフに戻します。
3. テストモードと本番モードの取り違え
決済プラグインの多くには、テスト用の設定(テストモード、サンドボックス)があります。
- テストモードのままでは、本物のカードでは決済できず、売上も発生しません。
- 逆に、テスト用のカード番号は本番モードでは使えません。
設定は「WooCommerce → 設定 → 支払い」(Settings → Payments)から、それぞれの決済方法の設定画面で確認します。Stripe の拡張機能では「テストモードを有効化」(Enable test mode)です。この拡張機能のテストモードの初期値はオンなので、導入直後に本番の決済を受け付ける前には、オフになっているかを確かめます。
WP-CLI が使える場合、Stripe の拡張機能の設定は次のように確認できます(yes ならテストモード)。
wp option pluck woocommerce_stripe_settings testmode
テストモードで流れ全体を確かめるときは、決済サービスが公開しているテスト用のカード番号を使います。Stripe なら 4242 4242 4242 4242(有効期限は未来の日付、セキュリティコードは任意の3桁)で、認証なしの成功を試せます。
4. HTTPSとサイトのアドレスを確認する
カード情報を扱うチェックアウトは HTTPS で表示されている必要があります。サイトのアドレスが http:// のまま、証明書の期限切れ、HTTP と HTTPS の混在があると、決済フォームが動かない、決済サービスからの戻りや通知が失敗する、といったことが起きます。
# WordPress のアドレスとサイトアドレスが https:// で始まっているか
wp option get siteurl
wp option get home
# 証明書の有効期限(example.com は自分のドメインに置き換える)
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -enddate
ブラウザーでチェックアウトのページを開き、アドレスバーに警告が出ていないかも確認します。
5. 支払い方法がチェックアウトに表示されない
- 「WooCommerce → 設定 → 支払い」で、その決済方法が有効になっているか確認します。
- 決済方法によっては、使える通貨や国が決まっています。ストアの通貨(「設定 → 一般」)や購入者の国が対象外だと表示されません。条件は各決済プラグインの説明書で確認します。
- 新しいストアのチェックアウトは「チェックアウト」ブロックで作られています。ブロックに対応していない決済プラグインは、ブロックのチェックアウトに表示されません。チェックアウトのページをブロックエディターで開くと、対応していない決済方法は「Incompatible with block-based checkout」と表示されます。プラグインを対応版に更新するか、ブロックの設定にある「クラシック購入手続きに切り替える」(Switch to classic checkout)で従来のチェックアウトに戻します。
6. 決済フォームが動かない(JavaScriptのエラーと競合)
カード番号の入力欄が表示されない、「注文する」ボタンを押しても進まない場合は、ブラウザーの開発者ツールのコンソールに JavaScript のエラーが出ていないかを確認します。他のプラグインやテーマのエラー、スクリプトをまとめる最適化系プラグインの設定、チェックアウトをキャッシュしてしまう設定が原因になることがあります。
本番サイトでプラグインを全部止めると、購入者にも影響します。公式の「Health Check & Troubleshooting」プラグインのトラブルシューティングモードを使うと、自分のログイン中だけプラグインを止め、テーマを既定のものに切り替えて試せます。WooCommerce と決済プラグインだけを有効にした状態で決済が通るなら、残りのプラグインを1つずつ戻して原因を探します。
PHP のエラーも記録しておくと原因を絞り込めます。wp-config.php の /* That's all, stop editing! */ の行より上に次を書きます。
<?php
// エラーを wp-content/debug.log に記録し、画面には出さない
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
調べ終わったら WP_DEBUG を false に戻し、debug.log を削除します。
7. 決済サービスでは成功しているのに注文が支払い待ちのまま
決済サービスの管理画面では支払いが成功しているのに、WooCommerce の注文が支払い待ちのまま残る場合は、決済サービスからサイトへの通知(Webhook)が届いていない可能性があります。確認する点は次のとおりです。
- 決済プラグインの設定画面で、Webhook が正しく設定されているか(Stripe の拡張機能では、接続時に自動で設定されます)
- サイトに Basic 認証や IP アドレスの制限、メンテナンスモードがかかっていないか
- セキュリティ系プラグインや WAF が、決済サービスからの POST を止めていないか
Stripe を使っている場合の詳しい確認手順(接続状態、Webhook の再設定、ログに出る検証エラーの読み方、返金の注意)は「WooCommerce Stripeのエラーの直し方」で説明しています。
8. バージョンを確認する
2026年11月時点の WordPress.org の配布ページでは、WooCommerce 11.2 は WordPress 7.0 以上と PHP 7.4 以上、WooCommerce Stripe Payment Gateway 11.1 は WordPress 6.9 以上と WooCommerce 11.0 以上を必要とします。古い組み合わせのまま決済プラグインだけを更新すると、動かないことがあります。
php -v
wp core version
wp plugin list --fields=name,status,version
注意点
- 決済サービスの秘密鍵(Stripe なら
sk_live_で始まる鍵)は、テーマのファイルや記事、問い合わせのメールに書かないでください。ログを人に見せるときも、鍵や購入者の個人情報が含まれていないか確認します。 - カードが拒否される理由の多くは、カード会社の判断や入力の誤りで、サイトの設定を変えても直りません。購入者には別のカードを試すか、カード会社に確認するよう案内します。
- 設定を変えたら、テストモードで1回決済を通し、注文が「処理中」になるところまで確かめてから本番に戻します。