WooCommerceとStripeでJCB

はじめに

Stripeを導入すると、すぐにVISAとAMEXとMasterが使えます。
現在は、JCBへの加盟審査も自動的に開始され、条件を満たせば程なく利用できるようになります。
WooCommerceとStripeゲートウェイの組み合わせなら、とてもかんたんにカード決済を導入できて便利です。

ところが、利用可能な状態になっても決済画面にJCBのアイコンが表示されないんです。
調べてみると、ドル決済なら表示されるけれども、円での決済では表示されないようで、Wordpress側ですこし工夫する必要があります。

今後、Stripeゲートウェイプラグインの方で対応されるかもしれませんが、それまでの応急処置として書き留めておきます。





表示する方法

調べてみると大きく分けて2つの方法がありました。

  • Stripeゲートウェイのコードを改造
  • function.phpに追記

私の場合はfunction.phpに追記する方法にしました。
特に大きな理由はありません。
あっちこっち変更してると、どこを変更したか忘れそうなだけです。

function.phpに下記を追加

function wc_add_cc_icon( $icons_str, $payment_id ){
    if($payment_id == 'stripe'){
        $icons_str .= '<img decoding="async" src="' . WC_STRIPE_PLUGIN_URL . '/assets/images/jcb.svg" class="stripe-jcb-icon stripe-icon" alt="JCB" />';
        $icons_str .= '<img decoding="async" src="' . WC_STRIPE_PLUGIN_URL . '/assets/images/diners.svg" class="stripe-diners-icon stripe-icon" alt="Diners" />';
        $icons_str .= '<img decoding="async" src="' . WC_STRIPE_PLUGIN_URL . '/assets/images/discover.svg" class="stripe-discover-icon stripe-icon" alt="Discover" />';
    }
    return $icons_str;
}
add_filter('woocommerce_gateway_icon', 'wc_add_cc_icon', 10, 2);

最後に

そのうちプラグインの方で対応するかもしれませんので、Stripeゲートウェイの更新情報をチェックしておく必要があります。
そういう意味ではプラグインを改造するほうがチェックになっていいのかもしれません。
そのあたりはサイト管理の方針にそって選択すればいいじゃないかなって思います。