Commit Graph

19873 Commits

Author SHA1 Message Date
John Oleksowicz
46316b48e2 Clean up code left over after refactoring
MAILPOET-4987
2023-05-11 11:47:01 +02:00
John Oleksowicz
a2853236fc Add average order value filter
MAILPOET-4987
2023-05-11 11:47:01 +02:00
Oluwaseun Olorunsola
dddd116b34 Update minimum WC to: 7.5.0
MAILPOET-5294
2023-05-10 10:19:54 -05:00
Oluwaseun Olorunsola
4c51562bf0 Update WC tested up to: 7.7.0
MAILPOET-5294
2023-05-10 10:19:54 -05:00
Veljko
ca100726ac Switch the site for k6 nightlytests
[MAILPOET-5292]
2023-05-10 14:41:24 +02:00
Rostislav Wolny
1d8f4b1821 Use correct variable when checking premium key state
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
edc4ab4f52 Use better name for the method that updates api keys states
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
f4ae6e0f00 Add comment about how the limit notifications work
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
a4bc492094 Add acceptance test for notices related to limits
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
8bf7a150e2 Report subscribers count before refreshing key statuses from the shop
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
548118f904 Unify how we display email and subscriber limit notices from mailer log
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
62250905e5 Unify wording on refresh limit buttons
In MAILPOET-5203 we changed text on button for refreshing subscribers limits
from "I’ve upgraded my subscription, refresh subscriber limit'"  to
"Refresh subscriber limit".
This commit does similar change for the button for refreshing email limit.
We changed that because it makes sense to refresh the limits not only
after after the upgrade but also when user deletes subscribers or it is already a day
after the period for monthly email limit.
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
a5461352d2 Fix restricted access error detection during api key verification
I noticed that the access restriction error message doesn't disappear
when the key becomes valid.
This commit fixes it by reseting the state before each check.
It also adds check for premium key. Plans that offers only the premium
may return the error only on the premium key check.
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
476e0603fb Hide subscriber limit error from mailer log in case plugin display general error
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
192ee58a37 Add variant of subscribers limit notice for case we don't know limit
This covers case when API returns subscriber_limit_reached
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
25aefb9142 Display MTA error message also for subscribers limit reached error
This is a new operation error type added on the shop.
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
77e64a7c57 Return plan limit data also for underprivileged keys
When a key is underprivileged it is still considered valid and
we can use the state data about limits.
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
080b6a57ef Add MailPoet.hasValidMSSKey
I added the property so that we can check all combinations.
Currently it is not used but was added for completeness.
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
600c83943c Change login of MailPoet.hasValidApiKey key JS property
The API key that is underprivileged for MSS and Premium
is still considered as valid because the API can still authenticate the key
and the key can be used reporting subscriber stats etc.

I've check places where we use the property and in all cases we use
to distinguish if the plugin uses a subscription plan (free or paid) or no plan.
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
6aaa56466e Display subscribers limit reached also when API reports restricted access
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
a21530a78d Add variant of email volume reached message for the case we don't know limit
In case the user uses an API key that has restricted access to MSS
due email volume limit on a fresh site. The site has no cached data about
the limits. We need a variant of the message also for the case.
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
aa63f9e0c4 Hide MTA log error for email volume limit in case we show global error
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
b82ff65690 Replace separately places notices by component that groups them
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
9bc8b8095d Add component for displaying MSS access/limits error notices
We don't want to display all notifications at the same time so
this component holds the logic for displaying the proper ones.
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
20a8afa2f1 Fix logic for detecting emails volume reached error
The values we have in key state might be missing or outdated.
We need to check also if the key check on MSS returned error
about access being restricted due email volume limit.

