Commit Graph

138 Commits

Author SHA1 Message Date
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
bee18084c3 Introduce underprivileged key status also for premium key
In MAILPOET-4464 we introduced the new state "valid_underprivileged".
During implementation we introduced the state for MSS key validation,
but we forgot about the premium key.

This commit adds support for the state also for premium key validation.
When the key is underprivileged we don't display any error.

We will add specific error for underprivileged keys with specific
access restrictions in follow-up commits.

[MAILPOET-5103]
2023-04-26 10:57:40 +02:00
6c2cda36b0 Run custom field data through sanitizer when saving via API
[MAILPOET-5241]
2023-04-24 13:26:31 +02:00
aa5b052e66 Handle sanitization as early as possible per best practices
Per WP security best practices, sanitization should be handled as early
as possible. So this commit move updates the calls to sanitize the
segment name and description to the part of the code where the user
input is first processed, instead of when the data is saved to the
database.

[MAILPOET-5232]
2023-04-17 14:33:51 -03:00
685af267cb Use constant, improve test and naming
[MAILPOET-5131]
2023-04-03 12:57:31 +02:00
fb93c73a34 Add premium key verification
[MAILPOET-5131]
2023-04-03 12:57:31 +02:00
fc8837e03c Filter for license provisioning
This commit adds a filter that will provision the API key. It only runs on WP.com sites with plugins.

[MAILPOET-5131]
2023-04-03 12:57:31 +02:00
b963d8b988 Add a new WooCommerce segment based on the value of the orders
[MAILPOET-4988]
2023-03-28 15:51:01 +02:00
c507229dd2 Add unsubscribe API method
It can be used by calling:

```
$mailpoet_api = \MailPoet\API\API::MP('v1');
$mailpoet_api->unsubscribe($subscriberId);
```

[MAILPOET-5152]
2023-03-27 19:25:49 +02:00
212e01dd4c Add check that function error_log exists
[MAILPOET-5026]
2023-03-02 13:59:51 +01:00
0795c2ffff Expose the log for corrupted newsletter on listing page
[MAILPOET-4983]
2023-03-01 17:46:22 +01:00
9e62501c30 Update comment
[MAILPOET-4883]
2023-02-15 12:30:41 +01:00
f60ae7a8ef Set dynamic also correctly for products
[MAILPOET-4883]
2023-02-15 12:30:41 +01:00
f3bf4b36e9 Introduce endpoint to refresh mss key status
[MAILPOET-4633]
2023-02-13 16:56:54 +01:00
cf5718122f Fix the issue with verifyMssKey overriding is_approved
The verifyMssKey side effect handler was overriding the value
of is_approved when updating the state.

[MAILPOET-4633]
2023-02-13 16:56:54 +01:00
ad4247a241 Add API endpoint to delete a setting
[MAILPOET-4814]
2023-01-30 15:01:42 +01:00
94b5803337 Cleanup coupon data from template on save
[MAILPOET-4678]
2023-01-23 13:31:34 +01:00
0bbd65ac61 Sanitize segment data when persisty via public API
[MAILPOET-4942]
2023-01-16 13:59:30 +01:00
07954dd968 Extract domain verification error messages from bridge to strings
As a part of those changes I tried to unify the array key with error messages.
[MAILPOET-4639]
2023-01-16 13:46:07 +01:00
aab8281af0 Remove request data from logged context
[MAILPOET-4639]
2023-01-09 15:23:48 +01:00
3df00548ab Change logged error to warning
[MAILPOET-4639]
2023-01-09 15:23:48 +01:00
ada346f4ef Add logging to php error log
[MAILPOET-4104]
2023-01-09 15:23:48 +01:00
b0ab2f404f Add logging errors to the log table
[MAILPOET-4104]
2023-01-09 15:23:48 +01:00
5802f2132d Use badRequest method instead of throwing an InvalidState exception
[PREMIUM-213]
2022-12-16 14:11:34 +01:00
8e502e5f50 Rename save method to create
[PREMIUM-213]
2022-12-16 14:11:34 +01:00
0187f0cede change date keys
[PREMIUM-213]
2022-12-16 14:11:34 +01:00
5b93b88f46 Add Tags endpoint
[PREMIUM-213]
2022-12-16 14:11:34 +01:00
210c240aab Update ConfirmationEmailMailer to support custom confirmation email created with the email editor from template
Setup confirmation email customizer in ConfirmationEmailMailer and trigger confirmation email template creation when visual subscription confirmation emails is enabled from settings

