Commit Graph

162 Commits

Author SHA1 Message Date
John Oleksowicz
ec68818c1a Add filter for used payment method
MAILPOET-4993
2023-05-19 11:57:13 +02:00
Rodrigo Primo
00d021109c Move ModelValidator::validateNonRoleEmail() to a new Validator class
We want to remove/refactor the whole ModelValidator class as part of the
Doctrine refactor.

This commit moves the method ModelValidator::validateNonRoleEmail() to a
new Validator class as the method is not used by the validator system of
the Paris models. ModelValidator::validateEmail() was also moved as it
is called by ModelValidator::validateNonRoleEmail().

[MAILPOET-4343]
2023-05-17 12:37:22 +02:00
Jan Jakes
7444131021 Add subscriber automation fields
[MAILPOET-5172]
2023-05-17 12:36:05 +02:00
Jan Jakes
6cfc808248 Add subscriber statistic fields
[MAILPOET-5172]
2023-05-17 12:36:05 +02:00
Jan Jakes
2e39798cd3 Extract subscriber fields creation to a factory
[MAILPOET-5172]
2023-05-17 12:36:05 +02:00
Jan Jakes
906e76c73c Map subscriber custom fields to automation fields
[MAILPOET-5036]
2023-05-17 12:36:05 +02:00
Brezo Cordero
00e5dea5b4 Opt out AutomateWoo customer
This commit adds an action to opt out AutomateWoo customer When MailPoet Subscriber global status changes to unsubscribed.

[MAILPOET-4230]
2023-05-15 12:04:24 +02:00
David Remer
0cc02b38a5 Move abandoned cart into WooCommerce vendor space
[MAILPOET-4934]
2023-05-15 08:19:19 +02:00
David Remer
23fe9533b7 Move AbandonedCartSubject to free plugin
[MAILPOET-4934]
2023-05-15 08:19:19 +02:00
David Remer
d113ec9fdb Remove ProductsSubject
[MAILPOET-4934]
2023-05-15 08:19:19 +02:00
David Remer
649c4efff4 Add AbandonedCart Worker
[MAILPOET-4934]
2023-05-15 08:19:19 +02:00
David Remer
3ae7399721 Introduce ProductsSubject
[MAILPOET-4934]
2023-05-15 08:19:19 +02:00
John Oleksowicz
974cd32950 Dynamic segment filter for first/last name and email
MAILPOET-4997
2023-05-12 13:59:12 +02:00
Brezo Cordero
b6242423c1 Track Dotcom plans
[MAILPOET-4974]
2023-05-11 13:56:00 +02:00
John Oleksowicz
a2853236fc Add average order value filter
MAILPOET-4987
2023-05-11 11:47:01 +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
John Oleksowicz
f75173dcd5 Add "subscribed via form" dynamic filter
MAILPOET-5005
2023-05-09 13:10:08 +02:00
Sam Najian
ef7f2ebade Define method to disable theme templates settings
[MAILPOET-5194]
2023-04-26 10:57:23 +02:00
Jan Jakes
f6a59647d5 Implement filter args validation
[MAILPOET-4946]
2023-04-20 16:32:32 +02:00
Jan Jakes
ffaa140289 Implement finding all static and dynamic segments for a subscriber
[MAILPOET-4946]
2023-04-20 16:32:32 +02:00
Jan Jakes
abe44ca9f8 Implement filter handler to apply filters on field values during automation run
[MAILPOET-4946]
2023-04-20 16:32:32 +02:00
John Oleksowicz
ae442e191c Add database cleaner for integration tests
MAILPOET-5145
2023-04-07 12:11:12 -05:00
Brezo Cordero
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
John Oleksowicz
68902a206d Extract more to helpers
MAILPOET-4986
2023-04-03 10:20:02 +02:00
John Oleksowicz
26ec430942 Refactor to use DI instead of inheritance
MAILPOET-4986
2023-04-03 10:20:02 +02:00
John Oleksowicz
37226202bc Implement purchase date dynamic filter
MAILPOET-4986
2023-04-03 10:20:02 +02:00
David Remer
a3ebd0695b Introduce Order to Segment transformer
[MAILPOET-4935]
2023-03-30 12:21:25 +02:00
David Remer
d0659f638c Add order to subscriber transformer
[MAILPOET-4935]
2023-03-30 12:21:25 +02:00
David Remer
e140dc6d4e Add WooCommerce integration and order status trigger backend
[MAILPOET-4935]
2023-03-30 12:21:25 +02:00
David Remer
5328213d85 Introduce subject transformation
[MAILPOET-4935]
2023-03-30 12:21:25 +02:00
Rodrigo Primo
b963d8b988 Add a new WooCommerce segment based on the value of the orders
[MAILPOET-4988]
2023-03-28 15:51:01 +02:00
David Remer
fcf6e738c7 Interrupt automation run creation if a run already exists and only_once setting is set
[MAILPOET-4966]
2023-03-01 16:14:38 +01:00
Rostislav Wolny
4dfdfc8423 Add dummy Woo Tracker class
[MAILPOET-5014]
2023-01-30 09:21:39 +01:00
Jan Jakes
e3e865eac5 Use plugin context to load list of segments
[PREMIUM-215]
2023-01-26 14:12:22 +01:00
Rostislav Wolny
5fe02fcc3e Refactor homepage data fetching to a new service
[MAILPOET-4827]
2023-01-23 16:48:52 +01:00
Brezo Cordero
49b2f5528f Remove Migration class
Remove from container, test factory and PHPStan baselines.