[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
15aeea834f Handle error message for exceeded email limit when limit is not known
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
469b9bf85f Remove unnecessary premium key refresh when volume limit error happens
The limit is stored in and read from MSS key state and now we preserve
state data even when the key becomes underprivileged.
We don't need to refresh anything and also the checking underprivileged key
would return 403 and no data about limits.
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
48f1034180 Read email volume limit from and send emails count from MSS key data
Currently the starter plan has no access to premium so the plugin is
not able to fetch email volume limit using premium key endpoint.
Also the data are related to sending so it makes more sense to read those
from MSS key state.
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
db467d8616 Add handling of subscriber limit error to MailPoet error mapper
When the shop blocked access for an API key due subscriber limit it used
to set the error as "Insufficient privileges," and that was in the plugin
interpreted same as "Subscribers limit reached".
The SHOP-1228 changes the error message will be set to "Subscribers limit reached".
This commit updates the error mapper to be able to process the new error message.
It also keeps the old approach for previously blocked keys.
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
eb06b6d01e Preserve key state data when checking key and get invalid result
The state data contain info about plan limits etc. we don't want
to lose the info when key becomes underprivileged so that we can
show the limits in notifications.
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
cd5a023b35 Move onSettingsChange from Bridge service to SettingsChangeHandler
Bridge is a low level service that processes requests and responses to/from Bridge API.
This change is needed so that we can remove dependency on MailPoet\Util\License\Features\Subscribers
service from the Bridge. The dependecy is a higher level service and may easily cause a circular dependency issue.

The SettingsChangeHandler is service for handling side effects
when saving settings. This feels as a better place to put the functionality.
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
ab19ef92d5 Use subscriber count reporter in cron for reporting stats
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
d9bec53efa Introduce new service for reporting subscriber stats
Bridge is a low level service that processes requests and responses to/from Bridge API.
This change is needed so that we can remove dependency on MailPoet\Util\License\Features\Subscribers
service from the Bridge. The dependecy is a higher level service and may easily cause a circular dependency issue.
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
4995ed93f0 Refactor invalidation of MSS key to non static method
This is the olny staically called method from the service. In this commit I refactored it to non-static so that it works properly with injected services.
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
638c7005d9 Refactor storing MSS and Premium key and state to use common private method
[MAILPOET-5191]
2023-05-10 13:05:37 +02:00
Rostislav Wolny
ae430480ad Prevent interaction with the checkout opt-in checkbox element
[MAILPOET-5276]
2023-05-09 15:45:22 +02:00
Rostislav Wolny
f8b6f77762 Update visual appearance of opt-in block in checkout block
[MAILPOET-5276]
2023-05-09 15:45:22 +02:00
Veljko
4bda0770e1 Update k6 and switch to CWV
[MAILPOET-5287]
2023-05-09 14:46:03 +02:00
John Oleksowicz
f75173dcd5 Add "subscribed via form" dynamic filter
MAILPOET-5005
2023-05-09 13:10:08 +02:00
Oluwaseun Olorunsola
1923ca9ae3 Release 4.15.0 2023-05-09 12:32:14 +02:00
Rodrigo Primo
9ab62ea2e1 Change the frequency of the Beamer worker to once every two weeks
[MAILPOET-5275]
2023-05-08 14:39:52 +02:00
Jan Jakes
4ad01230f8 Improve timezone property and function naming
[MAILPOET-5000]
2023-05-08 13:58:31 +02:00
Jan Jakes
08d2039ce3 Render datetime values
[MAILPOET-5000]
2023-05-08 13:58:31 +02:00
Jan Jakes
e81a8fca6a Load @wordpress/date settings and locale data for date picker
[MAILPOET-5000]
2023-05-08 13:58:31 +02:00
Jan Jakes
5800897cc0 Install and expose @wordpress/date
[MAILPOET-5000]
2023-05-08 13:58:31 +02:00
Jan Jakes
3d78cfaef3 Expose date/time components and dropdown
[MAILPOET-5000]
2023-05-08 13:58:31 +02:00
Jan Jakes
2a38e639db Implement datetime filter
[MAILPOET-5000]
2023-05-08 13:58:31 +02:00
Jan Jakes
607e193c0d Add datetime field to subscriber subject
[MAILPOET-5000]
2023-05-08 13:58:31 +02:00
Jan Jakes
a3bf9122c6 Add filter group operator switching UI with upsell modal
[MAILPOET-5218]
2023-05-04 14:34:11 +02:00
Jan Jakes
b45e105cb4 Evaluate global filter operator
[MAILPOET-5218]
2023-05-04 14:34:11 +02:00