Express Checkout モーダルで特定の配送方法を無効にする
Express Checkout モーダルから特定の配送方法を削除します。
店舗での受け取りなど特定の配送方法では、集荷先住所など、顧客に追加情報を入力していただく必要があります。Express Checkout ウォレットは支払いモーダルをカスタマイズする方法を提供していないため、これらの配送方法は Express Checkout ウォレットには適していません。
この種の配送方法を使用する場合は、モジュールのカスタマイズを使用して Express Checkout に対して配送方法を無効にすることができます。
新しいモジュールを作成する
次のディレクトリ構造で新しいモジュールを作成します。Vendor
をご希望のベンダー名に置き換えます。
app/code/Vendor/StripeCustomizations/ ├── etc/ │ └── module.xml ├── Plugin/ │ └── Api/ │ └── Response/ │ └── ECEResponse.php ├── registration.php
registration.
内で、モジュールを Magento に登録します。
<?php \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, 'Vendor_StripeCustomizations', __DIR__ );
etc/module.
内で、モジュールを定義し、Stripe モジュールの後に読み込まれるように依存関係を設定します。
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> <module name="Vendor_StripeCustomizations" setup_version="1.0.0"> <sequence> <module name="StripeIntegration_Payments"/> </sequence> </module> </config>
etc/di.
内で、次のプラグインを定義します。
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <type name="StripeIntegration\Payments\Model\Config"> <plugin name="vendor_stripecustomizations_eceresponse_plugin" type="Vendor\StripeCustomizations\Plugin\Api\Response\ECEResponse" sortOrder="10" disabled="false" /> </type> </config>
Plugin/Api/Response/ECEResponse.
内で、afterMethod インターセプターを作成します。
<?php namespace Vendor\StripeCustomizations\Plugin\Payments; class ECEResponse { /** * After plugin for getShippingRatesForQuoteShippingAddress method. * * @param $subject * @param array $result * @return array */ public function afterGetShippingRatesForQuoteShippingAddress($subject, array $result) { $idToRemove = "store_pickup"; return array_filter($result, function ($shippingRate) use ($idToRemove) { return $shippingRate['id'] !== $idToRemove; }); } }
モジュールを有効にします。
php bin/magento module:enable Vendor_StripeCustomizations php bin/magento setup:upgrade php bin/magento cache:clean php bin/magento cache:flush