Magento 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();
    }

Phtml फ़ाइल से कॉल करें,

echo $block->getCountryname($countryCode);

1
सिवाय इसके कि आप $ देश के बाद एक अर्ध उपनिवेश याद कर रहे हों देश कोड);
इरिक

क्या देश के नाम से देश कोड प्राप्त करना संभव है?
विंधुजा


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


नमस्ते, क्या आप कृपया मुझे बता सकते हैं कि मैगनेटो 2 में संलग्न देश का नाम पाने के लिए इसका उपयोग कैसे करें
बाइट्स से पूछें

यह एकदम सही है। मैं विवरण के लिए इस समाधान के आधार पर एक लेख लिखता हूं blog.equaltrue.com/… यह आपकी मदद कर सकता है @AskBytes
Shuvankar पॉल

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 (), अंग्रेजी में या स्थानीय में दो तरह से मूल्य कर सकते हैं।

CountryInformationAcquirerInterface का उपयोग यहां किया जाता है।

यहाँ पूर्ण कोड है

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

ObjectManager का उपयोग करके देश कोड द्वारा देश का नाम प्राप्त करें।

<?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();
                    }
            }
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.