Magento 2 - เปิดใช้งานเงินสดในการจัดส่งสำหรับวิธีการจัดส่งเฉพาะเท่านั้น


9

ตัวอย่างเช่นวิธีการเปิดใช้งานเงินสดในการชำระเงินการจัดส่งเฉพาะเมื่อลูกค้าเลือกวิธีการจัดส่งแบบอัตราคงที่?

ฉันหาวิธีการนี้ไม่ได้ในการกำหนดค่าจัดส่ง / การชำระเงินหรือในรถเข็น

คำตอบ:


9

ฉันใช้ปลั๊กอินในโมดูลที่กำหนดเองเพื่อตั้งค่าฟังก์ชั่น isAvailable สำหรับ CashOnDelivery เป็น false เมื่อเลือกวิธีการจัดส่ง "flatrate_flatrate"

file: <magento-root>/app/code/MyCompany/MyModule/Plugin/CashonDeliveryPlug.php

<?php
    namespace MyCompany\MyModule\Plugin;
    use Magento\Payment\Model\Method\AbstractMethod;
    use Magento\Quote\Model\Quote;
    class CashondeliveryPlug
    {

      /**
       * @var \Magento\Checkout\Model\Session
       */
       protected $_checkoutSession;

      /**
       * Constructor
       *
       * @param \Magento\Checkout\Model\Session $checkoutSession
       */
        public function __construct
        (
            \Psr\Log\LoggerInterface $logger,
            \Magento\Checkout\Model\Session $checkoutSession
         ) {
            $this->logger = $logger;
            $this->_checkoutSession = $checkoutSession;
            return;
        }

        public function aroundIsAvailable(\Magento\Payment\Model\Method\AbstractMethod $subject, callable $proceed)
        {
            $shippingMethod = $this->_checkoutSession->getQuote()->getShippingAddress()->getShippingMethod();
            #$this->logger->debug($shippingMethod);
            if ($shippingMethod == 'flatrate_flatrate') {
                return false;
            }
            $result = $proceed();
            return $result;
          }
    }

และ

file: <magento-root>/app/code/MyCompany/MyModule/etc/di.xml

<?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="Magento\OfflinePayments\Model\Cashondelivery">
        <plugin name="cashondeliveryplug" type="MyCompany\MyModule\Plugin\CashondeliveryPlug" disabled="false" sortOrder="10"/>
    </type>
</config>

หวังว่านี่จะช่วยคุณได้! อย่าลังเลที่จะถามคำถามใด ๆ


1
วิธีการทำเช่นนี้ในแบ็กเอนด์
Mahi M

คุณต้องสร้างโมดูลที่กำหนดเองพร้อมกับฟังก์ชั่นเสริมรอบ ๆ คุณไม่สามารถทำสิ่งนี้ได้ในแบ็กเอนด์ด้วย stock-magento
juhanix

นี่คือเงื่อนไขของฉัน ... วิธีการทำเช่นนี้ในแบ็กเอนด์
Mahi M

บางทีคุณควรเปิดคำถามใหม่ที่คุณสามารถให้ข้อมูลเพิ่มเติมได้
juhanix

ขอบคุณ @juhanix มากฉันใช้เวลามากกว่า 2 ชั่วโมงเพื่อหาลำดับ ทางออกของคุณช่วยฉันได้มาก เข้ารหัสต่อไป :)
divya sekar
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.