MAILPOET-4649
2022-12-15 18:15:01 +01:00
53dda33c02 Update method and constant name
MAILPOET-4760
2022-12-05 10:25:28 +01:00
9b9f61bf13 Only queue test mail for sending when the mailpoet sending method is updated
MAILPOET-4760
2022-12-05 10:25:28 +01:00
0bd627d3b1 Add support for checking misconfiguration of the PHP mail function
Some hosts do perform intentional misconfiguration of the mail function, causing it not to work.

When the mail function is misconfigured, we can still access and execute the mail function from within the codebase, but we get an error.

There’s no accurate way to know the PHP mail function is misconfigured. Unless we execute the function with all the proper parameters and check the exception error message against this error `Could not instantiate mail function.`

MAILPOET-4760
2022-12-05 10:25:28 +01:00
926620e8f8 Ignore strict types rule in all existing files that don't have it
[MAILPOET-2688]
2022-11-29 15:04:09 +01:00
c67c58709b Unify spacing of declare statements
[MAILPOET-2688]
2022-11-29 15:04:09 +01:00
37067dff67 Add state to MSS key check response
[MAILPOET-4641]
2022-11-28 14:12:50 +01:00
4832771185 Refactor the captcha system
The current Captcha class has a lot of responsibilities. It renders the captcha
image, can check if a certain captcha type is a Google captcha, if a captcha is
required for a certain email. The SubscriberSubscribeController is not only in
charge of "controlling" the subscription process but also validates, whether a
captcha is correct or not. This architecture made it difficult to extend the
functionality and introduce the audio captcha feature.

Therefore this commit refactors the captcha architecture and tries to seperate
the different concerns into several classes and objects. Validation is now done
by validators.

The CaptchaPhrase now is in charge of keeping the captcha phrase consistent
between the image and the new audio, so that you can renew the captcha and both
captchas are in sync.

[MAILPOET-4514]
2022-11-24 09:20:39 +01:00
8b922681b6 Use boolean instead of integer for displayInManageSubscriptionPage column
MAILPOET-4669
2022-11-21 15:21:29 +01:00
48181994d8 Handle saving and loading list page. Add support for showInManageSubscriptionPage checkbox input
MAILPOET-4669
2022-11-21 15:21:29 +01:00
725e0ecb00 Remove automation feature flag
[MAILPOET-4788]
2022-11-14 12:35:29 +02:00
8161b83ded Add check on list type when deleting list
[MAILPOET-4752]
2022-11-02 14:05:39 +01:00
ad46d05c6b Add check on list type
[MAILPOET-4752]
2022-11-02 14:05:39 +01:00
f231f3dc6d Fix type error for list update
[MAILPOET-4752]
2022-11-02 14:05:39 +01:00
56c79dd66a Add API method deleteList
[MAILPOET-4752]
2022-11-02 14:05:39 +01:00
25ba667cb1 Move segment id validation to private method
[MAILPOET-4752]
2022-11-02 14:05:39 +01:00
fbf4c853c1 Add new API method updateList
[MAILPOET-4752]
2022-11-02 14:05:39 +01:00
5fba25d823 Fix the exception message
[MAILPOET-4752]
2022-11-02 14:05:39 +01:00
18efc02921 Move list validation to a private method
We move the segment's name validation to a private method to avoid code repetition.
[MAILPOET-4752]
2022-11-02 14:05:39 +01:00
db94ec52e6 Acknowledge error code 403 with a different message
When recieving error code 403 from the Bridge, it's treated
as success but with with different message

[MAILPOET-4464]
2022-10-17 12:15:07 +02:00
8b1eabb765 Remove duplicated annotation for filter
[MAILPOET-4717]
2022-10-17 09:12:10 +02:00
375a6f8a4d Add new method getSubscribersCount
[MAILPOET-4717]
2022-10-17 09:12:10 +02:00
35fb4979a3 Move building listing definition to private method
[MAILPOET-4717]
2022-10-17 09:12:10 +02:00