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 / MageWorx / GiftCards / Observer /
Filename/home/dev2.destoffenstraat.com/app/code/MageWorx/GiftCards/Observer/SendExpirationAlertEmails.php
Size2.38 kb
Permissionrwxrwxrwx
Ownerroot : root
Create time17-Aug-2025 10:26
Last modified13-May-2022 10:39
Last accessed21-Aug-2025 22:38
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
<?php
/**
* Copyright © MageWorx. All rights reserved.
* See LICENSE.txt for license details.
*/

namespace MageWorx\GiftCards\Observer;

use Magento\Framework\Event\ObserverInterface;
use MageWorx\GiftCards\Model\GiftCards;

class SendExpirationAlertEmails implements ObserverInterface
{
/**
* @var \MageWorx\GiftCards\Model\ResourceModel\GiftCards\CollectionFactory
*/
protected $giftcardsCollection;

/**
* @var \MageWorx\GiftCards\Model\GiftCardsFactory
*/
protected $giftCardsFactory;

/**
* @var \MageWorx\GiftCards\Helper\Data
*/
protected $helper;

/**
* SendExpirationAlertEmails constructor.
*
* @param \MageWorx\GiftCards\Model\ResourceModel\GiftCards\CollectionFactory $giftcardsCollection
* @param \MageWorx\GiftCards\Model\GiftCardsFactory $giftCardsFactory
* @param \MageWorx\GiftCards\Helper\Data $helper
*/
public function __construct(
\MageWorx\GiftCards\Model\ResourceModel\GiftCards\CollectionFactory $giftcardsCollection,
\MageWorx\GiftCards\Model\GiftCardsFactory $giftCardsFactory,
\MageWorx\GiftCards\Helper\Data $helper
) {
$this->giftcardsCollection = $giftcardsCollection;
$this->giftCardsFactory = $giftCardsFactory;
$this->helper = $helper;
}

/**
* @param \Magento\Framework\Event\Observer $observer
*/
public function execute(\Magento\Framework\Event\Observer $observer)
{
$cards = $this->giftcardsCollection->create()
->addFieldToFilter('expiration_alert_email_send', 0)
->addFieldToFilter('card_balance', ['gt' => 0])
->addFieldToFilter('card_status', ['nin' => [GiftCards::STATUS_USED]])
->load();

foreach ($cards as $card) {
$model = $this->giftCardsFactory->create();
$model->load($card->getId());

if ($this->helper->getAlertDays() && $model->getExpireDate()) {
if ($this->helper->calculateExpireIn($model->getExpireDate()) <= $this->helper->getAlertDays()) {
$model->sendCardExpirationAlert();
$model->setExpirationAlertEmailSend(true);
$model->save();
}
}
}
}
}