Commit Graph

187 Commits

Author SHA1 Message Date
Mike Jolley
435f638011 Apply rules on lib dir 2024-03-21 16:57:59 +01:00
John Oleksowicz
45dba06b7d Remove old constant
MAILPOET-4985
2024-03-13 10:24:42 +01:00
John Oleksowicz
a9140a702e Add backend logic for purchase with tag filter
MAILPOET-4985
2024-03-13 10:24:42 +01:00
John Oleksowicz
604de62af6 Add filter data mapper tests
MAILPOET-5467
2024-03-11 10:52:30 +01:00
John Oleksowicz
a4a2ef3b1f Add support for local variation attributes
In WooCommerce it's possible to create attributes that are local to a
specific product. When these attributes are used to generate variations,
 they are stored in the postmeta table.

MAILPOET-5467
2024-03-11 10:52:30 +01:00
John Oleksowicz
24e38d6752 Add explanation of the getLookupData method
MAILPOET-5467
2024-03-11 10:52:30 +01:00
John Oleksowicz
6307cfdcff Add filter data validation
MAILPOET-5467
2024-03-11 10:52:30 +01:00
John Oleksowicz
bfa3770d99 Add backend logic for purchase by attribute filter
MAILPOET-5467
2024-03-11 10:52:30 +01:00
Jan Jakes
51a14a45d3 Use refreshAll() for updates, refresh subscribers/subscriber custom fields conditionally
[MAILPOET-5752]
2024-02-12 15:33:28 +01:00
alex-mpoet
014b8249bb Replace entityManager->clear with a helper, add cleanup to WP user sync
[MAILPOET-5752]
2024-02-12 15:33:28 +01:00
Rodrigo Primo
6f98634b94 Replace Subscriber and SubscriberSegment models with Doctrine in \MailPoet\Segments\WP
[MAILPOET-5752]
2024-02-12 15:33:28 +01:00
Rodrigo Primo
374fbe6867 Replace Segment model with Doctrine in \MailPoet\Segments\WP
[MAILPOET-5752]
2024-02-12 15:33:28 +01:00
Rodrigo Primo
b63834b02b Change return type as the method always returns a segment
[MAILPOET-5752]
2024-02-12 15:33:28 +01:00
John Oleksowicz
dda7da465f Update # of orders filter for orders with coupon
MAILPOET-5373
2024-01-14 18:40:17 +05:00
John Oleksowicz
09a5a5cbbc Map number of orders with coupon code
MAILPOET-5373
2024-01-14 18:40:17 +05:00
John Oleksowicz
d477b01111 Fix ALL query
The previous implementation relied on INTERSECT, which isn't available
in MySQL

MAILPOET-5264
2023-12-18 12:02:48 +01:00
John Oleksowicz
08f2540bf9 Fix logic for ALL operator
Determining the proper conditions for product categories when we are
looking for a customer who purchased all of the provided category IDs is
 tricky because we need to account for the hierarchical nature of these
 categories. In order to avoid more complex logic, I decided to apply
 the ANY logic for each individual category ID and then return the
 intersection of those queries.

MAILPOET-5264
2023-12-18 12:02:48 +01:00
John Oleksowicz
88263067b7 Fix woo category filter
The previous implementation was based on the number of order IDs, which
was not reliable.

MAILPOET-5264
2023-12-18 12:02:48 +01:00
Jan Lysý
525c80bac4 Fix PHPStan warnings in lib
[MAILPOET-5751]
2023-12-13 11:48:14 +01:00
 Ján Mikláš
dfe6076599 Unify quotes around IDs in error messages
[MAILPOET-5729]
2023-11-24 08:10:35 +02:00
John Oleksowicz
5972db6a47 Handle errors when filtering dynamic segments
When a segment has an invalid filter we don't want that error to
break other pages in the MailPoet admin.

MAILPOET-5538
2023-11-02 13:19:51 +01:00
Jan Jakes
b734a0642f Refresh task entity when any subscribers were added from segments
This is to keep $task->getSubscribers() up-to-date.

