Is there any way to store checkout custom field data to checkout session? If possible how can I retrieve data?
Created an event
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="checkout_onepage_controller_success_action">
<observer name="checkout_onepage_observer" instance="Mageplaza\HelloWorld\Observer\TestObserver" />
</event>
</config>
Observer code-
<?php
namespace Oye\Deliverydate\Model\Observer;
use Magento\Framework\Event\Observer as EventObserver;
use Magento\Framework\Event\ObserverInterface;
/**
* Class SaveDeliveryDateToOrderObserver
* @package Oye\Deliverydate\Model\Observer
*/
class SaveDeliveryDateToOrderObserver implements ObserverInterface
{
/**
* @var \Magento\Framework\ObjectManagerInterface
*/
protected $_objectManager;
/**
* @param \Magento\Framework\ObjectManagerInterface $objectmanager
*/
public function __construct(\Magento\Framework\ObjectManagerInterface $objectmanager)
{
$this->_objectManager = $objectmanager;
}
/**
* @param EventObserver $observer
* @return $this
*/
public function execute(EventObserver $observer)
{
$order = $observer->getOrder();
$quoteRepository = $this->_objectManager->create('Magento\Quote\Model\QuoteRepository');
$quote = $quoteRepository->get($order->getQuoteId());
$order->setDeliveryDate( $quote->getDeliveryDate() );
//echo $quote->getDeliveryDate();
// exit();
}
}
In the observer last line I tried to echo deliverydate custom field value
using echo $quote->getDeliveryDate();
but not getting that value. Can I use session to store these custom checkout field value?
$quote->getDeliveryDate()
will not show anything unless you have savedDelivery Date
in quote table.