Commit Graph

127 Commits

Author SHA1 Message Date
ff6a98fae1 Replace deprecated array types with Doctrine's ArrayParameterType
[MAILPOET-6142]
2024-08-19 15:29:42 +02:00
26a98f1000 Update composer package doctrine/dbal
We cannot update to the latest version of the dbal 3 because there is a another package conflict.
[MAILPOET-6101]
2024-06-17 12:38:08 +02:00
435f638011 Apply rules on lib dir 2024-03-21 16:57:59 +01:00
45dba06b7d Remove old constant
MAILPOET-4985
2024-03-13 10:24:42 +01:00
a9140a702e Add backend logic for purchase with tag filter
MAILPOET-4985
2024-03-13 10:24:42 +01:00
604de62af6 Add filter data mapper tests
MAILPOET-5467
2024-03-11 10:52:30 +01:00
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
24e38d6752 Add explanation of the getLookupData method
MAILPOET-5467
2024-03-11 10:52:30 +01:00
6307cfdcff Add filter data validation
MAILPOET-5467
2024-03-11 10:52:30 +01:00
bfa3770d99 Add backend logic for purchase by attribute filter
MAILPOET-5467
2024-03-11 10:52:30 +01:00
dda7da465f Update # of orders filter for orders with coupon
MAILPOET-5373
2024-01-14 18:40:17 +05:00
09a5a5cbbc Map number of orders with coupon code
MAILPOET-5373
2024-01-14 18:40:17 +05:00
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
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
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
525c80bac4 Fix PHPStan warnings in lib
[MAILPOET-5751]
2023-12-13 11:48:14 +01:00
9985405d82 Add backend logic for number of clicks filter
MAILPOET-5577
2023-10-30 10:51:04 +01:00
c28eed2388 Backend logic for number of emails received
MAILPOET-5577
2023-10-30 10:51:04 +01:00
10f593bf2c Backend logic for first order filter
MAILPOET-5577
2023-10-30 10:51:04 +01:00
43107ac823 Add note about filters to SubscriberTag
MAILPOET-5632
2023-10-13 11:21:42 +02:00
9b7296979e Don't attempt to use WC functions if not enabled
MAILPOET-5625
2023-10-13 11:21:42 +02:00
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
97a53cb1aa Add lookup data retrieval for used payment method
MAILPOET-5625
2023-10-13 11:21:42 +02:00
c4fc8649f4 Add lookup data retrieval for used coupon code
MAILPOET-5625
2023-10-13 11:21:42 +02:00
67cff8992e Add lookup data retrieval for woo product
MAILPOET-5625
2023-10-13 11:21:42 +02:00
9d8fb08026 Add lookup data retrieval for woo category
MAILPOET-5625
2023-10-13 11:21:42 +02:00
54461d89ba Add lookup data retrieval for wordpress user role
MAILPOET-5625
2023-10-13 11:21:42 +02:00
d1f77d3ee5 Add lookup data retrieval for subscribed to list
MAILPOET-5625
2023-10-13 11:21:42 +02:00
af9a6cbb67 Add lookup data retrieval for subscribed via form
MAILPOET-5625
2023-10-13 11:21:42 +02:00
40785d047e Add lookup data retrieval for custom fields
MAILPOET-5625
2023-10-13 11:21:42 +02:00
6da760e754 Add lookup data filter to subscriber tag
MAILPOET-5625
2023-10-13 11:21:42 +02:00
beda4f8d89 Add lookup data retrieval for email filters
MAILPOET-5625
2023-10-13 11:21:42 +02:00
984aa81f86 Add lookup data retrieval for automation filters
MAILPOET-5625
2023-10-13 11:21:42 +02:00
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
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
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
7a6cc36718 Include timeframe in migration to avoid BC code
MAILPOET-5496
2023-08-17 13:49:08 +02:00
8d03db5dcc Add lifetime option to payment/shipping filters
MAILPOET-5496
2023-08-17 13:49:08 +02:00
adc052fc55 Add coupon code filter to mapper/factory
MAILPOET-5007
2023-08-14 13:49:55 +02:00
a446a13354 Add backend logic for used coupon code filter
MAILPOET-5007
2023-08-14 13:49:55 +02:00
d7e283dea9 Handle empty strings as blank in custom fields
MAILPOET-4996
2023-08-07 12:03:49 +02:00
a7d260ac2e Refactor strings to constants/enums
MAILPOET-4996
2023-08-07 12:03:49 +02:00
fe318f5a30 Add 'not contains' option for text custom fields
MAILPOET-4996
2023-08-07 12:03:49 +02:00
a1b51aecf0 Update backend logic to support (not)blank
MAILPOET-4996
2023-08-07 12:03:49 +02:00
ce9cbdc45d Add backend logic for number of reviews filter
MAILPOET-5413
2023-08-07 11:06:27 +02:00
27e346eed0 Fetch action directly from filter data
This fixes an issue where pre-existing subscribedDate filters were
causing errors because they didn't have an `action` stored in their
serialized data.

It was never necessary to store the action redundantly in the serialized
 filter data in the first place, so we're now fetching the action
 directly from the filter data entity itself.

MAILPOET-5500
2023-08-02 22:46:18 +02:00
5eeee574b2 Extract strings to constants
MAILPOET-4991
2023-07-30 19:20:09 +02:00
feb0297fb9 Implement lifetime option for total spent
MAILPOET-4991
2023-07-30 19:20:09 +02:00
d04c84d6d4 Implement lifetime option for number of orders
MAILPOET-4991
2023-07-30 19:20:09 +02:00
64094387eb Implement lifetime option for average spent filter
MAILPOET-4991
2023-07-30 19:20:09 +02:00