नीचे दिए गए उदाहरण में, किसी एक कार्य में मुझे एक कस्टम तरीके से पीडीएफ प्रिंट करने की आवश्यकता है, इसीलिए मुझे बिलिंग पता देश और शिपिंग पते देश की आवश्यकता है, लेकिन बिक्री आदेश डेटा से मैं इसे "एसई" जैसे देश आईडी के रूप में प्राप्त करता हूं। (स्वीडन के लिए)
विधि में, आप विधि 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);
}
}