|
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 |
Size | 3.77 kb |
Permission | rwxrwxrwx |
Owner | root : root |
Create time | 17-Aug-2025 10:26 |
Last modified | 16-Apr-2021 07:23 |
Last accessed | 23-Aug-2025 02:07 |
Actions | edit | rename | delete | download (gzip) |
View | text | 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;
}
}
/**
* 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;
}
}