![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-downloadable/Model/Product/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /** * Downloadable products price model * * @author Magento Core Team <[email protected]> */ namespace Magento\Downloadable\Model\Product; /** * @SuppressWarnings(PHPMD.CookieAndSessionMisuse) */ class Price extends \Magento\Catalog\Model\Product\Type\Price { /** * Retrieve product final price * * @param integer $qty * @param \Magento\Catalog\Model\Product $product * @return float */ public function getFinalPrice($qty, $product) { if ($qty === null && $product->getCalculatedFinalPrice() !== null) { return $product->getCalculatedFinalPrice(); } $finalPrice = parent::getFinalPrice($qty, $product); /** * links prices are added to base product price only if they can be purchased separately */ if ($product->getLinksPurchasedSeparately()) { if ($linksIds = $product->getCustomOption('downloadable_link_ids')) { $linkPrice = 0; $links = $product->getTypeInstance()->getLinks($product); foreach (explode(',', $linksIds->getValue() ?? '') as $linkId) { if (isset($links[$linkId])) { $linkPrice += $links[$linkId]->getPrice(); } } $finalPrice += $linkPrice; } } $product->setData('final_price', $finalPrice); return max(0, $product->getData('final_price')); } }