ম্যাজেন্টো 2-তে দেশের কোড থেকে দেশের নাম কীভাবে পাবেন?


10

আমি দেশের কোড থেকে দেশের নাম পেতে চাই, ডেটা অর্ডার থেকে আমি দেশের কোড পেয়েছি:

$data = $order->getShippingAddress()->getData();
$countryCode = $data['country_id'];
echo $countryCode;

এটি 'মার্কিন' বা অন্য কোনও দেশের কোড প্রিন্ট করবে, এই দেশের কোড থেকে দেশের নাম পাওয়ার কোনও উপায় আছে কি?


আপনি কি দেশের নাম পাওয়ার জন্য কোড চেক করেছেন?
রাকেশ জেসাদিয়া

উত্তর:


31

ব্লক ফাইল তৈরি করুন,

   public function __construct(
            \Magento\Directory\Model\CountryFactory $countryFactory
        ) {
            $this->_countryFactory = $countryFactory;
        }

    public function getCountryname($countryCode){    
        $country = $this->_countryFactory->create()->loadByCode($countryCode);
        return $country->getName();
    }

পিএইচটিএমএল ফাইল থেকে কল করুন,

echo $block->getCountryname($countryCode);

1
আপনি $ দেশ = $ এর পরে -> _ কান্ট্রি ফ্যাক্টরি-> তৈরি () -> লোডবাইকোড ($ কান্ট্রি কোড) বাদে সঠিক করুন এটি $ দেশ = $ এটি -> _ দেশ ফ্যাক্টরী-> তৈরি () -> লোডবাইকোড ($ কান্ট্রি কোড);
Eirik

দেশের নাম থেকে কি দেশের কোড পাওয়া সম্ভব?
বিন্ধুজা


8

আমরা Magento\Directory\Api\CountryInformationAcquirerInterfaceদেশের তথ্য পেতে ব্যবহার করতে পারি:

/** @var \Magento\Directory\Api\CountryInformationAcquirerInterface $country */

/** @var \Magento\Directory\Api\Data\CountryInformationInterface $data */
    $data = $country->getCountryInfo($data['country_id']);
    $data->getFullNameEnglish();
    $data->getFullNameLocale();

প্রত্যাশিত মান সম্পর্কে এখানে আরও দেখুন: Magento\Directory\Api\Data\CountryInformationInterface


হাই, আপনি কি দয়া করে আমাকে বলতে পারবেন, কিভাবে এই Magento 2 engilsh দেশের নাম পাওয়ার জন্য ব্যবহার করতে
বাইট জিজ্ঞাসা করুন

এটি ঠিক নিখুঁত। আমি বিস্তারিত সমাধানের জন্য এই সমাধানের উপর ভিত্তি করে একটি নিবন্ধ লিখেছি .একওয়ালট্রিইউ.কম এটি আপনাকে @ অ্যাসবাইটে সহায়তা করতে পারে
শুভঙ্কর পল

0

দেশের প্রদত্ত মডেল এবং তার পদ্ধতিগুলি পরীক্ষা করুন:

/**
     * 
     * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
     * @param \Magento\Directory\Model\CountryFactory $countryFactory
     */
    public function __construct(
        \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, 
        \Magento\Directory\Model\CountryFactory $countryFactory    
    ) {  
        $this->scopeConfig = $scopeConfig;
        $this->countryFactory = $countryFactory;
    }

এটি সরবরাহ করার একটি পদ্ধতি হ'ল $this->countryFactory->create()->getName();আপনি নিজের প্রয়োজনীয়তার উপর ভিত্তি করে মডেল কারখানাটি ব্যবহার করতে পারেন।


0

নীচের উদাহরণে, একটি কাজে আমাকে পিডিএফ একটি কাস্টম পদ্ধতিতে মুদ্রণ করা দরকার, এজন্য আমার কাছে বিলিং ঠিকানা দেশ এবং শিপিং ঠিকানা দেশ প্রয়োজন তবে বিক্রয় আদেশের তথ্য থেকে আমি এটিকে "এসই" এর মতো দেশের আইডি হিসাবে পাই (সুইডেনের জন্য)

পদ্ধতিতে, আপনি ইংরাজীতে বা স্থানীয়ভাবে পদ্ধতি getCountryName () তে দুটি উপায়ে মূল্যায়ন করতে পারেন।

কান্ট্রি ইনফরমেশনএকুইয়ারার ইন্টারফেস এখানে ব্যবহৃত হয়।

এখানে সম্পূর্ণ কোড

namespace Equaltrue\Orderprint\Block\Order;

