Update last announcement date automatically
This commit is contained in:
committed by
M. Shull
parent
2fe193d5d9
commit
d980f9e3f4
@@ -706,10 +706,11 @@ class Menu {
|
|||||||
|
|
||||||
$user_id = $data['current_wp_user']['ID'];
|
$user_id = $data['current_wp_user']['ID'];
|
||||||
|
|
||||||
|
$last_announcement_date = $this->settings->get('last_announcement_date');
|
||||||
$last_announcement_seen = $this->user_flags->get('last_announcement_seen');
|
$last_announcement_seen = $this->user_flags->get('last_announcement_seen');
|
||||||
$data['feature_announcement_has_news'] = (
|
$data['feature_announcement_has_news'] = (
|
||||||
empty($last_announcement_seen) ||
|
empty($last_announcement_seen) ||
|
||||||
$last_announcement_seen < strtotime(self::LAST_ANNOUNCEMENT_DATE)
|
$last_announcement_seen < $last_announcement_date
|
||||||
);
|
);
|
||||||
$data['last_announcement_seen'] = $last_announcement_seen;
|
$data['last_announcement_seen'] = $last_announcement_seen;
|
||||||
|
|
||||||
|
@@ -5,6 +5,7 @@ use Carbon\Carbon;
|
|||||||
use MailPoet\Config\PopulatorData\DefaultForm;
|
use MailPoet\Config\PopulatorData\DefaultForm;
|
||||||
use MailPoet\Cron\CronTrigger;
|
use MailPoet\Cron\CronTrigger;
|
||||||
use MailPoet\Cron\Workers\AuthorizedSendingEmailsCheck;
|
use MailPoet\Cron\Workers\AuthorizedSendingEmailsCheck;
|
||||||
|
use MailPoet\Cron\Workers\Beamer;
|
||||||
use MailPoet\Cron\Workers\InactiveSubscribers;
|
use MailPoet\Cron\Workers\InactiveSubscribers;
|
||||||
use MailPoet\Mailer\MailerLog;
|
use MailPoet\Mailer\MailerLog;
|
||||||
use MailPoet\Models\NewsletterTemplate;
|
use MailPoet\Models\NewsletterTemplate;
|
||||||
@@ -139,6 +140,7 @@ class Populator {
|
|||||||
$this->updateMetaFields();
|
$this->updateMetaFields();
|
||||||
$this->scheduleInitialInactiveSubscribersCheck();
|
$this->scheduleInitialInactiveSubscribersCheck();
|
||||||
$this->scheduleAuthorizedSendingEmailsCheck();
|
$this->scheduleAuthorizedSendingEmailsCheck();
|
||||||
|
$this->initLastAnnouncementDate();
|
||||||
// Will be uncommented on task [MAILPOET-1998]
|
// Will be uncommented on task [MAILPOET-1998]
|
||||||
// $this->updateFormsSuccessMessages();
|
// $this->updateFormsSuccessMessages();
|
||||||
}
|
}
|
||||||
@@ -549,6 +551,13 @@ class Populator {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function initLastAnnouncementDate() {
|
||||||
|
if (!$this->settings->get('last_announcement_date')) {
|
||||||
|
$beamer = new Beamer($this->settings);
|
||||||
|
$beamer->setLastAnnouncementDate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private function scheduleTask($type, $datetime) {
|
private function scheduleTask($type, $datetime) {
|
||||||
$task = ScheduledTask::where('type', $type)
|
$task = ScheduledTask::where('type', $type)
|
||||||
->whereRaw('status = ? OR status IS NULL', [ScheduledTask::STATUS_SCHEDULED])
|
->whereRaw('status = ? OR status IS NULL', [ScheduledTask::STATUS_SCHEDULED])
|
||||||
|
@@ -17,6 +17,7 @@ use MailPoet\Cron\Workers\KeyCheck\PremiumKeyCheck as PremiumKeyCheckWorker;
|
|||||||
use MailPoet\Cron\Workers\StatsNotifications\Worker as StatsNotificationsWorker;
|
use MailPoet\Cron\Workers\StatsNotifications\Worker as StatsNotificationsWorker;
|
||||||
use MailPoet\Cron\Workers\KeyCheck\SendingServiceKeyCheck as SendingServiceKeyCheckWorker;
|
use MailPoet\Cron\Workers\KeyCheck\SendingServiceKeyCheck as SendingServiceKeyCheckWorker;
|
||||||
use MailPoet\Cron\Workers\WooCommerceSync as WooCommerceSyncWorker;
|
use MailPoet\Cron\Workers\WooCommerceSync as WooCommerceSyncWorker;
|
||||||
|
use MailPoet\Cron\Workers\Beamer as BeamerWorker;
|
||||||
|
|
||||||
if (!defined('ABSPATH')) exit;
|
if (!defined('ABSPATH')) exit;
|
||||||
|
|
||||||
@@ -111,6 +112,17 @@ class WordPress {
|
|||||||
'scheduled_in' => [self::SCHEDULED_IN_THE_PAST],
|
'scheduled_in' => [self::SCHEDULED_IN_THE_PAST],
|
||||||
'status' => ['null', ScheduledTask::STATUS_SCHEDULED],
|
'status' => ['null', ScheduledTask::STATUS_SCHEDULED],
|
||||||
]);
|
]);
|
||||||
|
// Beamer
|
||||||
|
$beamer_due_checks = self::getTasksCount([
|
||||||
|
'type' => BeamerWorker::TASK_TYPE,
|
||||||
|
'scheduled_in' => [self::SCHEDULED_IN_THE_PAST],
|
||||||
|
'status' => ['null', ScheduledTask::STATUS_SCHEDULED],
|
||||||
|
]);
|
||||||
|
$beamer_future_checks = self::getTasksCount([
|
||||||
|
'type' => BeamerWorker::TASK_TYPE,
|
||||||
|
'scheduled_in' => [self::SCHEDULED_IN_THE_FUTURE],
|
||||||
|
'status' => [ScheduledTask::STATUS_SCHEDULED],
|
||||||
|
]);
|
||||||
|
|
||||||
// Authorized email addresses check
|
// Authorized email addresses check
|
||||||
$authorized_email_addresses_tasks = self::getTasksCount([
|
$authorized_email_addresses_tasks = self::getTasksCount([
|
||||||
@@ -125,6 +137,7 @@ class WordPress {
|
|||||||
$sending_service_key_check_active = ($mp_sending_enabled && ($msskeycheck_due_tasks || !$msskeycheck_future_tasks));
|
$sending_service_key_check_active = ($mp_sending_enabled && ($msskeycheck_due_tasks || !$msskeycheck_future_tasks));
|
||||||
$premium_key_check_active = ($premium_key_specified && ($premium_keycheck_due_tasks || !$premium_keycheck_future_tasks));
|
$premium_key_check_active = ($premium_key_specified && ($premium_keycheck_due_tasks || !$premium_keycheck_future_tasks));
|
||||||
$migration_active = !$migration_disabled && ($migration_due_tasks || (!$migration_completed_tasks && !$migration_future_tasks));
|
$migration_active = !$migration_disabled && ($migration_due_tasks || (!$migration_completed_tasks && !$migration_future_tasks));
|
||||||
|
$beamer_active = $beamer_due_checks || !$beamer_future_checks;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
$migration_active
|
$migration_active
|
||||||
@@ -136,6 +149,7 @@ class WordPress {
|
|||||||
|| $inactive_subscribers_tasks
|
|| $inactive_subscribers_tasks
|
||||||
|| $woo_commerce_sync_tasks
|
|| $woo_commerce_sync_tasks
|
||||||
|| $authorized_email_addresses_tasks
|
|| $authorized_email_addresses_tasks
|
||||||
|
|| $beamer_active
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -6,11 +6,13 @@ use MailPoet\Models\ScheduledTask;
|
|||||||
use MailPoet\Cron\Workers\SimpleWorker;
|
use MailPoet\Cron\Workers\SimpleWorker;
|
||||||
use MailPoet\Settings\SettingsController;
|
use MailPoet\Settings\SettingsController;
|
||||||
use MailPoet\WP\Functions as WPFunctions;
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
|
use function GuzzleHttp\json_decode;
|
||||||
|
|
||||||
if (!defined('ABSPATH')) exit;
|
if (!defined('ABSPATH')) exit;
|
||||||
|
|
||||||
class Beamer extends SimpleWorker {
|
class Beamer extends SimpleWorker {
|
||||||
const TASK_TYPE = 'beamer';
|
const TASK_TYPE = 'beamer';
|
||||||
|
const API_KEY = 'b_neUUX8kIYVEYZqQzSnwhmVggVLA6lT+GzDQOW7hrP38=';
|
||||||
|
|
||||||
/** @var SettingsController */
|
/** @var SettingsController */
|
||||||
private $settings;
|
private $settings;
|
||||||
@@ -21,14 +23,26 @@ class Beamer extends SimpleWorker {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function processTaskStrategy(ScheduledTask $task) {
|
function processTaskStrategy(ScheduledTask $task) {
|
||||||
$this->settings->set('last_announcement_date', 'timestamp');
|
return $this->setLastAnnouncementDate();
|
||||||
|
}
|
||||||
|
|
||||||
|
function setLastAnnouncementDate() {
|
||||||
|
$wp = new WPFunctions();
|
||||||
|
$response = $wp->wpRemoteGet('https://api.getbeamer.com/v0/posts?published=true&maxResults=1', [
|
||||||
|
'headers' => [
|
||||||
|
'Beamer-Api-Key' => self::API_KEY,
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
$posts = $wp->wpRemoteRetrieveBody($response);
|
||||||
|
if (empty($posts)) return false;
|
||||||
|
$posts = json_decode($posts);
|
||||||
|
$this->settings->set('last_announcement_date', Carbon::createFromTimeString($posts[0]->date)->getTimestamp());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// static function getNextRunDate() {
|
static function getNextRunDate() {
|
||||||
// $wp = new WPFunctions();
|
$wp = new WPFunctions();
|
||||||
// $date = Carbon::createFromTimestamp($wp->currentTime('timestamp'));
|
$date = Carbon::createFromTimestamp($wp->currentTime('timestamp'));
|
||||||
// return $date->addMinute();
|
return $date->hour(11)->minute(00)->second(00)->addDay();
|
||||||
// // return $date->hour(11)->minute(00)->second(00)->addDay();
|
}
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
@@ -136,7 +136,7 @@ class WorkersFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** @return Beamer */
|
/** @return Beamer */
|
||||||
function createBeamerWorker($timer) {
|
function createBeamerkWorker($timer) {
|
||||||
return new Beamer($this->settings, $timer);
|
return new Beamer($this->settings, $timer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user