Version Description
- 2018-03-20 =
- Fixed: prevents sending from being paused for long time during plugin update. Big thanks to Deborah, Kelley, Ciro and Justin!
Download this release
Release Info
| Developer | wysija |
| Plugin | |
| Version | 3.6.1 |
| Comparing to | |
| See all releases | |
Code changes from version 3.6.0 to 3.6.1
- lang/mailpoet-ca.mo +0 -0
- lang/mailpoet-da_DK.mo +0 -0
- lang/mailpoet-de_DE.mo +0 -0
- lang/mailpoet-es_ES.mo +0 -0
- lang/mailpoet-fa_IR.mo +0 -0
- lang/mailpoet-fr_CA.mo +0 -0
- lang/mailpoet-fr_FR.mo +0 -0
- lang/mailpoet-it_IT.mo +0 -0
- lang/mailpoet-ja.mo +0 -0
- lang/mailpoet-nl_NL.mo +0 -0
- lang/mailpoet-pl_PL.mo +0 -0
- lang/mailpoet-pt_BR.mo +0 -0
- lang/mailpoet-pt_PT.mo +0 -0
- lang/mailpoet-ru_RU.mo +0 -0
- lang/mailpoet-sq.mo +0 -0
- lang/mailpoet-sv_SE.mo +0 -0
- lang/mailpoet-tr_TR.mo +0 -0
- lang/mailpoet.pot +32 -32
- lib/API/JSON/v1/Newsletters.php +3 -2
- lib/Config/Menu.php +2 -1
- lib/Cron/Workers/Scheduler.php +3 -2
- lib/Cron/Workers/SendingQueue/Migration.php +2 -1
- lib/Cron/Workers/SimpleWorker.php +7 -5
- lib/Models/ScheduledTask.php +4 -1
- lib/Newsletter/Scheduler/Scheduler.php +5 -3
- lib/Newsletter/Shortcodes/Categories/Date.php +4 -2
- lib/Tasks/Sending.php +3 -1
- lib/WP/DateTime.php +4 -1
- lib/WP/Functions.php +4 -0
- mailpoet.php +2 -2
- readme.txt +4 -1
- vendor/autoload.php +1 -1
- vendor/composer/autoload_real.php +7 -7
- vendor/composer/autoload_static.php +5 -5
lang/mailpoet-ca.mo
CHANGED
|
Binary file
|
lang/mailpoet-da_DK.mo
CHANGED
|
Binary file
|
lang/mailpoet-de_DE.mo
CHANGED
|
Binary file
|
lang/mailpoet-es_ES.mo
CHANGED
|
Binary file
|
lang/mailpoet-fa_IR.mo
CHANGED
|
Binary file
|
lang/mailpoet-fr_CA.mo
CHANGED
|
Binary file
|
lang/mailpoet-fr_FR.mo
CHANGED
|
Binary file
|
lang/mailpoet-it_IT.mo
CHANGED
|
Binary file
|
lang/mailpoet-ja.mo
CHANGED
|
Binary file
|
lang/mailpoet-nl_NL.mo
CHANGED
|
Binary file
|
lang/mailpoet-pl_PL.mo
CHANGED
|
Binary file
|
lang/mailpoet-pt_BR.mo
CHANGED
|
Binary file
|
lang/mailpoet-pt_PT.mo
CHANGED
|
Binary file
|
lang/mailpoet-ru_RU.mo
CHANGED
|
Binary file
|
lang/mailpoet-sq.mo
CHANGED
|
Binary file
|
lang/mailpoet-sv_SE.mo
CHANGED
|
Binary file
|
lang/mailpoet-tr_TR.mo
CHANGED
|
Binary file
|
lang/mailpoet.pot
CHANGED
|
@@ -4,7 +4,7 @@ msgid ""
|
|
| 4 |
msgstr ""
|
| 5 |
"Project-Id-Version: \n"
|
| 6 |
"Report-Msgid-Bugs-To: http://support.mailpoet.com/\n"
|
| 7 |
-
"POT-Creation-Date: 2018-03-20
|
| 8 |
"MIME-Version: 1.0\n"
|
| 9 |
"Content-Type: text/plain; charset=utf-8\n"
|
| 10 |
"Content-Transfer-Encoding: 8bit\n"
|
|
@@ -93,12 +93,12 @@ msgstr ""
|
|
| 93 |
msgid "Check your inbox or spam folder to confirm your subscription."
|
| 94 |
msgstr ""
|
| 95 |
|
| 96 |
-
#: lib/API/JSON/v1/Forms.php:265 lib/API/JSON/v1/Newsletters.php:
|
| 97 |
#: lib/API/JSON/v1/Segments.php:125
|
| 98 |
msgid "Copy of %s"
|
| 99 |
msgstr ""
|
| 100 |
|
| 101 |
-
#: lib/API/JSON/v1/Mailer.php:36 lib/API/JSON/v1/Newsletters.php:
|
| 102 |
msgid "The email could not be sent: %s"
|
| 103 |
msgstr ""
|
| 104 |
|
|
@@ -107,24 +107,24 @@ msgstr ""
|
|
| 107 |
msgid "This template does not exist."
|
| 108 |
msgstr ""
|
| 109 |
|
| 110 |
-
#: lib/API/JSON/v1/Newsletters.php:
|
| 111 |
-
#: lib/API/JSON/v1/Newsletters.php:
|
| 112 |
-
#: lib/API/JSON/v1/Newsletters.php:
|
| 113 |
-
#: lib/API/JSON/v1/Newsletters.php:
|
| 114 |
#: lib/API/JSON/v1/SendingQueue.php:35 lib/API/JSON/v1/SendingQueue.php:116
|
| 115 |
#: lib/API/JSON/v1/SendingQueue.php:142
|
| 116 |
msgid "This newsletter does not exist."
|
| 117 |
msgstr ""
|
| 118 |
|
| 119 |
-
#: lib/API/JSON/v1/Newsletters.php:
|
| 120 |
msgid "You need to specify a status."
|
| 121 |
msgstr ""
|
| 122 |
|
| 123 |
-
#: lib/API/JSON/v1/Newsletters.php:
|
| 124 |
msgid "Newsletter data is missing."
|
| 125 |
msgstr ""
|
| 126 |
|
| 127 |
-
#: lib/API/JSON/v1/Newsletters.php:
|
| 128 |
msgid "Please specify receiver information."
|
| 129 |
msgstr ""
|
| 130 |
|
|
@@ -299,7 +299,7 @@ msgstr ""
|
|
| 299 |
msgid "Manage segments"
|
| 300 |
msgstr ""
|
| 301 |
|
| 302 |
-
#: lib/Config/Capabilities.php:67 lib/Config/Menu.php:
|
| 303 |
msgid "MailPoet"
|
| 304 |
msgstr ""
|
| 305 |
|
|
@@ -400,80 +400,80 @@ msgstr[1] ""
|
|
| 400 |
msgid "Settings imported"
|
| 401 |
msgstr ""
|
| 402 |
|
| 403 |
-
#: lib/Config/Menu.php:
|
| 404 |
msgid "Emails"
|
| 405 |
msgstr ""
|
| 406 |
|
| 407 |
-
#: lib/Config/Menu.php:
|
| 408 |
#: views/newsletter/templates/components/sidebar/styles.hbs:75
|
| 409 |
#: views/newsletters.html:126
|
| 410 |
msgid "Newsletter"
|
| 411 |
msgstr ""
|
| 412 |
|
| 413 |
-
#: lib/Config/Menu.php:
|
| 414 |
msgid "Newsletter Editor"
|
| 415 |
msgstr ""
|
| 416 |
|
| 417 |
-
#: lib/Config/Menu.php:
|
| 418 |
#: views/mp2migration.html:14
|
| 419 |
msgid "Forms"
|
| 420 |
msgstr ""
|
| 421 |
|
| 422 |
-
#: lib/Config/Menu.php:
|
| 423 |
msgid "Form Editor"
|
| 424 |
msgstr ""
|
| 425 |
|
| 426 |
-
#: lib/Config/Menu.php:
|
| 427 |
#: views/subscribers/subscribers.html:18
|
| 428 |
msgid "Subscribers"
|
| 429 |
msgstr ""
|
| 430 |
|
| 431 |
-
#: lib/Config/Menu.php:
|
| 432 |
#: views/subscribers/importExport/import.html:7
|
| 433 |
#: views/subscribers/subscribers.html:95
|
| 434 |
msgid "Import"
|
| 435 |
msgstr ""
|
| 436 |
|
| 437 |
-
#: lib/Config/Menu.php:
|
| 438 |
#: views/subscribers/importExport/export.html:6
|
| 439 |
#: views/subscribers/importExport/export.html:82
|
| 440 |
#: views/subscribers/subscribers.html:96
|
| 441 |
msgid "Export"
|
| 442 |
msgstr ""
|
| 443 |
|
| 444 |
-
#: lib/Config/Menu.php:
|
| 445 |
#: views/newsletters.html:69 views/newsletters.html:171 views/segments.html:13
|
| 446 |
#: views/subscribers/subscribers.html:67
|
| 447 |
msgid "Lists"
|
| 448 |
msgstr ""
|
| 449 |
|
| 450 |
-
#: lib/Config/Menu.php:
|
| 451 |
#: views/mp2migration.html:15 views/newsletters.html:70 views/settings.html:6
|
| 452 |
msgid "Settings"
|
| 453 |
msgstr ""
|
| 454 |
|
| 455 |
-
#: lib/Config/Menu.php:
|
| 456 |
msgid "Help"
|
| 457 |
msgstr ""
|
| 458 |
|
| 459 |
-
#: lib/Config/Menu.php:
|
| 460 |
msgid "Premium"
|
| 461 |
msgstr ""
|
| 462 |
|
| 463 |
-
#: lib/Config/Menu.php:
|
| 464 |
#: views/welcome.html:12
|
| 465 |
msgid "Welcome"
|
| 466 |
msgstr ""
|
| 467 |
|
| 468 |
-
#: lib/Config/Menu.php:
|
| 469 |
msgid "Update"
|
| 470 |
msgstr ""
|
| 471 |
|
| 472 |
-
#: lib/Config/Menu.php:
|
| 473 |
msgid "Migration"
|
| 474 |
msgstr ""
|
| 475 |
|
| 476 |
-
#: lib/Config/Menu.php:
|
| 477 |
msgid "In any WordPress role"
|
| 478 |
msgstr ""
|
| 479 |
|
|
@@ -1097,7 +1097,7 @@ msgstr ""
|
|
| 1097 |
msgid "Daemon does not exist."
|
| 1098 |
msgstr ""
|
| 1099 |
|
| 1100 |
-
#: lib/Cron/Workers/SendingQueue/Migration.php:
|
| 1101 |
msgid ""
|
| 1102 |
"Your sending queue data is being migrated to allow better performance, "
|
| 1103 |
"sending is paused while the migration is in progress and will resume "
|
|
@@ -5504,22 +5504,22 @@ msgctxt "Error code (inside parentheses)"
|
|
| 5504 |
msgid "code: %s"
|
| 5505 |
msgstr ""
|
| 5506 |
|
| 5507 |
-
#: lib/Config/Menu.php:
|
| 5508 |
msgctxt "newsletters per page (screen options)"
|
| 5509 |
msgid "Number of newsletters per page"
|
| 5510 |
msgstr ""
|
| 5511 |
|
| 5512 |
-
#: lib/Config/Menu.php:
|
| 5513 |
msgctxt "forms per page (screen options)"
|
| 5514 |
msgid "Number of forms per page"
|
| 5515 |
msgstr ""
|
| 5516 |
|
| 5517 |
-
#: lib/Config/Menu.php:
|
| 5518 |
msgctxt "subscribers per page (screen options)"
|
| 5519 |
msgid "Number of subscribers per page"
|
| 5520 |
msgstr ""
|
| 5521 |
|
| 5522 |
-
#: lib/Config/Menu.php:
|
| 5523 |
msgctxt "segments per page (screen options)"
|
| 5524 |
msgid "Number of segments per page"
|
| 5525 |
msgstr ""
|
| 4 |
msgstr ""
|
| 5 |
"Project-Id-Version: \n"
|
| 6 |
"Report-Msgid-Bugs-To: http://support.mailpoet.com/\n"
|
| 7 |
+
"POT-Creation-Date: 2018-03-20 21:15:48+00:00\n"
|
| 8 |
"MIME-Version: 1.0\n"
|
| 9 |
"Content-Type: text/plain; charset=utf-8\n"
|
| 10 |
"Content-Transfer-Encoding: 8bit\n"
|
| 93 |
msgid "Check your inbox or spam folder to confirm your subscription."
|
| 94 |
msgstr ""
|
| 95 |
|
| 96 |
+
#: lib/API/JSON/v1/Forms.php:265 lib/API/JSON/v1/Newsletters.php:241
|
| 97 |
#: lib/API/JSON/v1/Segments.php:125
|
| 98 |
msgid "Copy of %s"
|
| 99 |
msgstr ""
|
| 100 |
|
| 101 |
+
#: lib/API/JSON/v1/Mailer.php:36 lib/API/JSON/v1/Newsletters.php:345
|
| 102 |
msgid "The email could not be sent: %s"
|
| 103 |
msgstr ""
|
| 104 |
|
| 107 |
msgid "This template does not exist."
|
| 108 |
msgstr ""
|
| 109 |
|
| 110 |
+
#: lib/API/JSON/v1/Newsletters.php:38 lib/API/JSON/v1/Newsletters.php:156
|
| 111 |
+
#: lib/API/JSON/v1/Newsletters.php:191 lib/API/JSON/v1/Newsletters.php:207
|
| 112 |
+
#: lib/API/JSON/v1/Newsletters.php:223 lib/API/JSON/v1/Newsletters.php:237
|
| 113 |
+
#: lib/API/JSON/v1/Newsletters.php:270 lib/API/JSON/v1/Newsletters.php:303
|
| 114 |
#: lib/API/JSON/v1/SendingQueue.php:35 lib/API/JSON/v1/SendingQueue.php:116
|
| 115 |
#: lib/API/JSON/v1/SendingQueue.php:142
|
| 116 |
msgid "This newsletter does not exist."
|
| 117 |
msgstr ""
|
| 118 |
|
| 119 |
+
#: lib/API/JSON/v1/Newsletters.php:147
|
| 120 |
msgid "You need to specify a status."
|
| 121 |
msgstr ""
|
| 122 |
|
| 123 |
+
#: lib/API/JSON/v1/Newsletters.php:261
|
| 124 |
msgid "Newsletter data is missing."
|
| 125 |
msgstr ""
|
| 126 |
|
| 127 |
+
#: lib/API/JSON/v1/Newsletters.php:294
|
| 128 |
msgid "Please specify receiver information."
|
| 129 |
msgstr ""
|
| 130 |
|
| 299 |
msgid "Manage segments"
|
| 300 |
msgstr ""
|
| 301 |
|
| 302 |
+
#: lib/Config/Capabilities.php:67 lib/Config/Menu.php:646 views/premium.html:41
|
| 303 |
msgid "MailPoet"
|
| 304 |
msgstr ""
|
| 305 |
|
| 400 |
msgid "Settings imported"
|
| 401 |
msgstr ""
|
| 402 |
|
| 403 |
+
#: lib/Config/Menu.php:87 lib/Config/Menu.php:88 views/newsletters.html:25
|
| 404 |
msgid "Emails"
|
| 405 |
msgstr ""
|
| 406 |
|
| 407 |
+
#: lib/Config/Menu.php:112 lib/Newsletter/Shortcodes/ShortcodesHelper.php:33
|
| 408 |
#: views/newsletter/templates/components/sidebar/styles.hbs:75
|
| 409 |
#: views/newsletters.html:126
|
| 410 |
msgid "Newsletter"
|
| 411 |
msgstr ""
|
| 412 |
|
| 413 |
+
#: lib/Config/Menu.php:113 views/newsletter/editor.html:228
|
| 414 |
msgid "Newsletter Editor"
|
| 415 |
msgstr ""
|
| 416 |
|
| 417 |
+
#: lib/Config/Menu.php:125 lib/Config/Menu.php:126 views/forms.html:25
|
| 418 |
#: views/mp2migration.html:14
|
| 419 |
msgid "Forms"
|
| 420 |
msgstr ""
|
| 421 |
|
| 422 |
+
#: lib/Config/Menu.php:150 lib/Config/Menu.php:151
|
| 423 |
msgid "Form Editor"
|
| 424 |
msgstr ""
|
| 425 |
|
| 426 |
+
#: lib/Config/Menu.php:163 lib/Config/Menu.php:164
|
| 427 |
#: views/subscribers/subscribers.html:18
|
| 428 |
msgid "Subscribers"
|
| 429 |
msgstr ""
|
| 430 |
|
| 431 |
+
#: lib/Config/Menu.php:188 lib/Config/Menu.php:189
|
| 432 |
#: views/subscribers/importExport/import.html:7
|
| 433 |
#: views/subscribers/subscribers.html:95
|
| 434 |
msgid "Import"
|
| 435 |
msgstr ""
|
| 436 |
|
| 437 |
+
#: lib/Config/Menu.php:201 lib/Config/Menu.php:202
|
| 438 |
#: views/subscribers/importExport/export.html:6
|
| 439 |
#: views/subscribers/importExport/export.html:82
|
| 440 |
#: views/subscribers/subscribers.html:96
|
| 441 |
msgid "Export"
|
| 442 |
msgstr ""
|
| 443 |
|
| 444 |
+
#: lib/Config/Menu.php:214 lib/Config/Menu.php:215 views/forms.html:53
|
| 445 |
#: views/newsletters.html:69 views/newsletters.html:171 views/segments.html:13
|
| 446 |
#: views/subscribers/subscribers.html:67
|
| 447 |
msgid "Lists"
|
| 448 |
msgstr ""
|
| 449 |
|
| 450 |
+
#: lib/Config/Menu.php:241 lib/Config/Menu.php:242 views/form/editor.html:37
|
| 451 |
#: views/mp2migration.html:15 views/newsletters.html:70 views/settings.html:6
|
| 452 |
msgid "Settings"
|
| 453 |
msgstr ""
|
| 454 |
|
| 455 |
+
#: lib/Config/Menu.php:254 lib/Config/Menu.php:255 views/help.html:5
|
| 456 |
msgid "Help"
|
| 457 |
msgstr ""
|
| 458 |
|
| 459 |
+
#: lib/Config/Menu.php:268 lib/Config/Menu.php:269
|
| 460 |
msgid "Premium"
|
| 461 |
msgstr ""
|
| 462 |
|
| 463 |
+
#: lib/Config/Menu.php:281 lib/Config/Menu.php:282 views/update.html:12
|
| 464 |
#: views/welcome.html:12
|
| 465 |
msgid "Welcome"
|
| 466 |
msgstr ""
|
| 467 |
|
| 468 |
+
#: lib/Config/Menu.php:294 lib/Config/Menu.php:295 views/segments.html:43
|
| 469 |
msgid "Update"
|
| 470 |
msgstr ""
|
| 471 |
|
| 472 |
+
#: lib/Config/Menu.php:307
|
| 473 |
msgid "Migration"
|
| 474 |
msgstr ""
|
| 475 |
|
| 476 |
+
#: lib/Config/Menu.php:566
|
| 477 |
msgid "In any WordPress role"
|
| 478 |
msgstr ""
|
| 479 |
|
| 1097 |
msgid "Daemon does not exist."
|
| 1098 |
msgstr ""
|
| 1099 |
|
| 1100 |
+
#: lib/Cron/Workers/SendingQueue/Migration.php:57
|
| 1101 |
msgid ""
|
| 1102 |
"Your sending queue data is being migrated to allow better performance, "
|
| 1103 |
"sending is paused while the migration is in progress and will resume "
|
| 5504 |
msgid "code: %s"
|
| 5505 |
msgstr ""
|
| 5506 |
|
| 5507 |
+
#: lib/Config/Menu.php:100
|
| 5508 |
msgctxt "newsletters per page (screen options)"
|
| 5509 |
msgid "Number of newsletters per page"
|
| 5510 |
msgstr ""
|
| 5511 |
|
| 5512 |
+
#: lib/Config/Menu.php:138
|
| 5513 |
msgctxt "forms per page (screen options)"
|
| 5514 |
msgid "Number of forms per page"
|
| 5515 |
msgstr ""
|
| 5516 |
|
| 5517 |
+
#: lib/Config/Menu.php:176
|
| 5518 |
msgctxt "subscribers per page (screen options)"
|
| 5519 |
msgid "Number of subscribers per page"
|
| 5520 |
msgstr ""
|
| 5521 |
|
| 5522 |
+
#: lib/Config/Menu.php:227
|
| 5523 |
msgctxt "segments per page (screen options)"
|
| 5524 |
msgid "Number of segments per page"
|
| 5525 |
msgstr ""
|
lib/API/JSON/v1/Newsletters.php
CHANGED
|
@@ -19,6 +19,7 @@ use MailPoet\Newsletter\Renderer\Renderer;
|
|
| 19 |
use MailPoet\Newsletter\Scheduler\Scheduler;
|
| 20 |
use MailPoet\Newsletter\Url as NewsletterUrl;
|
| 21 |
use MailPoet\WP\Hooks;
|
|
|
|
| 22 |
|
| 23 |
if(!defined('ABSPATH')) exit;
|
| 24 |
|
|
@@ -169,7 +170,7 @@ class Newsletters extends APIEndpoint {
|
|
| 169 |
$queue = $newsletter->queue()->findOne();
|
| 170 |
if($queue) {
|
| 171 |
$queue->task()
|
| 172 |
-
->whereLte('scheduled_at', Carbon::createFromTimestamp(
|
| 173 |
->where('status', SendingQueue::STATUS_SCHEDULED)
|
| 174 |
->findResultSet()
|
| 175 |
->set('scheduled_at', $next_run_date)
|
|
@@ -414,7 +415,7 @@ class Newsletters extends APIEndpoint {
|
|
| 414 |
'groups' => $listing_data['groups'],
|
| 415 |
'mta_log' => Setting::getValue('mta_log'),
|
| 416 |
'mta_method' => Setting::getValue('mta.method'),
|
| 417 |
-
'current_time' =>
|
| 418 |
));
|
| 419 |
}
|
| 420 |
|
| 19 |
use MailPoet\Newsletter\Scheduler\Scheduler;
|
| 20 |
use MailPoet\Newsletter\Url as NewsletterUrl;
|
| 21 |
use MailPoet\WP\Hooks;
|
| 22 |
+
use MailPoet\WP\Functions as WPFunctions;
|
| 23 |
|
| 24 |
if(!defined('ABSPATH')) exit;
|
| 25 |
|
| 170 |
$queue = $newsletter->queue()->findOne();
|
| 171 |
if($queue) {
|
| 172 |
$queue->task()
|
| 173 |
+
->whereLte('scheduled_at', Carbon::createFromTimestamp(WPFunctions::currentTime('timestamp')))
|
| 174 |
->where('status', SendingQueue::STATUS_SCHEDULED)
|
| 175 |
->findResultSet()
|
| 176 |
->set('scheduled_at', $next_run_date)
|
| 415 |
'groups' => $listing_data['groups'],
|
| 416 |
'mta_log' => Setting::getValue('mta_log'),
|
| 417 |
'mta_method' => Setting::getValue('mta.method'),
|
| 418 |
+
'current_time' => WPFunctions::currentTime('mysql')
|
| 419 |
));
|
| 420 |
}
|
| 421 |
|
lib/Config/Menu.php
CHANGED
|
@@ -25,6 +25,7 @@ use MailPoet\Util\License\License;
|
|
| 25 |
use MailPoet\WP\DateTime;
|
| 26 |
use MailPoet\WP\Notice as WPNotice;
|
| 27 |
use MailPoet\WP\Readme;
|
|
|
|
| 28 |
|
| 29 |
if(!defined('ABSPATH')) exit;
|
| 30 |
|
|
@@ -383,7 +384,7 @@ class Menu {
|
|
| 383 |
$data['is_old_user'] = false;
|
| 384 |
if(!empty($data['settings']['installed_at'])) {
|
| 385 |
$installed_at = Carbon::createFromTimestamp(strtotime($data['settings']['installed_at']));
|
| 386 |
-
$current_time =
|
| 387 |
$data['is_new_user'] = $current_time->diffInDays($installed_at) <= 30;
|
| 388 |
$data['is_old_user'] = $current_time->diffInMonths($installed_at) >= 6;
|
| 389 |
$data['stop_call_for_rating'] = isset($data['settings']['stop_call_for_rating']) ? $data['settings']['stop_call_for_rating'] : false;
|
| 25 |
use MailPoet\WP\DateTime;
|
| 26 |
use MailPoet\WP\Notice as WPNotice;
|
| 27 |
use MailPoet\WP\Readme;
|
| 28 |
+
use MailPoet\WP\Functions as WPFunctions;
|
| 29 |
|
| 30 |
if(!defined('ABSPATH')) exit;
|
| 31 |
|
| 384 |
$data['is_old_user'] = false;
|
| 385 |
if(!empty($data['settings']['installed_at'])) {
|
| 386 |
$installed_at = Carbon::createFromTimestamp(strtotime($data['settings']['installed_at']));
|
| 387 |
+
$current_time = Carbon::createFromTimestamp(WPFunctions::currentTime('timestamp'));
|
| 388 |
$data['is_new_user'] = $current_time->diffInDays($installed_at) <= 30;
|
| 389 |
$data['is_old_user'] = $current_time->diffInMonths($installed_at) >= 6;
|
| 390 |
$data['stop_call_for_rating'] = isset($data['settings']['stop_call_for_rating']) ? $data['settings']['stop_call_for_rating'] : false;
|
lib/Cron/Workers/Scheduler.php
CHANGED
|
@@ -1,4 +1,5 @@
|
|
| 1 |
<?php
|
|
|
|
| 2 |
namespace MailPoet\Cron\Workers;
|
| 3 |
|
| 4 |
use Carbon\Carbon;
|
|
@@ -8,8 +9,8 @@ use MailPoet\Models\Subscriber;
|
|
| 8 |
use MailPoet\Models\SubscriberSegment;
|
| 9 |
use MailPoet\Segments\SubscribersFinder;
|
| 10 |
use MailPoet\Tasks\Sending as SendingTask;
|
| 11 |
-
use MailPoet\Util\Helpers;
|
| 12 |
use MailPoet\Newsletter\Scheduler\Scheduler as NewsletterScheduler;
|
|
|
|
| 13 |
|
| 14 |
if(!defined('ABSPATH')) exit;
|
| 15 |
require_once(ABSPATH . 'wp-includes/pluggable.php');
|
|
@@ -125,7 +126,7 @@ class Scheduler {
|
|
| 125 |
// check if subscriber is confirmed (subscribed)
|
| 126 |
if($subscriber->status !== Subscriber::STATUS_SUBSCRIBED) {
|
| 127 |
// reschedule delivery in 5 minutes
|
| 128 |
-
$scheduled_at = Carbon::createFromTimestamp(
|
| 129 |
$queue->scheduled_at = $scheduled_at->addMinutes(
|
| 130 |
self::UNCONFIRMED_SUBSCRIBER_RESCHEDULE_TIMEOUT
|
| 131 |
);
|
| 1 |
<?php
|
| 2 |
+
|
| 3 |
namespace MailPoet\Cron\Workers;
|
| 4 |
|
| 5 |
use Carbon\Carbon;
|
| 9 |
use MailPoet\Models\SubscriberSegment;
|
| 10 |
use MailPoet\Segments\SubscribersFinder;
|
| 11 |
use MailPoet\Tasks\Sending as SendingTask;
|
|
|
|
| 12 |
use MailPoet\Newsletter\Scheduler\Scheduler as NewsletterScheduler;
|
| 13 |
+
use MailPoet\WP\Functions as WPFunctions;
|
| 14 |
|
| 15 |
if(!defined('ABSPATH')) exit;
|
| 16 |
require_once(ABSPATH . 'wp-includes/pluggable.php');
|
| 126 |
// check if subscriber is confirmed (subscribed)
|
| 127 |
if($subscriber->status !== Subscriber::STATUS_SUBSCRIBED) {
|
| 128 |
// reschedule delivery in 5 minutes
|
| 129 |
+
$scheduled_at = Carbon::createFromTimestamp(WPFunctions::currentTime('timestamp'));
|
| 130 |
$queue->scheduled_at = $scheduled_at->addMinutes(
|
| 131 |
self::UNCONFIRMED_SUBSCRIBER_RESCHEDULE_TIMEOUT
|
| 132 |
);
|
lib/Cron/Workers/SendingQueue/Migration.php
CHANGED
|
@@ -8,6 +8,7 @@ use MailPoet\Mailer\MailerLog;
|
|
| 8 |
use MailPoet\Models\ScheduledTask;
|
| 9 |
use MailPoet\Models\ScheduledTaskSubscriber;
|
| 10 |
use MailPoet\Models\SendingQueue;
|
|
|
|
| 11 |
|
| 12 |
if(!defined('ABSPATH')) exit;
|
| 13 |
|
|
@@ -242,6 +243,6 @@ class Migration extends SimpleWorker {
|
|
| 242 |
|
| 243 |
static function getNextRunDate() {
|
| 244 |
// run migration immediately
|
| 245 |
-
return Carbon::
|
| 246 |
}
|
| 247 |
}
|
| 8 |
use MailPoet\Models\ScheduledTask;
|
| 9 |
use MailPoet\Models\ScheduledTaskSubscriber;
|
| 10 |
use MailPoet\Models\SendingQueue;
|
| 11 |
+
use MailPoet\WP\Functions as WPFunctions;
|
| 12 |
|
| 13 |
if(!defined('ABSPATH')) exit;
|
| 14 |
|
| 243 |
|
| 244 |
static function getNextRunDate() {
|
| 245 |
// run migration immediately
|
| 246 |
+
return Carbon::createFromTimestamp(WPFunctions::currentTime('timestamp'));
|
| 247 |
}
|
| 248 |
}
|
lib/Cron/Workers/SimpleWorker.php
CHANGED
|
@@ -1,9 +1,11 @@
|
|
| 1 |
<?php
|
|
|
|
| 2 |
namespace MailPoet\Cron\Workers;
|
| 3 |
|
| 4 |
use Carbon\Carbon;
|
| 5 |
use MailPoet\Cron\CronHelper;
|
| 6 |
use MailPoet\Models\ScheduledTask;
|
|
|
|
| 7 |
|
| 8 |
if(!defined('ABSPATH')) exit;
|
| 9 |
|
|
@@ -94,19 +96,19 @@ abstract class SimpleWorker {
|
|
| 94 |
}
|
| 95 |
|
| 96 |
function complete(ScheduledTask $task) {
|
| 97 |
-
$task->processed_at =
|
| 98 |
$task->status = ScheduledTask::STATUS_COMPLETED;
|
| 99 |
$task->save();
|
| 100 |
}
|
| 101 |
|
| 102 |
function reschedule(ScheduledTask $task, $timeout) {
|
| 103 |
-
$scheduled_at = Carbon::createFromTimestamp(
|
| 104 |
$task->scheduled_at = $scheduled_at->addMinutes($timeout);
|
| 105 |
$task->save();
|
| 106 |
}
|
| 107 |
|
| 108 |
static function getNextRunDate() {
|
| 109 |
-
$date = Carbon::createFromTimestamp(
|
| 110 |
// Random day of the next week
|
| 111 |
$date->setISODate($date->format('o'), $date->format('W') + 1, mt_rand(1, 7));
|
| 112 |
$date->startOfDay();
|
|
@@ -116,7 +118,7 @@ abstract class SimpleWorker {
|
|
| 116 |
static function getScheduledTasks($future = false) {
|
| 117 |
$dateWhere = ($future) ? 'whereGt' : 'whereLte';
|
| 118 |
return ScheduledTask::where('type', static::TASK_TYPE)
|
| 119 |
-
->$dateWhere('scheduled_at', Carbon::createFromTimestamp(
|
| 120 |
->whereNull('deleted_at')
|
| 121 |
->where('status', ScheduledTask::STATUS_SCHEDULED)
|
| 122 |
->findMany();
|
|
@@ -124,7 +126,7 @@ abstract class SimpleWorker {
|
|
| 124 |
|
| 125 |
static function getRunningTasks() {
|
| 126 |
return ScheduledTask::where('type', static::TASK_TYPE)
|
| 127 |
-
->whereLte('scheduled_at', Carbon::createFromTimestamp(
|
| 128 |
->whereNull('deleted_at')
|
| 129 |
->whereNull('status')
|
| 130 |
->findMany();
|
| 1 |
<?php
|
| 2 |
+
|
| 3 |
namespace MailPoet\Cron\Workers;
|
| 4 |
|
| 5 |
use Carbon\Carbon;
|
| 6 |
use MailPoet\Cron\CronHelper;
|
| 7 |
use MailPoet\Models\ScheduledTask;
|
| 8 |
+
use MailPoet\WP\Functions as WPFunctions;
|
| 9 |
|
| 10 |
if(!defined('ABSPATH')) exit;
|
| 11 |
|
| 96 |
}
|
| 97 |
|
| 98 |
function complete(ScheduledTask $task) {
|
| 99 |
+
$task->processed_at = WPFunctions::currentTime('mysql');
|
| 100 |
$task->status = ScheduledTask::STATUS_COMPLETED;
|
| 101 |
$task->save();
|
| 102 |
}
|
| 103 |
|
| 104 |
function reschedule(ScheduledTask $task, $timeout) {
|
| 105 |
+
$scheduled_at = Carbon::createFromTimestamp(WPFunctions::currentTime('timestamp'));
|
| 106 |
$task->scheduled_at = $scheduled_at->addMinutes($timeout);
|
| 107 |
$task->save();
|
| 108 |
}
|
| 109 |
|
| 110 |
static function getNextRunDate() {
|
| 111 |
+
$date = Carbon::createFromTimestamp(WPFunctions::currentTime('timestamp'));
|
| 112 |
// Random day of the next week
|
| 113 |
$date->setISODate($date->format('o'), $date->format('W') + 1, mt_rand(1, 7));
|
| 114 |
$date->startOfDay();
|
| 118 |
static function getScheduledTasks($future = false) {
|
| 119 |
$dateWhere = ($future) ? 'whereGt' : 'whereLte';
|
| 120 |
return ScheduledTask::where('type', static::TASK_TYPE)
|
| 121 |
+
->$dateWhere('scheduled_at', Carbon::createFromTimestamp(WPFunctions::currentTime('timestamp')))
|
| 122 |
->whereNull('deleted_at')
|
| 123 |
->where('status', ScheduledTask::STATUS_SCHEDULED)
|
| 124 |
->findMany();
|
| 126 |
|
| 127 |
static function getRunningTasks() {
|
| 128 |
return ScheduledTask::where('type', static::TASK_TYPE)
|
| 129 |
+
->whereLte('scheduled_at', Carbon::createFromTimestamp(WPFunctions::currentTime('timestamp')))
|
| 130 |
->whereNull('deleted_at')
|
| 131 |
->whereNull('status')
|
| 132 |
->findMany();
|
lib/Models/ScheduledTask.php
CHANGED
|
@@ -1,6 +1,9 @@
|
|
| 1 |
<?php
|
|
|
|
| 2 |
namespace MailPoet\Models;
|
| 3 |
|
|
|
|
|
|
|
| 4 |
if(!defined('ABSPATH')) exit;
|
| 5 |
|
| 6 |
class ScheduledTask extends Model {
|
|
@@ -34,7 +37,7 @@ class ScheduledTask extends Model {
|
|
| 34 |
}
|
| 35 |
|
| 36 |
function complete() {
|
| 37 |
-
$this->processed_at =
|
| 38 |
$this->set('status', self::STATUS_COMPLETED);
|
| 39 |
$this->save();
|
| 40 |
return ($this->getErrors() === false && $this->id() > 0);
|
| 1 |
<?php
|
| 2 |
+
|
| 3 |
namespace MailPoet\Models;
|
| 4 |
|
| 5 |
+
use MailPoet\WP\Functions as WPFunctions;
|
| 6 |
+
|
| 7 |
if(!defined('ABSPATH')) exit;
|
| 8 |
|
| 9 |
class ScheduledTask extends Model {
|
| 37 |
}
|
| 38 |
|
| 39 |
function complete() {
|
| 40 |
+
$this->processed_at = WPFunctions::currentTime('mysql');
|
| 41 |
$this->set('status', self::STATUS_COMPLETED);
|
| 42 |
$this->save();
|
| 43 |
return ($this->getErrors() === false && $this->id() > 0);
|
lib/Newsletter/Scheduler/Scheduler.php
CHANGED
|
@@ -1,4 +1,5 @@
|
|
| 1 |
<?php
|
|
|
|
| 2 |
namespace MailPoet\Newsletter\Scheduler;
|
| 3 |
|
| 4 |
use Carbon\Carbon;
|
|
@@ -8,6 +9,7 @@ use MailPoet\Models\NewsletterOptionField;
|
|
| 8 |
use MailPoet\Models\NewsletterPost;
|
| 9 |
use MailPoet\Models\SendingQueue;
|
| 10 |
use MailPoet\Tasks\Sending as SendingTask;
|
|
|
|
| 11 |
|
| 12 |
class Scheduler {
|
| 13 |
const SECONDS_IN_HOUR = 3600;
|
|
@@ -85,7 +87,7 @@ class Scheduler {
|
|
| 85 |
$after_time_type = $newsletter->afterTimeType;
|
| 86 |
$after_time_number = $newsletter->afterTimeNumber;
|
| 87 |
$scheduled_at = null;
|
| 88 |
-
$current_time = Carbon::createFromTimestamp(
|
| 89 |
switch($after_time_type) {
|
| 90 |
case 'hours':
|
| 91 |
$scheduled_at = $current_time->addHours($after_time_number);
|
|
@@ -162,7 +164,7 @@ class Scheduler {
|
|
| 162 |
}
|
| 163 |
|
| 164 |
static function getNextRunDate($schedule, $from_timestamp = false) {
|
| 165 |
-
$from_timestamp = ($from_timestamp) ? $from_timestamp :
|
| 166 |
try {
|
| 167 |
$schedule = \Cron\CronExpression::factory($schedule);
|
| 168 |
$next_run_date = $schedule->getNextRunDate(Carbon::createFromTimestamp($from_timestamp))
|
|
@@ -174,7 +176,7 @@ class Scheduler {
|
|
| 174 |
}
|
| 175 |
|
| 176 |
static function getPreviousRunDate($schedule, $from_timestamp = false) {
|
| 177 |
-
$from_timestamp = ($from_timestamp) ? $from_timestamp :
|
| 178 |
try {
|
| 179 |
$schedule = \Cron\CronExpression::factory($schedule);
|
| 180 |
$previous_run_date = $schedule->getPreviousRunDate(Carbon::createFromTimestamp($from_timestamp))
|
| 1 |
<?php
|
| 2 |
+
|
| 3 |
namespace MailPoet\Newsletter\Scheduler;
|
| 4 |
|
| 5 |
use Carbon\Carbon;
|
| 9 |
use MailPoet\Models\NewsletterPost;
|
| 10 |
use MailPoet\Models\SendingQueue;
|
| 11 |
use MailPoet\Tasks\Sending as SendingTask;
|
| 12 |
+
use MailPoet\WP\Functions as WPFunctions;
|
| 13 |
|
| 14 |
class Scheduler {
|
| 15 |
const SECONDS_IN_HOUR = 3600;
|
| 87 |
$after_time_type = $newsletter->afterTimeType;
|
| 88 |
$after_time_number = $newsletter->afterTimeNumber;
|
| 89 |
$scheduled_at = null;
|
| 90 |
+
$current_time = Carbon::createFromTimestamp(WPFunctions::currentTime('timestamp'));
|
| 91 |
switch($after_time_type) {
|
| 92 |
case 'hours':
|
| 93 |
$scheduled_at = $current_time->addHours($after_time_number);
|
| 164 |
}
|
| 165 |
|
| 166 |
static function getNextRunDate($schedule, $from_timestamp = false) {
|
| 167 |
+
$from_timestamp = ($from_timestamp) ? $from_timestamp : WPFunctions::currentTime('timestamp');
|
| 168 |
try {
|
| 169 |
$schedule = \Cron\CronExpression::factory($schedule);
|
| 170 |
$next_run_date = $schedule->getNextRunDate(Carbon::createFromTimestamp($from_timestamp))
|
| 176 |
}
|
| 177 |
|
| 178 |
static function getPreviousRunDate($schedule, $from_timestamp = false) {
|
| 179 |
+
$from_timestamp = ($from_timestamp) ? $from_timestamp : WPFunctions::currentTime('timestamp');
|
| 180 |
try {
|
| 181 |
$schedule = \Cron\CronExpression::factory($schedule);
|
| 182 |
$previous_run_date = $schedule->getPreviousRunDate(Carbon::createFromTimestamp($from_timestamp))
|
lib/Newsletter/Shortcodes/Categories/Date.php
CHANGED
|
@@ -2,6 +2,8 @@
|
|
| 2 |
|
| 3 |
namespace MailPoet\Newsletter\Shortcodes\Categories;
|
| 4 |
|
|
|
|
|
|
|
| 5 |
class Date {
|
| 6 |
static function process(
|
| 7 |
$action,
|
|
@@ -17,10 +19,10 @@ class Date {
|
|
| 17 |
'y' => 'Y'
|
| 18 |
);
|
| 19 |
if(!empty($action_mapping[$action])) {
|
| 20 |
-
return date_i18n($action_mapping[$action],
|
| 21 |
}
|
| 22 |
return ($action === 'custom' && $action_argument === 'format') ?
|
| 23 |
-
date_i18n($action_argument_value,
|
| 24 |
false;
|
| 25 |
}
|
| 26 |
}
|
| 2 |
|
| 3 |
namespace MailPoet\Newsletter\Shortcodes\Categories;
|
| 4 |
|
| 5 |
+
use MailPoet\WP\Functions as WPFunctions;
|
| 6 |
+
|
| 7 |
class Date {
|
| 8 |
static function process(
|
| 9 |
$action,
|
| 19 |
'y' => 'Y'
|
| 20 |
);
|
| 21 |
if(!empty($action_mapping[$action])) {
|
| 22 |
+
return date_i18n($action_mapping[$action], WPFunctions::currentTime('timestamp'));
|
| 23 |
}
|
| 24 |
return ($action === 'custom' && $action_argument === 'format') ?
|
| 25 |
+
date_i18n($action_argument_value, WPFunctions::currentTime('timestamp')) :
|
| 26 |
false;
|
| 27 |
}
|
| 28 |
}
|
lib/Tasks/Sending.php
CHANGED
|
@@ -1,4 +1,5 @@
|
|
| 1 |
<?php
|
|
|
|
| 2 |
namespace MailPoet\Tasks;
|
| 3 |
|
| 4 |
use Carbon\Carbon;
|
|
@@ -6,6 +7,7 @@ use MailPoet\Models\ScheduledTask;
|
|
| 6 |
use MailPoet\Models\ScheduledTaskSubscriber;
|
| 7 |
use MailPoet\Models\SendingQueue;
|
| 8 |
use MailPoet\Util\Helpers;
|
|
|
|
| 9 |
|
| 10 |
if(!defined('ABSPATH')) exit;
|
| 11 |
|
|
@@ -221,7 +223,7 @@ class Sending {
|
|
| 221 |
|
| 222 |
static function getScheduledQueues() {
|
| 223 |
$tasks = ScheduledTask::where('status', ScheduledTask::STATUS_SCHEDULED)
|
| 224 |
-
->whereLte('scheduled_at', Carbon::createFromTimestamp(
|
| 225 |
->where('type', 'sending')
|
| 226 |
->findMany();
|
| 227 |
$result = array();
|
| 1 |
<?php
|
| 2 |
+
|
| 3 |
namespace MailPoet\Tasks;
|
| 4 |
|
| 5 |
use Carbon\Carbon;
|
| 7 |
use MailPoet\Models\ScheduledTaskSubscriber;
|
| 8 |
use MailPoet\Models\SendingQueue;
|
| 9 |
use MailPoet\Util\Helpers;
|
| 10 |
+
use MailPoet\WP\Functions as WPFunctions;
|
| 11 |
|
| 12 |
if(!defined('ABSPATH')) exit;
|
| 13 |
|
| 223 |
|
| 224 |
static function getScheduledQueues() {
|
| 225 |
$tasks = ScheduledTask::where('status', ScheduledTask::STATUS_SCHEDULED)
|
| 226 |
+
->whereLte('scheduled_at', Carbon::createFromTimestamp(WPFunctions::currentTime('timestamp')))
|
| 227 |
->where('type', 'sending')
|
| 228 |
->findMany();
|
| 229 |
$result = array();
|
lib/WP/DateTime.php
CHANGED
|
@@ -1,6 +1,9 @@
|
|
| 1 |
<?php
|
|
|
|
| 2 |
namespace MailPoet\WP;
|
| 3 |
|
|
|
|
|
|
|
| 4 |
class DateTime {
|
| 5 |
|
| 6 |
const DEFAULT_DATE_FORMAT = 'Y-m-d';
|
|
@@ -24,7 +27,7 @@ class DateTime {
|
|
| 24 |
|
| 25 |
function getCurrentTime($format=false) {
|
| 26 |
if (empty($format)) $format = $this->getTimeFormat();
|
| 27 |
-
return
|
| 28 |
}
|
| 29 |
|
| 30 |
function getCurrentDate($format=false) {
|
| 1 |
<?php
|
| 2 |
+
|
| 3 |
namespace MailPoet\WP;
|
| 4 |
|
| 5 |
+
use MailPoet\WP\Functions as WPFunctions;
|
| 6 |
+
|
| 7 |
class DateTime {
|
| 8 |
|
| 9 |
const DEFAULT_DATE_FORMAT = 'Y-m-d';
|
| 27 |
|
| 28 |
function getCurrentTime($format=false) {
|
| 29 |
if (empty($format)) $format = $this->getTimeFormat();
|
| 30 |
+
return WPFunctions::currentTime($format);
|
| 31 |
}
|
| 32 |
|
| 33 |
function getCurrentDate($format=false) {
|
lib/WP/Functions.php
CHANGED
|
@@ -22,6 +22,10 @@ class Functions {
|
|
| 22 |
return self::callWithFallback('wp_remote_retrieve_response_message', func_get_args());
|
| 23 |
}
|
| 24 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25 |
private static function callWithFallback($func, $args) {
|
| 26 |
$local_func = __NAMESPACE__ . '\\' . $func;
|
| 27 |
if(function_exists($local_func)) {
|
| 22 |
return self::callWithFallback('wp_remote_retrieve_response_message', func_get_args());
|
| 23 |
}
|
| 24 |
|
| 25 |
+
static function currentTime() {
|
| 26 |
+
return self::callWithFallback('current_time', func_get_args());
|
| 27 |
+
}
|
| 28 |
+
|
| 29 |
private static function callWithFallback($func, $args) {
|
| 30 |
$local_func = __NAMESPACE__ . '\\' . $func;
|
| 31 |
if(function_exists($local_func)) {
|
mailpoet.php
CHANGED
|
@@ -4,7 +4,7 @@ if(!defined('ABSPATH')) exit;
|
|
| 4 |
|
| 5 |
/*
|
| 6 |
* Plugin Name: MailPoet 3 (New)
|
| 7 |
-
* Version: 3.6.
|
| 8 |
* Plugin URI: http://www.mailpoet.com
|
| 9 |
* Description: Create and send newsletters, post notifications and welcome emails from your WordPress.
|
| 10 |
* Author: MailPoet
|
|
@@ -20,7 +20,7 @@ if(!defined('ABSPATH')) exit;
|
|
| 20 |
*/
|
| 21 |
|
| 22 |
$mailpoet_plugin = array(
|
| 23 |
-
'version' => '3.6.
|
| 24 |
'filename' => __FILE__,
|
| 25 |
'path' => dirname(__FILE__),
|
| 26 |
'autoloader' => dirname(__FILE__) . '/vendor/autoload.php',
|
| 4 |
|
| 5 |
/*
|
| 6 |
* Plugin Name: MailPoet 3 (New)
|
| 7 |
+
* Version: 3.6.1
|
| 8 |
* Plugin URI: http://www.mailpoet.com
|
| 9 |
* Description: Create and send newsletters, post notifications and welcome emails from your WordPress.
|
| 10 |
* Author: MailPoet
|
| 20 |
*/
|
| 21 |
|
| 22 |
$mailpoet_plugin = array(
|
| 23 |
+
'version' => '3.6.1',
|
| 24 |
'filename' => __FILE__,
|
| 25 |
'path' => dirname(__FILE__),
|
| 26 |
'autoloader' => dirname(__FILE__) . '/vendor/autoload.php',
|
readme.txt
CHANGED
|
@@ -4,7 +4,7 @@ Tags: newsletter, email, welcome email, post notification, autoresponder, signup
|
|
| 4 |
Requires at least: 4.7
|
| 5 |
Tested up to: 4.9
|
| 6 |
Requires PHP: 5.3
|
| 7 |
-
Stable tag: 3.6.
|
| 8 |
License: GPLv3
|
| 9 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
| 10 |
|
|
@@ -116,6 +116,9 @@ Stop by our [support site](https://www.mailpoet.com/support).
|
|
| 116 |
|
| 117 |
== Changelog ==
|
| 118 |
|
|
|
|
|
|
|
|
|
|
| 119 |
= 3.6.0 - 2018-03-20 =
|
| 120 |
* Improved: previously used widgets settings in the designer are automatically saved to save you time;
|
| 121 |
* Improved: welcome emails are now sent with our API's subscribeToList method, and not just addSubscriber. Thanks to Sandra and Donald;
|
| 4 |
Requires at least: 4.7
|
| 5 |
Tested up to: 4.9
|
| 6 |
Requires PHP: 5.3
|
| 7 |
+
Stable tag: 3.6.1
|
| 8 |
License: GPLv3
|
| 9 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
| 10 |
|
| 116 |
|
| 117 |
== Changelog ==
|
| 118 |
|
| 119 |
+
= 3.6.1 - 2018-03-20 =
|
| 120 |
+
* Fixed: prevents sending from being paused for long time during plugin update. Big thanks to Deborah, Kelley, Ciro and Justin!
|
| 121 |
+
|
| 122 |
= 3.6.0 - 2018-03-20 =
|
| 123 |
* Improved: previously used widgets settings in the designer are automatically saved to save you time;
|
| 124 |
* Improved: welcome emails are now sent with our API's subscribeToList method, and not just addSubscriber. Thanks to Sandra and Donald;
|
vendor/autoload.php
CHANGED
|
@@ -4,4 +4,4 @@
|
|
| 4 |
|
| 5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
| 6 |
|
| 7 |
-
return
|
| 4 |
|
| 5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
| 6 |
|
| 7 |
+
return ComposerAutoloaderInit8984a4428cf64cb5131b0166cb46976b::getLoader();
|
vendor/composer/autoload_real.php
CHANGED
|
@@ -2,7 +2,7 @@
|
|
| 2 |
|
| 3 |
// autoload_real.php @generated by Composer
|
| 4 |
|
| 5 |
-
class
|
| 6 |
{
|
| 7 |
private static $loader;
|
| 8 |
|
|
@@ -19,15 +19,15 @@ class ComposerAutoloaderInita0ad1f6434c7957e608711c128817945
|
|
| 19 |
return self::$loader;
|
| 20 |
}
|
| 21 |
|
| 22 |
-
spl_autoload_register(array('
|
| 23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
| 24 |
-
spl_autoload_unregister(array('
|
| 25 |
|
| 26 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
| 27 |
if ($useStaticLoader) {
|
| 28 |
require_once __DIR__ . '/autoload_static.php';
|
| 29 |
|
| 30 |
-
call_user_func(\Composer\Autoload\
|
| 31 |
} else {
|
| 32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
| 33 |
foreach ($map as $namespace => $path) {
|
|
@@ -48,19 +48,19 @@ class ComposerAutoloaderInita0ad1f6434c7957e608711c128817945
|
|
| 48 |
$loader->register(true);
|
| 49 |
|
| 50 |
if ($useStaticLoader) {
|
| 51 |
-
$includeFiles = Composer\Autoload\
|
| 52 |
} else {
|
| 53 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
| 54 |
}
|
| 55 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
| 56 |
-
|
| 57 |
}
|
| 58 |
|
| 59 |
return $loader;
|
| 60 |
}
|
| 61 |
}
|
| 62 |
|
| 63 |
-
function
|
| 64 |
{
|
| 65 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
| 66 |
require $file;
|
| 2 |
|
| 3 |
// autoload_real.php @generated by Composer
|
| 4 |
|
| 5 |
+
class ComposerAutoloaderInit8984a4428cf64cb5131b0166cb46976b
|
| 6 |
{
|
| 7 |
private static $loader;
|
| 8 |
|
| 19 |
return self::$loader;
|
| 20 |
}
|
| 21 |
|
| 22 |
+
spl_autoload_register(array('ComposerAutoloaderInit8984a4428cf64cb5131b0166cb46976b', 'loadClassLoader'), true, true);
|
| 23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
| 24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit8984a4428cf64cb5131b0166cb46976b', 'loadClassLoader'));
|
| 25 |
|
| 26 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
| 27 |
if ($useStaticLoader) {
|
| 28 |
require_once __DIR__ . '/autoload_static.php';
|
| 29 |
|
| 30 |
+
call_user_func(\Composer\Autoload\ComposerStaticInit8984a4428cf64cb5131b0166cb46976b::getInitializer($loader));
|
| 31 |
} else {
|
| 32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
| 33 |
foreach ($map as $namespace => $path) {
|
| 48 |
$loader->register(true);
|
| 49 |
|
| 50 |
if ($useStaticLoader) {
|
| 51 |
+
$includeFiles = Composer\Autoload\ComposerStaticInit8984a4428cf64cb5131b0166cb46976b::$files;
|
| 52 |
} else {
|
| 53 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
| 54 |
}
|
| 55 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
| 56 |
+
composerRequire8984a4428cf64cb5131b0166cb46976b($fileIdentifier, $file);
|
| 57 |
}
|
| 58 |
|
| 59 |
return $loader;
|
| 60 |
}
|
| 61 |
}
|
| 62 |
|
| 63 |
+
function composerRequire8984a4428cf64cb5131b0166cb46976b($fileIdentifier, $file)
|
| 64 |
{
|
| 65 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
| 66 |
require $file;
|
vendor/composer/autoload_static.php
CHANGED
|
@@ -4,7 +4,7 @@
|
|
| 4 |
|
| 5 |
namespace Composer\Autoload;
|
| 6 |
|
| 7 |
-
class
|
| 8 |
{
|
| 9 |
public static $files = array (
|
| 10 |
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
|
|
@@ -988,10 +988,10 @@ class ComposerStaticInita0ad1f6434c7957e608711c128817945
|
|
| 988 |
public static function getInitializer(ClassLoader $loader)
|
| 989 |
{
|
| 990 |
return \Closure::bind(function () use ($loader) {
|
| 991 |
-
$loader->prefixLengthsPsr4 =
|
| 992 |
-
$loader->prefixDirsPsr4 =
|
| 993 |
-
$loader->prefixesPsr0 =
|
| 994 |
-
$loader->classMap =
|
| 995 |
|
| 996 |
}, null, ClassLoader::class);
|
| 997 |
}
|
| 4 |
|
| 5 |
namespace Composer\Autoload;
|
| 6 |
|
| 7 |
+
class ComposerStaticInit8984a4428cf64cb5131b0166cb46976b
|
| 8 |
{
|
| 9 |
public static $files = array (
|
| 10 |
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
|
| 988 |
public static function getInitializer(ClassLoader $loader)
|
| 989 |
{
|
| 990 |
return \Closure::bind(function () use ($loader) {
|
| 991 |
+
$loader->prefixLengthsPsr4 = ComposerStaticInit8984a4428cf64cb5131b0166cb46976b::$prefixLengthsPsr4;
|
| 992 |
+
$loader->prefixDirsPsr4 = ComposerStaticInit8984a4428cf64cb5131b0166cb46976b::$prefixDirsPsr4;
|
| 993 |
+
$loader->prefixesPsr0 = ComposerStaticInit8984a4428cf64cb5131b0166cb46976b::$prefixesPsr0;
|
| 994 |
+
$loader->classMap = ComposerStaticInit8984a4428cf64cb5131b0166cb46976b::$classMap;
|
| 995 |
|
| 996 |
}, null, ClassLoader::class);
|
| 997 |
}
|
