ダミー

【WooCommerce】× Stripe でアカウント未登録時に決済がうまくいかない

WordPressでECサイトを作れる無料プラグインWooCommerceは、さまざまな決済方法が用意されています。今回は決済ゲートウェイにStripeを使うので「Payment Plugins for Stripe WooCommerce」という拡張プラグインを使います。
当記事の環境:WordPress 6.5.2 WooCommerce 8.7.0 Payment Plugins for Stripe WooCommerce 3.3.6
テーマ:オリジナル

前提

この記事ではWordPress×Stripeで、API設定が正しいのに、決済しようとすると先に進まなくなるときの対処法について情報を共有します。
まずはじめに以下の項目についてすべて確認が完了していることが前提です。

  • ・Payment Plugins for Stripe WooCommerceがインストールされ、有効になっている。
  • ・WooCommerceのサブメニューに「Stripe by Payment plugin」と表示されている。
  • ・API設定で必要な項目を入力し接続テストが完了している。
  • ・API設定に「Stripeアカウントが接続されています。」と表示されている。

完了していれば決済可能なはずです。

現象

アカウント未登録での決済テストを行ったところ次のような現象になりました。

  • ・クレカ情報を入力するところ(テキストボックス)がない。
  • ・クレカ情報を入力するところ(テキストボックス)はあるが、正しいクレカ情報を入力し「注文する」をクリックしても次の画面に進まず、同じ画面内でページ上部に移動する。
  • ・画面にエラーは表示されていない。
  • ・ブラウザの開発者ツールにエラーは表示されていない。
  • ・wp-config.php のデバッグモードをtrueにしてもエラーログは出ない。

試したこと

さて、こうなると何が原因なのかを調べて、原因を除去しなくてはなりません。そのために行ったことは次のとおりりです。

テーマを変える

今回は私たちが作ったオリジナルテーマです。WooCommerce公式テーマの「STOREFRONT」やWordPress公式テーマで決済できるかを試行しました。→問題なく決済できる
ということで、プラグインや設定には問題なく、私たちが作ったテーマに原因があることがわかりました。

WooCommerce>ステータス の確認

エラー、警告が出ていないか調べます。
今回はテンプレート>上書き のところに「バージョンn.n.nは有効期限が切れています。コアバージョンはm.m.mです,」の表示があるテンプレートがありましたので、そのテンプレートを更新しました。
更新の方法はこちら

プラグインを停止

別テーマでは問題がないのでプラグインにも問題がないと思われましたが、念のためすべてのプラグインを一旦無効にして試行→現象は変わらない
やはりプラグインに問題はないようです。

Javascript

オリジナルテーマで使用しているJavaScriptを一旦停止して試行→現象は変わらない
JavaScriptに問題はないようです。

functions.php

オリジナルテーマのfunctions.phpに問題がないか確認し、問題なさそうだということになりました。

いろいろ試しましたが、結果は変わりませんでした。

解決法

プラグイン「Payment Plugins for Stripe WooCommerce」はK.Gravity 社の Linkという仕組みが使えるようになっています。当該サイトでアカウント未登録でもクレジットカード情報が保存され別のサイトでも再入力しなくても買い物ができる便利なシステムですが、この機能が決済の邪魔をしていたようです。この機能を外します。

WooCommerce>Stripe by Payment Plugin>設定

決済>高度な設定 の「リンク設定」で「リンクを使用したファーストチェックアウト」のチェックを外します。これでアカウント未登録でも決済ができるようになりました!
この「リンク」がK.Gravity 社の Linkを指すとは気づきにくいですね。