Commit Graph

21402 Commits

Author SHA1 Message Date
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
6b8fc3df83 Only load WC data when WC is active
MAILPOET-5467
2024-03-11 10:52:30 +01:00
John Oleksowicz
fe4621f503 Ensure selected terms appear in dropdown on load
MAILPOET-5467
2024-03-11 10:52:30 +01:00
John Oleksowicz
ac27dc1446 Add tracking for purchased with attribute filter
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
John Oleksowicz
477557d22c Use taxonomy slug instead of id
The lookup table, wc_product_attributes_lookup, that we'll use for the
queries, includes the slug but not the taxonomy id.

MAILPOET-5467
2024-03-11 10:52:30 +01:00
John Oleksowicz
2e8a757432 Make attribute term ids a multiselect
MAILPOET-5467
2024-03-11 10:52:30 +01:00
Rodrigo Primo
acc8dde47d Add purchased with attribute segment UI code
[MAILPOET-5467]
2024-03-11 10:52:30 +01:00
Jan Jakes
e90f984379 Fix enum filter validation
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
9327485441 Use "comment_date_gmt" for "in the last" condition
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
b5b21c9f7a Add check for product post type when fetching customer review data
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
46a462ee23 Add test for an automation with if/else step and "in the last X days" filter
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
d7f4f1a137 Fix non-translatable strings
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
1d27d51753 Render "in the last X days" in parameter values
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
5439db1e5a Unify parameter naming
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
1a0eb90402 Mark which fields support the "in the last" parameter for UI
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
5f7362282d Add "in the last" parameter and schema to number and enum filters
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
7f63445f5a Pass filter-provided parameters to field value factories
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
467f1f8c8c Add ability for filters to provide field params
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
1e3d6347fc Add validation for "in the last" parameter
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
4637349a60 Implement filter args validation
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
2303a7480c Add filter type defintions, extract value formatting to each of them
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
d0889a436f Add a way to manage filter types in automation editor store
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
7cb75e77c5 Add explicit casts for WordPressDotOrg.sniffs.DirectDB.UnescapedDBParameter
None of these are needed, but the sniff reports them as false positives, so this is a workaround.

[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
d4fd0bec71 Check for empty array when getting parent term IDs
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
5b2d75dc1f Add "in the last" parameter to "woocommerce:customer:purchased-tags" field
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
176b2dbd53 Add "in the last" parameter to "woocommerce:customer:purchased-categories" field
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
399e61d7b9 Add "in the last" parameter to "woocommerce:customer:review-count" field
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
d0d9c223b4 Simplify factory in integration tester
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
67786c1eee Add "in the last" parameter to "mailpoet:subscriber:automations-exited" field
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
44b65d10be Add "in the last" parameter to "mailpoet:subscriber:automations-processing" field
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
2ef7bf6fac Add "in the last" parameter to "mailpoet:subscriber:automations-entered" field
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
f1b1ca882c Add "in the last" filter for fetching automation IDs by subject
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
504510d724 Simplify fetching automation IDs by subject
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
f36b117987 Add "in the last" parameter to "mailpoet:subscriber:email-clicked-count" field
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
1c7ed9602f Add "in the last" parameter to "mailpoet:subscriber:email-machine-opened-count" field
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
c87fc5ab7e Add "in the last" parameter to "mailpoet:subscriber:email-opened-count" field
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
2421a1b8ea Add "in the last" parameter to "mailpoet:subscriber:email-sent-count" field
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
3dbe1bd049 Add "in the last" parameter to "woocommerce:customer:spent-average" field
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
adff3b61a6 Add "in the last" parameter to "woocommerce:customer:order-count" field
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
Jan Jakes
d9be326aa7 Add "in the last" parameter to "woocommerce:customer:spent-total" field
[PREMIUM-253]
2024-03-11 10:31:15 +01:00
John Oleksowicz
314b1f3c27 Change method for detecting empty product pages
The previous method was relying on the idea that product pages would not
 trigger the `the_content` filter since they don't have to render the
 content. Testing revealed that this idea was unreliable.

In one instance WordPress was triggering `the_content` when attempting
to filter the excerpt, even though the excerpt was empty.

This changes the detection method to a much more direct inspection of
the post's content.

MAILPOET-5859
2024-03-08 12:27:06 +01:00
John Oleksowicz
0ab2be782d Show forms on empty product pages
The current logic for form rendering assumes that a single product page
will trigger the filter `the_content`. This is not always true. In cases
where the product has no description, WooCommerce does not render the
description tab at all, which is where that filter usually fires (in my
testing).

This change ensures that we still give these forms a chance to render on
 such pages.

MAILPOET-5859
2024-03-08 12:27:06 +01:00
Jan Jakes
f6d8eb41b4 Sort automation filters alphabetically
[MAILPOET-5683]
2024-03-08 11:30:08 +01:00
Rostislav Wolny
fefc56d5de Move component PremiumModalForStepEdit from common to automations
This was causing common components were dependent on the automation store
and was causing subsequent issues when the original modal was used in the email editor.
[MAILPOET-5932]
2024-03-07 17:04:19 +01:00
Veljko
f7fbe3fc8c Try adding product to checkout directly 2024-03-07 11:13:03 +01:00
Veljko
f2db5c71d0 Add product to cart before test 2024-03-07 11:13:03 +01:00