chirag-d-wagento
9/27/2019 - 8:53 AM

[MAGENTO 2] Injecting data into Cart data

[MAGENTO 2] Injecting data into Cart data

<?php

namespace Vendor\Module\Plugin\Checkout\CustomerData;

class CartTotals
{
    /**
     * @var \Magento\Customer\Model\Session
     */
    protected $checkoutSession;

    /**
     * @param \Magento\Checkout\Model\Session $checkoutSession
     */
    public function __construct(\Magento\Checkout\Model\Session $checkoutSession) {
        $this->checkoutSession = $checkoutSession;
    }

    /**
     * Add cart grand total to result data
     *
     * @param \Magento\Checkout\CustomerData\Cart $subject
     * @param array $result
     * @return array
     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
     */
    public function afterGetSectionData(\Magento\Checkout\CustomerData\Cart $subject, $result)
    {
        $totals = $this->checkoutSession->getQuote()->getTotals();
        if(isset($totals['grand_total'])) {
            $result['grand_total'] = $totals['grand_total']->getValueInclTax() ?: $totals['grand_total']->getValue();
        }
        return $result;
    }
}
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">

    <type name="Magento\Checkout\CustomerData\Cart">
        <plugin name="cart_totals" type="Vendor\Module\Plugin\Checkout\CustomerData\CartTotals"/>
    </type>

</config>