Use WordPress current_time for setting lats engagement
[MAILPOET-3762]
This commit is contained in:
committed by
Veljko V
parent
a6b58e501a
commit
eae0072f24
@@ -18,6 +18,9 @@ use MailPoetVendor\Doctrine\ORM\Query\Expr\Join;
|
||||
* @extends Repository<SubscriberEntity>
|
||||
*/
|
||||
class SubscribersRepository extends Repository {
|
||||
/** @var WPFunctions */
|
||||
private $wp;
|
||||
|
||||
protected $ignoreColumnsForUpdate = [
|
||||
'wp_user_id',
|
||||
'is_woocommerce_user',
|
||||
@@ -26,6 +29,11 @@ class SubscribersRepository extends Repository {
|
||||
'last_subscribed_at',
|
||||
];
|
||||
|
||||
public function __construct(EntityManager $entityManager, WPFunctions $wp) {
|
||||
$this->wp = $wp;
|
||||
parent::__construct($entityManager);
|
||||
}
|
||||
|
||||
protected function getEntityClassName() {
|
||||
return SubscriberEntity::class;
|
||||
}
|
||||
@@ -312,12 +320,13 @@ class SubscribersRepository extends Repository {
|
||||
if ($userAgent instanceof UserAgentEntity && $userAgent->getUserAgentType() === UserAgentEntity::USER_AGENT_TYPE_MACHINE) {
|
||||
return;
|
||||
}
|
||||
$now = Carbon::createFromTimestamp((int)$this->wp->currentTime('timestamp'));
|
||||
// Do not update engagement if was recently updated to avoid unnecessary updates in DB
|
||||
if ($subscriberEntity->getLastEngagementAt() && $subscriberEntity->getLastEngagementAt() > Carbon::now()->subMinute()) {
|
||||
if ($subscriberEntity->getLastEngagementAt() && $subscriberEntity->getLastEngagementAt() > $now->subMinute()) {
|
||||
return;
|
||||
}
|
||||
// Update last engagement for human (and also unknown) user agent
|
||||
$subscriberEntity->setLastEngagementAt(Carbon::now());
|
||||
$subscriberEntity->setLastEngagementAt($now);
|
||||
$this->flush();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user