use Magento\Backend\Block\Template\Context;
use Magento\Framework\Exception\NoSuchEntityException;
use Magento\Framework\Registry;
use Magento\Framework\View\Element\Template;
use Magento\Sales\Api\OrderRepositoryInterface;
use Magento\Directory\Api\CountryInformationAcquirerInterface;

class Print extends Template
{
    protected $_coreRegistry;
    protected $orderRepository;
    protected $countryInformationAcquirerInterface;

    /**
     * Constructor
     *
     * @param CountryInformationAcquirerInterface $countryInformationAcquirerInterface
     * @param OrderRepositoryInterface $orderRepository
     * @param Context $context
     * @param Registry $coreRegistry
     * @param array $data
     */
    public function __construct(
        CountryInformationAcquirerInterface $countryInformationAcquirerInterface,
        OrderRepositoryInterface $orderRepository,
        Context $context,
        Registry $coreRegistry,
        array $data = []
    ) {
        $this->orderRepository = $orderRepository;
        $this->countryInformationAcquirerInterface = $countryInformationAcquirerInterface;
        $this->_coreRegistry = $coreRegistry;
        parent::__construct($context, $data);
    }

    /**
     * Retrieve Current Data
     */
    public function getOrderData()
    {
        $orderId = $this->getRequest()->getParam('order_id', 0);
        $order =  $this->getOrder($orderId);

        /*
         * Get billing Address
         * */
        $billingAddress = $order->getBillingAddress();
        $firstNameBilling = $billingAddress->getFirstName();
        $lastNameBilling = $billingAddress->getLastName();
        $streetBilling = implode( ", ", $billingAddress->getStreet());
        $cityBilling = $billingAddress->getCity();
        $postCodeBilling = $billingAddress->getPostCode();
        $countryIdBilling = $billingAddress->getCountryId();
        $countryNameBilling = $this->getCountryName($countryIdBilling);
        $telephoneBilling = "T: ".$billingAddress->getTelephone();
        $formattedBillingAddress = $firstNameBilling." ".$lastNameBilling."<br>". $streetBilling."<br>". $cityBilling.",".$postCodeBilling."<br>".$countryNameBilling."<br>".$telephoneBilling;

        /*
         * Get billing Address
         * */
        $shippingAddress = $order->getShippingAddress();
        $firstNameShipping = $shippingAddress->getFirstName();
        $lastNameShipping = $shippingAddress->getLastName();
        $streetShipping = implode( ", ", $shippingAddress->getStreet());
        $cityShipping = $shippingAddress->getCity();
        $postCodeShipping = $shippingAddress->getPostCode();
        $countryIdShipping = $billingAddress->getCountryId();
        $countryNameShipping = $this->getCountryName($countryIdShipping);
        $telephoneShipping = "T: ".$shippingAddress->getTelephone();
        $formattedShippingAddress = $firstNameShipping." ".$lastNameShipping."<br>". $streetShipping."<br>". $cityShipping.",".$postCodeShipping."<br>".$countryNameShipping."<br>".$telephoneShipping;

        return array(
            "formatted_billing_address" => $formattedBillingAddress,
            "formatted_shipping_address" => $formattedShippingAddress
        );
    }

    /**
     * Getting Country Name
     * @param string $countryCode
     * @param string $type
     *
     * @return null|string
     * */
    public function getCountryName($countryCode, $type="local"){
        $countryName = null;
        try {
            $data = $this->countryInformationAcquirerInterface->getCountryInfo($countryCode);
            if($type == "local"){
                $countryName = $data->getFullNameLocale();
            }else {
                $countryName = $data->getFullNameLocale();
            }
        } catch (NoSuchEntityException $e) {}
        return $countryName;
    }

    protected function getOrder($id)
    {
        return $this->orderRepository->get($id);
    }
}

0

অবজেক্টম্যানেজার ব্যবহার করে দেশের কোড দ্বারা দেশের নাম পান।

<?php
    $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
    $countryCode = 'US'; // Enter country code here
    $country = $objectManager->create('\Magento\Directory\Model\Country')->load($countryCode)->getName();
    echo $country;
?>

ধন্যবাদ


-3
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
            $allowerdContries = $objectManager->get('Magento\Directory\Model\AllowedCountries')->getAllowedCountries() ;
            $countryFactory = $objectManager->get('\Magento\Directory\Model\CountryFactory');
            //echo "<pre>"; print_r($allowerdContries);

            $countries = array();
            foreach($allowerdContries as $countryCode)
            {
                    if($countryCode)
                    {

                        $data = $countryFactory->create()->loadByCode($countryCode);
                        $countries[$countryCode] =  $data->getName();
                    }
            }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.