PayPalコマースを「PayPalボタン」のみに限定する

非営利団体で、WPFormsとPayPal Commerceをご利用中であり、PayPalボタン経由でのみ支払いを受け付けたいとお考えですか?デフォルトでは、PayPal CommerceではApple Pay、Google Pay、Venmo、Pay Laterのほか、iDEALやBancontactなどの地域限定の決済方法など、いくつかの代替決済手段が有効になっています。PayPalの割引料金の対象となる非営利団体アカウントでは、その割引料金を維持するために、チェックアウトをPayPalボタンに限定する必要がある場合がよくあります。

このチュートリアルでは、カスタムコードスニペットを使用してPayPal Commerceのすべての代替決済方法を無効にし、PayPalボタンだけを有効にする方法について説明します。


このスニペットは、WPForms 1.10.0 以降に対応しています。

WPFormsがApple PayおよびGoogle Payコンポーネントを読み込む順序の関係上、このスニペットをテーマの functions.php ファイルに追加しても正しく動作しません。フィルターが有効になるよう、十分に早い段階で読み込まれる「must-use」プラグインとして、またはWPCodeプラグインを通じて追加する必要があります。

スニペットの追加

必須のプラグインの設定が完了するか、WPCodeをインストールしたら、以下のスニペットをサイトに追加してください。

<?php
/**
 * Restrict WPForms PayPal Commerce to the PayPal button only.
 *
 * @link https://wpforms.com/developers/
 */

// Prevent Apple Pay and Google Pay from registering their SDK components.
add_filter( 'wpforms_integrations_paypal_commerce_payment_methods_apple_pay_allow_load', '__return_false' );
add_filter( 'wpforms_integrations_paypal_commerce_payment_methods_google_pay_allow_load', '__return_false' );

// Disable the remaining alternative funding sources.
add_filter(
    'wpforms_integrations_paypal_commerce_frontend_get_disabled_funding_sources',
    function ( $disabled, $is_single ) {
        return array_unique(
            array_merge(
                $disabled,
                [
                    'card',
                    'credit',
                    'paylater',
                    'venmo',
                    'bancontact',
                    'blik',
                    'eps',
                    'giropay',
                    'ideal',
                    'mybank',
                    'p24',
                    'sepa',
                    'sofort',
                    'trustly',
                    'wechatpay',
                    'mercadopago',
                ]
            )
        );
    },
    10,
    2
);

// Clear any explicitly enabled funding sources (such as Venmo).
add_filter( 'wpforms_integrations_paypal_commerce_frontend_get_enabled_funding_sources', '__return_empty_array', 10, 2 );

このスニペットは3つの部分で構成されており、それぞれPayPal Commerceの読み込みプロセスの異なる段階にフックしています。最初の2つのフィルターは、Apple PayとGoogle PayがSDKコンポーネントを登録することを完全に阻止します。この手順は重要です。なぜなら、これらの決済手段の読み込みを阻止せずに単に無効化してしまうと、PayPal.jsスクリプトが失敗する可能性があるからです。

次のフィルターは、 wpforms_integrations_paypal_commerce_frontend_get_disabled_funding_sources、残りの代替決済手段をPayPalの無効化リストに追加します。これには、クレジットカードおよびデビットカード、Pay Later、Venmo、ならびにiDEAL、Bancontact、SEPAなどの地域限定の決済手段が含まれます。

最終的なフィルターは、他の場所で明示的に有効化されていた資金源をすべて除外し、見落としがないようにします。

これらのフィルターを組み合わせることで、フォーム上で利用可能な支払い方法はPayPalボタンだけになります。支払いは通常通り処理され、非営利団体向けアカウントの割引レートも維持されます。

これで完了です!PayPal Commerceの設定を「PayPalボタン」のみに制限できました。WPFormsでの支払い受付についてさらに詳しく知りたいですか?WPFormsでのPayPal Commerce設定に関する完全ガイドをご覧ください。