| Current Path : /home/rtorresani/www/vendor/magento/module-catalog/Model/Product/PriceModifier/ |
| Current File : //home/rtorresani/www/vendor/magento/module-catalog/Model/Product/PriceModifier/Composite.php |
<?php
/**
* Composite price modifier can be used.
* Any module can add its price modifier to extend price modification from other modules.
*
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Catalog\Model\Product\PriceModifier;
use Magento\Catalog\Model\Product;
use Magento\Catalog\Model\Product\PriceModifierInterface;
use Magento\Framework\ObjectManagerInterface;
class Composite implements PriceModifierInterface
{
/**
* @var \Magento\Framework\ObjectManagerInterface
*/
protected $objectManager;
/**
* @var array
*/
protected $modifiers;
/**
* @param ObjectManagerInterface $objectManager
* @param array $modifiers
*/
public function __construct(ObjectManagerInterface $objectManager, array $modifiers = [])
{
$this->objectManager = $objectManager;
$this->modifiers = $modifiers;
}
/**
* Modify price
*
* @param mixed $price
* @param Product $product
* @return mixed
*/
public function modifyPrice($price, Product $product)
{
foreach ($this->modifiers as $modifierClass) {
$price = $this->objectManager->get($modifierClass)->modifyPrice($price, $product);
}
return $price;
}
}