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.