Magento 2 সমস্ত সক্রিয় শিপিং পদ্ধতি কীভাবে পাবেন?


10

আমার ম্যাজেন্টো সংস্করণটি 2.1.0। আমি কীভাবে সমস্ত সক্রিয় শিপিং পদ্ধতির তালিকা পেতে পারি?

কোন সাহায্যের অত্যন্ত প্রশংসা হবে

উত্তর:


10

অথবা আপনি Magento \ শিপিং \ মডেল \ কনফিগার \ উত্স \ Allmethods ব্যবহার করতে পারেন যা কেবল এটি করে!


1
এটি গ্রহণযোগ্য উত্তর হওয়া উচিত!
— মিলান সিমেক

মাল্টিলেসলেট ক্ষেত্রগুলি ব্যবহার সম্পর্কে কী?
— spiil

তবে আমি কীভাবে সমস্ত সক্রিয় পদ্ধতি পেতে পতাকা পাস করতে পারি। আমার ইউআই উপাদান ফর্মটি থেকে
— হিমাংশু

7

কিউর শাহের উত্তর ছাড়াও

আপনি নীচের কোড ব্যবহার করে সমস্ত সক্রিয় শিপিং পেতে পারেন:

protected $scopeConfig;

protected $shipconfig;

public function __construct(
\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
\Magento\Shipping\Model\Config $shipconfig
) {
    $this->shipconfig=$shipconfig;
    $this->scopeConfig = $scopeConfig;
}

public function getShippingMethods(){

        $activeCarriers = $this->shipconfig->getActiveCarriers();
        $storeScope = \Magento\Store\Model\ScopeInterface::SCOPE_STORE;
            foreach($activeCarriers as $carrierCode => $carrierModel)
            {
               $options = array();
               if( $carrierMethods = $carrierModel->getAllowedMethods() )
               {
                   foreach ($carrierMethods as $methodCode => $method)
                   {
                        $code= $carrierCode.'_'.$methodCode;
                        $options[]=array('value'=>$code,'label'=>$method);

                   }
                   $carrierTitle =$this->scopeConfig->getValue('carriers/'.$carrierCode.'/title');

               }
                $methods[]=array('value'=>$options,'label'=>$carrierTitle);
            }
        return $methods;        

    }

নীচের কোড ব্যবহার করে আপনি পিএইচটিএমএল ফাইলে ক্যারিয়ারের তালিকা পাবেন। এখানে $blockব্লক সম্পর্কিত যা আমরা উপরে ফাংশন সংজ্ঞায়িত করেছি

<?php $carriers = $block->getShippingMethods(); ?>
<select name="shipping"  class="control-select">
    <option value=""><?php /* @escapeNotVerified */ echo __('Please Select'); ?></option>
        <?php foreach ($carriers as $carrier): ?>
            <optgroup label="<?php /* @escapeNotVerified */ echo $carrier['label'] ?>">
                <?php foreach ($carrier['value'] as $child): ?>
                    <option value="<?php /* @escapeNotVerified */ echo $child['value'] ?>">
                    <?php /* @escapeNotVerified */ echo $child['label']; ?>
                    </option>
                <?php endforeach; ?>
            </optgroup>
        <?php endforeach; ?>
</select>

এই পরিবর্তিত শিপিং পদ্ধতি রেডিওর নির্বাচন হিসাবে ??? আমি রেডিও বোতাম শিপিংয়ের পদ্ধতিগুলি দামের সাথে শিপিংয়ের পদ্ধতিগুলিতে
— নামিয়ে

3
 $objectManager = \Magento\Framework\App\ObjectManager::getInstance();

 $activeShipping = $objectManager->create('Magento\Shipping\Model\Config')->getActiveCarriers();

দ্রষ্টব্য: আমি load অবজেক্ট ম্যানেজারের সাথে সরাসরি লোডিং অবজেক্টের বিপক্ষে, আরও ভাল প্রভাবের জন্য আপনি এটি আপনার নির্মাত্রে ইনজেক্ট করতে পারেন। আপনি কীভাবে এটি অর্জন করতে পারেন তা আমি উদাহরণ দিয়েছি। `


উত্তম উপায়

protected $_shippingConfig;

public function __construct(
\Magento\Shipping\Model\Config $shippingConfig
) {
    $this->_shippingConfig=$shippingConfig
}

এখন আপনি এর মাধ্যমে সমস্ত সক্রিয় শিপিং পদ্ধতি পেতে পারেন

$this->_shippingConfig->getActiveCarriers();

আপনি যদি storeসুনির্দিষ্ট চান active shipping methodতবে আপনি $storeঅবজেক্টটি পাস করতে পারেন parameter, আপনি নীচের এই পদ্ধতির $storeপ্যারামিটারটি দেখতে পাবেন

public function getActiveCarriers($store = null)
    {
        $carriers = [];
        $config = $this->_scopeConfig->getValue('carriers', \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $store);
        foreach (array_keys($config) as $carrierCode) {
            if ($this->_scopeConfig->isSetFlag('carriers/' . $carrierCode . '/active', \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $store)) {
                $carrierModel = $this->_carrierFactory->create($carrierCode, $store);
                if ($carrierModel) {
                    $carriers[$carrierCode] = $carrierModel;
                }
            }
        }
        return $carriers;
    }

কিউর আমার শিপিং পদ্ধতির তালিকার দরকার আপনার কেবলমাত্র কোড যুক্ত করুন যা শিপিং পদ্ধতি অবজেক্ট দেয় তার পরে আপনি আপনার সমর্থনের জন্য উত্তরটি সম্পাদনা করেছেন
— প্রশান্ত ভালানদা

আমি চেকআউটে শিপিং রেট (কাস্টম) সহ শিপিং পদ্ধতি রেডিওতে ড্রপডাউন শিপিংয়ের পদ্ধতিতে রূপান্তর করতে কাজ করছি .. সুতরাং কীভাবে এটি করা যায়
— সংগান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.