Désactiver des modes d’expédition spécifiques dans les fenêtres modales Express Checkout
Supprimez des modes d’expédition spécifiques de la fenêtre modale Express Checkout.
Certains modes de livraison, tels que Retrait en magasin, peuvent nécessiter des informations supplémentaires du client, telles que l’adresse d’enlèvement. Ces modes ne sont pas adaptés aux portefeuilles Express Checkout, qui ne permettent pas de personnaliser la fenêtre modale de paiement.
Si vous utilisez ce type de mode de livraison, vous pouvez le désactiver pour Express Checkout à l’aide d’une personnalisation de module.
Créer un nouveau module
Créez un nouveau module avec la structure de répertoire suivante. Remplacez Vendor
par le nom de fournisseur de votre choix.
app/code/Vendor/StripeCustomizations/ ├── etc/ │ └── module.xml ├── Plugin/ │ └── Api/ │ └── Response/ │ └── ECEResponse.php ├── registration.php
Dans registration.
, enregistrez votre module auprès de Magento.
<?php \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, 'Vendor_StripeCustomizations', __DIR__ );
Dans etc/module.
, définissez le module et configurez les dépendances pour vous assurer qu’il se charge après le 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>
Dans etc/di.
, définissez le plugin suivant :
<?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>
Dans Plugin/Api/Response/ECEResponse.
, créez l’intercepteur 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; }); } }
Activez le module :
php bin/magento module:enable Vendor_StripeCustomizations php bin/magento setup:upgrade php bin/magento cache:clean php bin/magento cache:flush