mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-07 09:17:35 +00:00
61 lines
1.5 KiB
PHP
61 lines
1.5 KiB
PHP
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
|
|
namespace Magento\Checkout\Model\Layout;
|
|
|
|
use Magento\Framework\App\Config\ScopeConfigInterface;
|
|
use Magento\Store\Model\ScopeInterface;
|
|
|
|
/**
|
|
* Abstract totals processor.
|
|
*
|
|
* Can be used to process totals information that will be rendered during checkout.
|
|
* Abstract class provides sorting routing to sort total information based on configuration settings.
|
|
*
|
|
* phpcs:disable Magento2.Classes.AbstractApi
|
|
* @api
|
|
* @since 100.0.2
|
|
*/
|
|
abstract class AbstractTotalsProcessor
|
|
{
|
|
/**
|
|
* Core store config
|
|
*
|
|
* @var ScopeConfigInterface
|
|
*/
|
|
protected $scopeConfig;
|
|
|
|
/**
|
|
* @param ScopeConfigInterface $scopeConfig
|
|
* @codeCoverageIgnore
|
|
*/
|
|
public function __construct(
|
|
ScopeConfigInterface $scopeConfig
|
|
) {
|
|
$this->scopeConfig = $scopeConfig;
|
|
}
|
|
|
|
/**
|
|
* Sort total information based on configuration settings.
|
|
*
|
|
* @param array $totals
|
|
* @return array
|
|
*/
|
|
public function sortTotals($totals)
|
|
{
|
|
$configData = $this->scopeConfig->getValue('sales/totals_sort', ScopeInterface::SCOPE_STORES);
|
|
foreach ($totals as $code => &$total) {
|
|
//convert JS naming style to config naming style
|
|
$code = str_replace('-', '_', $code);
|
|
if (array_key_exists($code, $configData)) {
|
|
$total['sortOrder'] = $configData[$code];
|
|
}
|
|
}
|
|
|
|
return $totals;
|
|
}
|
|
}
|