Run WooCommerce Customers list sync on settings change

[MAILPOET-2079]
This commit is contained in:
Ján Mikláš
2019-05-21 15:03:03 +02:00
committed by M. Shull
parent 54527ecfb4
commit 1b3f29eaf1

View File

@ -7,6 +7,7 @@ use MailPoet\API\JSON\Endpoint as APIEndpoint;
use MailPoet\API\JSON\Error as APIError;
use MailPoet\Config\AccessControl;
use MailPoet\Cron\Workers\InactiveSubscribers;
use MailPoet\Cron\Workers\WooCommerceSync;
use MailPoet\Models\ScheduledTask;
use MailPoet\Services\Bridge;
use MailPoet\Settings\SettingsController;
@ -66,6 +67,31 @@ class Settings extends APIEndpoint {
if ($old_inactivation_interval !== $new_inactivation_interval) {
$this->onInactiveSubscribersIntervalChange();
}
// Sync WooCommerce Customers list
$old_subscribe_old_woocommerce_customers = isset($old_settings['mailpoet_subscribe_old_woocommerce_customers']['enabled'])
? $old_settings['mailpoet_subscribe_old_woocommerce_customers']['enabled']
: '0';
$new_subscribe_old_woocommerce_customers = isset($new_settings['mailpoet_subscribe_old_woocommerce_customers']['enabled'])
? $new_settings['mailpoet_subscribe_old_woocommerce_customers']['enabled']
: '0';
if ($old_subscribe_old_woocommerce_customers !== $new_subscribe_old_woocommerce_customers) {
$this->onSubscribeOldWoocommerceCustomersChange();
}
}
private function onSubscribeOldWoocommerceCustomersChange() {
$task = ScheduledTask::where('type', WooCommerceSync::TASK_TYPE)
->whereRaw('status = ?', [ScheduledTask::STATUS_SCHEDULED])
->findOne();
if (!$task) {
$task = ScheduledTask::create();
$task->type = WooCommerceSync::TASK_TYPE;
$task->status = ScheduledTask::STATUS_SCHEDULED;
}
$datetime = Carbon::createFromTimestamp(WPFunctions::get()->currentTime('timestamp'));
$task->scheduled_at = $datetime->subMinute();
$task->save();
}
private function onInactiveSubscribersIntervalChange() {