[MAILPOET-4375]
2023-11-02 12:53:36 +01:00
John Oleksowicz
9985405d82 Add backend logic for number of clicks filter
MAILPOET-5577
2023-10-30 10:51:04 +01:00
John Oleksowicz
c28eed2388 Backend logic for number of emails received
MAILPOET-5577
2023-10-30 10:51:04 +01:00
John Oleksowicz
10f593bf2c Backend logic for first order filter
MAILPOET-5577
2023-10-30 10:51:04 +01:00
John Oleksowicz
43107ac823 Add note about filters to SubscriberTag
MAILPOET-5632
2023-10-13 11:21:42 +02:00
John Oleksowicz
9b7296979e Don't attempt to use WC functions if not enabled
MAILPOET-5625
2023-10-13 11:21:42 +02:00
John Oleksowicz
b1dd110bf8 Add lookup data retrieval for used shipping method
For ease of lookup, I changed the helper to return an array with keys
corresponding to the instanceId of the shipping methods. I couldn't see
anywhere else in the codebase where the keys would have mattered.

MAILPOET-5625
2023-10-13 11:21:42 +02:00
John Oleksowicz
97a53cb1aa Add lookup data retrieval for used payment method
MAILPOET-5625
2023-10-13 11:21:42 +02:00
John Oleksowicz
c4fc8649f4 Add lookup data retrieval for used coupon code
MAILPOET-5625
2023-10-13 11:21:42 +02:00
John Oleksowicz
67cff8992e Add lookup data retrieval for woo product
MAILPOET-5625
2023-10-13 11:21:42 +02:00
John Oleksowicz
9d8fb08026 Add lookup data retrieval for woo category
MAILPOET-5625
2023-10-13 11:21:42 +02:00
John Oleksowicz
54461d89ba Add lookup data retrieval for wordpress user role
MAILPOET-5625
2023-10-13 11:21:42 +02:00
John Oleksowicz
d1f77d3ee5 Add lookup data retrieval for subscribed to list
MAILPOET-5625
2023-10-13 11:21:42 +02:00
John Oleksowicz
af9a6cbb67 Add lookup data retrieval for subscribed via form
MAILPOET-5625
2023-10-13 11:21:42 +02:00
John Oleksowicz
40785d047e Add lookup data retrieval for custom fields
MAILPOET-5625
2023-10-13 11:21:42 +02:00
John Oleksowicz
6da760e754 Add lookup data filter to subscriber tag
MAILPOET-5625
2023-10-13 11:21:42 +02:00
John Oleksowicz
beda4f8d89 Add lookup data retrieval for email filters
MAILPOET-5625
2023-10-13 11:21:42 +02:00
John Oleksowicz
984aa81f86 Add lookup data retrieval for automation filters
MAILPOET-5625
2023-10-13 11:21:42 +02:00
John Oleksowicz
12362c0399 Update filter interface for lookup data
This method is intended to store the actual names of things that might
change or be deleted in the future, so we can include accurate
information when showing what the snapshot of the filter was at the time
.

MAILPOET-5625
2023-10-13 11:21:42 +02:00
John Oleksowicz
673a1ab0fd Ensure correct parameter types
It's not enough to just merge the parameters. Without merging types as
well, array parameters aren't handled correctly.

MAILPOET-5510
2023-10-04 12:59:38 +02:00
John Oleksowicz
6b2b35b541 Add ability to get count filtered by segment
MAILPOET-5510
2023-10-04 12:59:38 +02:00
Rodrigo Primo
00b33c2825 Change the length of the random string appended to segments
This commit changes the length of the random string appended to segments
created from a template when a segment with the same name already
exists. Before the length was 12 and now it is 5. We don't need a very
long random string in this case, and the shorter the string the less
ugly it is.

[MAILPOET-5394]
2023-09-18 14:43:49 +02:00
Rodrigo Primo
f806b3362c Add a random string when creating a segment if the name already exists
This ensures that it is possible to create multiple segments from the
same template.

[MAILPOET-5394]
2023-09-18 14:43:49 +02:00
David Remer
25bf3f60e3 Add primary keys to tmp_wc_ids and tmp_wc_emails temporary tables
[MAILPOET-4401]
2023-09-04 14:22:16 +02:00
John Oleksowicz
e407c40ecd Fix indentation
MAILPOET-5509
2023-08-31 14:16:10 +02:00
John Oleksowicz
a9bd65190c Clearer naming for verification method
MAILPOET-5509
2023-08-31 14:16:10 +02:00
John Oleksowicz
fe44df1884 Prevent invalid states due to filter segment
MAILPOET-5509
2023-08-31 14:16:10 +02:00
John Oleksowicz
f52b1343f8 Implement subscriber filtering in scheduled tasks
If a filterSegmentId is provided, ensure only subscribers who belong to
that segment get included in the scheduled task.

MAILPOET-5509
2023-08-31 14:16:10 +02:00
John Oleksowicz
2a97189d97 Add ability for SubscribersFinder to filter by dynamic segment
MAILPOET-5509
2023-08-31 14:16:10 +02:00