b374k
m1n1 1.01
Apache/2.4.41 (Ubuntu)
Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64
uid=33(www-data) gid=33(www-data) groups=33(www-data)
server ip : 62.171.164.128 | your ip : 127.0.0.1
safemode OFF
 >  / home / dev2.destoffenstraat.com / app / code / Mageplaza / DailyDeal / Plugin / Api /
Filename/home/dev2.destoffenstraat.com/app/code/Mageplaza/DailyDeal/Plugin/Api/DealAttributes.php
Size3.77 kb
Permissionrwxrwxrwx
Ownerroot : root
Create time17-Aug-2025 10:26
Last modified16-Apr-2021 07:23
Last accessed23-Aug-2025 02:07
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
<?php
/**
* Mageplaza
*
* NOTICE OF LICENSE
*
* This source file is subject to the Mageplaza.com license that is
* available through the world-wide-web at this URL:
* https://www.mageplaza.com/LICENSE.txt
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade this extension to newer
* version in the future.
*
* @category Mageplaza
* @package Mageplaza_DailyDeal
* @copyright Copyright (c) Mageplaza (https://www.mageplaza.com/)
* @license https://www.mageplaza.com/LICENSE.txt
*/

namespace Mageplaza\DailyDeal\Plugin\Api;

use Magento\Catalog\Api\Data\ProductInterface;
use Magento\Catalog\Api\ProductRepositoryInterface;
use Magento\Framework\Api\SearchResults;
use Magento\Framework\Exception\LocalizedException;
use Magento\Framework\Exception\NoSuchEntityException;
use Mageplaza\DailyDeal\Block\Product\View\Label;
use Mageplaza\DailyDeal\Helper\Data;
use Mageplaza\DailyDeal\Model\Deal;

/**
* Class DealAttributes
* @package Mageplaza\DailyDeal\Plugin\Api
*/
class DealAttributes
{
/**
* @var Data
*/
protected $helperData;

/**
* @var Label
*/
protected $block;

/**
* DealAttributes constructor.
*
* @param Data $helperData
* @param Label $dealBlock
*/
public function __construct(
Data $helperData,
Label $dealBlock
) {
$this->helperData = $helperData;
$this->block = $dealBlock;
}

/**
* @param ProductRepositoryInterface $subject
* @param ProductInterface $entity
*
* @return ProductInterface
* @throws LocalizedException
* @throws NoSuchEntityException
* @SuppressWarnings(Unused)
*/
public function afterGet(
ProductRepositoryInterface $subject,
ProductInterface $entity
) {
if (!$this->helperData->isEnabled()) {
return $entity;
}
$this->addDealToProduct($entity);

return $entity;
}

/**
* @param ProductRepositoryInterface $subject
* @param SearchResults $searchCriteria
*
* @return SearchResults
* @throws LocalizedException
* @throws NoSuchEntityException
* @SuppressWarnings(Unused)
*/
public function afterGetList(
ProductRepositoryInterface $subject,
SearchResults $searchCriteria
) {
if (!$this->helperData->isEnabled()) {
return $searchCriteria;
}

/** @var ProductInterface $entity */
foreach ($searchCriteria->getItems() as $entity) {
$this->addDealToProduct($entity);
}

return $searchCriteria;
}

/**
* @param ProductInterface $entity
*
* @return bool|ProductInterface
* @throws NoSuchEntityException
*/
public function addDealToProduct($entity)
{
$productId = $entity->getId();
/** @var Deal $dealData */
$dealData = $this->helperData->getProductDeal($productId);
if (!$dealData->getId()) {
return false;
}

$percent = $this->helperData->checkDealConfigurableProduct($productId)
? $this->block->getMaxPercent($productId)
: $this->block->getPercentDiscount($productId);
$discountLabels = $this->block->getLabel($percent);
$dealData->setDiscountLabel($discountLabels);
$dealData->setRemainingTime($this->helperData->getRemainTime($dealData));

$extensionAttributes = $entity->getExtensionAttributes();
if ($extensionAttributes !== null) {
//$extensionAttributes->setMpDailydeal($dealData);
}


$entity->setExtensionAttributes($extensionAttributes);

return $entity;
}
}