お問い合わせはコチラから

【Simple Membership】Stripe決済ボタンが動かない時の対処方法

サイト運営

Simple membershipプラグインでStripe決済を利用しているサイトがありました。

おそらくテーマのバージョンアップが原因だと思いますが、以前まで普通に動いていたStripe決済ボタンが動かなくなりました。

原因と対策がわかるまで結構時間がかかったのでメモしておきたいと思います。

よくある原因

Stripe決済が一度も動かない場合のよくある原因は、次のものです。

  1. サイトがSSL化されていない
  2. Stripe API IDがProduct IDになっている

今回はStripe決済は動いていましたのでこれらの問題は特にありませんでした。

現象

  • テーマはSnow monkeyを使用
  • Simple membershipのStripe決済用のボタンをショートコードで設置
  • Stripe pamentのボタンを押すと以下のエラーが出てStripe決済画面に進まない。
    • Fatal error! Payment with ref_id swpm_xxxx|1859 can’t be found
  • テーマバージョンアップするまでは、正常に動作していた。

原因

  • 直接の原因は使用しているテーマとプラグインの相性の問題
  • ボタンのjsでStripeのjsが見つからないというエラーになっている。
    • ショートコードが最初に読み込まれたときに、Stripe.jsの読み込みのコードが出力される仕様になっているが、出力されていない。
    • Snowmonkeyでは1つのショートコードが2回展開(前処理と本番)されて、2回目のみ出力されるような動きになっていて1回目は無視される。
    • ページ表示前に、一度すべてのショートコードが展開される動きが入り、その時点でStripe.jsを追加するコードが用意されるが、出力されないまま無視される。その後、本当にショートコードを展開する時には、Stripe.jsを出力したことになっているので、Stripe.jsを読み込むための記述が出てこなくなる。

対策

①Stripe.jsを自前で読み込む

もともと、ショートコードの展開に合わせて出力されるべきコードをheadタグ内に自前で追加してしまえば問題は起きません。

ショートコードを追加したページにのみ追加したい場合は、page idを限定して読み込めばいいと思います。

<?php
add_action('wp_head',function(){
	if(is_page('membership-join')){
?>
<script src="https://js.stripe.com/v3/"></script>
<link rel='stylesheet' href='https://checkout.stripe.com/v3/checkout/button.css' type='text/css' media='all' />
<?php
	}
}) ;

②公式テーマのような素性のしっかりしたテーマを使う

Snow monkeyは公式テーマではありません。かなり特殊な構造のテーマゆえにショートコードが2回展開され、発生した問題です。

なぜショートコードが2回展開されて1回目が捨てられる動きになっているのかわからないのでプラグインが正常に動くように対策することも現状難しいです。

別のテーマが使えるなら、別のテーマを使う方が良いかもしれませんが、サイトが完成した後の場合は選択肢にならないと思います。

まとめ

Snow monkeyを使っている人が増えてきていますので、Simple membershipのショートコードとの相性問題で突然動かなくなって焦っている人は結構多いかもしれないので、今回の記事を参考にしてみてください。

Snow monkeyはWordpressのバージョン縛りがあったり、テーマをバージョンダウンすることも難しく、不具合が起きると致命傷になることが多いテーマですので、バージョンアップ前にバックアップを取ることをお勧めします。

この記事を書いた人
ブーン

はるばる日本よりオランダ王国へやってまいりました。
自分の経験が少しでも参考になれば嬉しいです。
お問い合わせは、『こちら』からお願い致します。

\ブーンをフォロー/
スポンサーリンク
サイト運営
\シェアお願いします!/
\ブーンをフォロー/
こんな記事も読まれています

失敗しないレンタルサーバーランキング

mixhost

不正アクセスに強くて使いやすいおススメサーバー
\本サイトで利用中/
メリット①:自動ウィルス駆除対応
メリット②:サイトの表示速度が速い!
メリット③:転送量の上限が多い!
メリット④:自由にプラン変更ができ、アクセス増にも対応できる!
メリット⑤:バックアップデータが無料で復元できる!
メリット⑥:Wordpressが簡単にインストールできる!
メリット⑦:どのプランでも初期費用が無料!
メリット⑧:10日間の無料お試し期間と30日の返金保証!

Conoha Wing

国内Wordpress最速の最強サーバー
メリット①:圧倒的な表示速度
メリット②:レンタルサーバーと独自ドメインがセットでお得◎
メリット③:プラン変更はすべてのプランで自由自在
メリット④:一か月の利用転送量の制限が緩い(9TB~)
メリット⑤:WordPresサイトの移行が簡単

エックスサーバー

国内シェアNo1の安定性と実績が魅力。ALL SSDで死角なしの万能サーバー。
メリット①:サイトの表示速度が安定して速い!
メリット②:アクセス負荷に強くて安定性が高い!
メリット③:24時間365日の充実サポートで安心!電話サポートもあり!
メリット④:転送量が多い!
メリット⑤:自動バックアップ機能付き!
メリット⑥:WordPressが簡単にインストールできる!
メリット⑦:10日の無料お試し期間がある!

タイトルとURLをコピーしました