[MAILPOET-4478]
2023-01-23 15:35:50 +01:00
Sam Najian
7ced42a494 Fix bug when duplicated newsletter uses the source's coupon
On duplication, the sensitive data of the coupon were
inherited from the source

[MAILPOET-4678]
2023-01-23 13:31:34 +01:00
Sam Najian
f551d4388c Add CouponPreprocessor to create coupons before rendering
[MAILPOET-4678]
2023-01-23 13:31:34 +01:00
Sam Najian
bb7775f87b Render Coupon block in email body
[MAILPOET-4678]
2023-01-23 13:31:34 +01:00
Jan Lysý
e4029a607a Adopt logging test to warning instead of error
[MAILPOET-4639]
2023-01-09 15:23:48 +01:00
Oluwaseun Olorunsola
e850eaa90c Add Landing page and hide behind feature flag
MAILPOET-4795
2023-01-06 18:29:46 +01:00
David Remer
5b93b88f46 Add Tags endpoint
[PREMIUM-213]
2022-12-16 14:11:34 +01:00
Oluwaseun Olorunsola
d19f5dc732 Add ConfirmationEmailCustomizer class and confirmation email template
MAILPOET-4649
2022-12-15 18:15:01 +01:00
Rostislav Wolny
2bbc1b7063 Add homepage page and submenu item hidden behind feature flag
[MAILPOET-4824]
2022-11-30 11:42:41 +01:00
Jan Jakes
926620e8f8 Ignore strict types rule in all existing files that don't have it
[MAILPOET-2688]
2022-11-29 15:04:09 +01:00
Sam Najian
96dde7107b Expose unsubscribe analytics properperties
[MAILPOET-4733]
2022-11-25 14:51:57 +01:00
David Remer
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
David Remer
7fb8d64628 Rename CaptchaRenderer to CaptchaFormRenderer
[MAILPOET-4203]
2022-11-24 09:20:39 +01:00
Jan Jakes
2e328b6d7f Move temporary automation migrator to a new migration
[MAILPOET-4788]
2022-11-14 12:35:29 +02:00
Jan Jakes
8489e63d34 Delete automation testing system endpoints
[MAILPOET-4788]
2022-11-14 12:35:29 +02:00