I am trying to save my custom field data through plugin but it's not working.
Plugin Class
namespace Vendor\Module\Model\Checkout;
class PaymentInformationManagementPlugin {
protected $paymentMethodManagement;
public function __construct(
\Magento\Quote\Model\QuoteFactory $quote,
\Magento\Quote\Api\PaymentMethodManagementInterface $paymentMethodManagement
) {
$this->paymentMethodManagement = $paymentMethodManagement;
$this->quoteManagement = $quoteManagement;
}
public function beforeSavePaymentInformation(
\Magento\Checkout\Model\PaymentInformationManagement $subject,
$cartId,
\Magento\Quote\Api\Data\PaymentInterface $paymentInformation
) {
//$paymentInformation->getData('extension_attributes');
$extenstinAttributes = $paymentInformation->getExtensionAttributes();
$taxCode = $extenstinAttributes->getTaxCode();
$paymentInformation->setExtensionAttributes($taxCode);
$this->paymentMethodManagement->set($cartId, $paymentInformation);
return true;
// var_dump($taxCode);exit;
// $quote=$this->quote->create();
// $quote->getPayment()->setData('tax_code',$taxCode);
// return $paymentInformation;
}
}
extenstion_attribute.xml
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Api/etc/extension_attributes.xsd">
<extension_attributes for="Magento\Quote\Api\Data\PaymentInterface">
<attribute code="tax_code" type="string"/>
</extension_attributes>
</config>
di.xml
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Magento\Checkout\Model\PaymentInformationManagement">
<plugin name="save-in-quote-payment" type="Vendor\Module\Model\Checkout\PaymentInformationManagementPlugin" sortOrder="12349"/>
</type>
</config>
Can anyone please help me on this.