0

Hi I have a custom module . I want to get shipping country inside

public function execute(\Magento\Framework\Event\Observer $observer)
    {

Please let me know how can i get this?

I have seen this code for postcode , but i am not sure this is working or not

  $postCode = $this->_checkoutSession->getQuote()-getShippingAddress()->getPostcode();

I need shipping address country name in public function execute. Please help .

1 Answer 1

3

If you're using sales_order_payment_save_after event then in your observer, get address details as follow :

public function execute(Observer $observer)
    {
        /** @var OrderPaymentInterface $payment */
        $payment = $observer->getDataByKey('payment');

        $order = $payment->getOrder();

        $shippingAddress = $order->getShippingAddress();
        $city = $shippingAddress->getCity();
        $state = $shippingAddress->getRegion();
        $countryData = $this->countryInformation->getCountryInfo($shippingAddress->getCountryId());
        $country = $countryData->getFullNameLocale();
        return $this;
    }

Source: link

8
  • Please note this is on checkout page. Before placing order .
    – Manik
    Commented Nov 3, 2020 at 5:39
  • 1
    On the same page where you enter address details? I mean before going Next to Review and Payments section? Commented Nov 3, 2020 at 5:49
  • Really thank you for this . Could you please expand the answer buy giving sample code. Currently i have public function execute(\Magento\Framework\Event\Observer $observer) { } so inside this i have to write this new code
    – Manik
    Commented Nov 3, 2020 at 6:34
  • What event are you calling? Commented Nov 3, 2020 at 6:55
  • $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $cart = $objectManager->get('\Magento\Checkout\Model\Cart');
    – Manik
    Commented Nov 3, 2020 at 7:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.