Skip to main content
3 of 7
added 795 characters in body
rajat kara
  • 1.2k
  • 3
  • 19
  • 28

Saving custom payment field data in magento 2 through plugin not working,

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>

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>

Can anyone please help me on this.

rajat kara
  • 1.2k
  • 3
  • 19
  • 28