Commit Graph

21439 Commits

Author SHA1 Message Date
Rodrigo Primo
1230586865 Add ?ref=plugin-upgrade-page to all links in the upgrade page
[MAILPOET-5141]
2023-05-12 14:38:05 +02:00
John Oleksowicz
82e248b37f Fix improper translations
MAILPOET-4997
2023-05-12 13:59:12 +02:00
John Oleksowicz
ed51588bf3 Only index first 10 characters of name columns
MAILPOET-4997
2023-05-12 13:59:12 +02:00
John Oleksowicz
2898c38bcb Add first/last name indexes to subscribers table
MAILPOET-4997
2023-05-12 13:59:12 +02:00
John Oleksowicz
974cd32950 Dynamic segment filter for first/last name and email
MAILPOET-4997
2023-05-12 13:59:12 +02:00
Veljko
13915a1733 Fix helper method for nightly tests
[MAILPOET-5298]
2023-05-11 10:44:11 -05:00
Brezo Cordero
93f09b85d4 Formatting and namespace in test
[MAILPOET-4974]
2023-05-11 13:56:00 +02:00
Brezo Cordero
b6242423c1 Track Dotcom plans
[MAILPOET-4974]
2023-05-11 13:56:00 +02:00
John Oleksowicz
744b74456a Ignore existing coupons with unknown types
MAILPOET-5271
2023-05-11 13:31:43 +02:00
John Oleksowicz
98e780505d Fix initial operator state
MAILPOET-4987
2023-05-11 11:47:01 +02:00
John Oleksowicz
9c6f957154 Move more functionality to test helper to create orders
MAILPOET-4987
2023-05-11 11:47:01 +02:00
John Oleksowicz
9e5b5d5ebe Add backend error checking for average spent filter
MAILPOET-4987
2023-05-11 11:47:01 +02:00
John Oleksowicz
d8e29e9edb Prefix average spent fields
MAILPOET-4987
2023-05-11 11:47:01 +02:00
John Oleksowicz
7a3dbe2acc Fix less than or equal option value
MAILPOET-4987
2023-05-11 11:47:01 +02:00
John Oleksowicz
6d9f6cfe6a Make validation logic more consistent
MAILPOET-4987
2023-05-11 11:47:01 +02:00
John Oleksowicz
ca2a6ceac8 Add missing options and fix order of options
MAILPOET-4987
2023-05-11 11:47:01 +02:00
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