Commit Graph

1041 Commits

Author SHA1 Message Date
Pavel Dohnal
5b45bdac1e Enable joining segments using and/or
[MAILPOET-3212]
2021-03-23 15:58:34 +01:00
Pavel Dohnal
ceae8e17aa Make parameters unique
[MAILPOET-3212]

We need to be able to connect the same segments:
users who are editor or administrator
2021-03-23 15:58:34 +01:00
Pavel Dohnal
7a98abdead Connect dynamic segments filters using UNION select
[MAILPOET-3212]
2021-03-23 15:58:34 +01:00
wxa
eadb02ae5c Add tests for WP style shortcodes and arguments
[MAILPOET-3465]
2021-03-22 12:19:59 +01:00
Pavel Dohnal
98ee40a203 Use doctrine entity in newsletter task test
[MAILPOET-3027]
2021-03-16 14:40:18 +01:00
Pavel Dohnal
82bf183a6c Use doctrine entity in posts test
[MAILPOET-3027]
2021-03-16 14:40:18 +01:00
Pavel Dohnal
caad80a09c Use doctrine entity to truncate table in tests
[MAILPOET-3027]
2021-03-16 14:40:18 +01:00
Jan Lysý
6f5f3bc6c5 Remove usage of old model from SubscriptionTest
[MAILPOET-3268]
2021-03-16 14:39:47 +01:00
Jan Lysý
7968db94ff Update integration tests for usage SubscribersRepository
[MAILPOET-3268]
2021-03-16 14:39:47 +01:00
Rodrigo Primo
a49bf8118a Attempt to fix a flaky integration test
This commit attempts to fix the integration test
SubscriberListingRepositoryTest::testReturnsCorrectCountForSubscribersInDynamicSegment()
that was failing sometimes on CircleCI. My theory is that the test was
failing because we were using created_at to order the subscribers in the
query that is used to get subscribers in a given dynamic segment, but
there is a chance the the value of this field is the same for all the
three subscribers that are created in this test. As this could lead to a
situation where the order of the returned subscribers changes, causing
the test to fail. To work around that, I changed the test to order the
results by ID. This way we should always get the subscribers in the same
order.

[MAILPOET-3451]
2021-03-15 14:33:59 +01:00
Jan Lysý
9434ef2375 Add tests for methods moved from endpoint to controller
[MAILPOET-3034]
2021-03-11 11:46:16 +01:00
Jan Lysý
cb0d3c70ad Use Doctrine for update success message in Settings
[MAILPOET-3034]
2021-03-11 11:46:16 +01:00
wxa
67824f9eb1 Set task status to invalid instead of deleting
[MAILPOET-3359]
2021-03-10 18:24:21 +01:00
wxa
3f7b809bd4 Delete tasks without queues when fetching sending tasks
[MAILPOET-3379]
2021-03-10 18:24:21 +01:00
Rostislav Wolny
aff4c9d5b7 Fix dynamic segments filtering in subscriber export
[MAILPOET-3177]
2021-03-10 15:20:32 +01:00
Rostislav Wolny
6bc557ecb0 Refactor dynamic segments bulk actions endpoint
[MAILPOET-3177]
2021-03-10 15:20:32 +01:00
Rostislav Wolny
2db223daf7 Refactor dynamic segments delete endpoint
[MAILPOET-3177]
2021-03-10 15:20:32 +01:00
Rostislav Wolny
e1eea57d32 Refactor dynamic segments trash and restore
[MAILPOET-3177]
2021-03-10 15:20:32 +01:00
Rostislav Wolny
51f8b30355 Remove unused old dynamic segments services
[MAILPOET-3177]
2021-03-10 15:20:32 +01:00
Rostislav Wolny
f5df2601ef Refactor segment test data factories to work with Doctrine
[MAILPOET-3177]
2021-03-10 15:20:32 +01:00
Rostislav Wolny
9fdebdb4d7 Refactor api for creating/updating dynamic segments
[MAILPOET-3177]
2021-03-10 15:20:32 +01:00
Rostislav Wolny
40c9f047be Refactor segment filter data to embedded object
[MAILPOET-3177]
2021-03-10 15:20:32 +01:00
Rostislav Wolny
bd63ae508f Refactor dynamic segments get endpoint to doctrine
[MAILPOET-3177]
2021-03-10 15:20:32 +01:00
Rostislav Wolny
d42752fa99 Add test for dynamic segments listing response builder
[MAILPOET-3177]
2021-03-10 15:20:32 +01:00
Pavel Dohnal
8608bc7875 Use newsletter sent at in dates shortcode
[MAILPOET-3375]
2021-03-10 14:38:05 +01:00
wxa
e71e063ef0 Use same query logic for counting and exporting subs w/o lists
[MAILPOET-3462]
2021-03-10 13:16:48 +01:00
wxa
19dd9180bd Rename 'not in a list' option
[MAILPOET-3462]
2021-03-10 13:16:48 +01:00
Rostislav Wolny
6f42222abc Fix subscriber consent data in export
[MAILPOET-3472]
2021-03-09 13:13:55 +01:00
Jan Lysý
62bf43ad3f Add consent evidence columns to import tests
[MAILPOET-3389]
2021-03-08 11:39:44 +01:00
Jan Lysý
a3224e9286 Remove old unused class for read subscribers
[MAILPOET-3376]
2021-03-08 09:09:00 +01:00
Jan Lysý
8450beaf10 Add tests for get subscribers in ImportExportRepository
[MAILPOET-3376]
2021-03-08 09:09:00 +01:00
Jan Lysý
4a2af719db Remove use old model from ExportTest
[MAILPOET-3376]
2021-03-08 09:09:00 +01:00
Rodrigo Primo
844ea3f6d8 Truncate first and last names before adding to wp_mailpoet_subscribers
MailPoet syncs users from wp_users to wp_mailpoet_subscribers. The
problem is that WP stores first and last names in a longtext field and
MP uses a varchar(255) field. This was causing a fatal error when
synchronizing names over 255 characters. This commit fixes this problem
by using SUBSTRING() to make sure that the 255 characters limit is
enforced when adding values to the columns first_name and last_name of
the wp_mailpoet_subscribers table. This should get rid of the fatal
error and it shouldn't be a problem to most users as it is unlikely that
a real user has a first or last name that is longer than 255 characters.

[MAILPOET-3246]
2021-03-02 16:09:47 +01:00
Jan Lysý
cbea75927a Add ignoring improper subscribers from MailChimp
[MAILPOET-3404]
2021-03-02 14:29:27 +01:00
Jan Lysý
878e3eb28f Simplify newsletter body data repair
[MAILPOET-3430]
2021-03-02 13:48:07 +01:00
Jan Lysý
78717509c8 Add tests for newsletter data fixers
[MAILPOET-3430]
2021-03-02 13:48:07 +01:00
Rodrigo Primo
a50c20637a Create an empty WC_Emails stub instead of using stdClass in a test
This commit simply improves an integration test that I modified while
working on [MAILPOET-3421] to use an empty WC_Emails stub instead of
using stdClass.
2021-03-01 14:14:19 +01:00
Rodrigo Primo
edbb69a239 Use the woocommerce_email action to customize WC emails
This commit changes the WC action that MailPoet uses to hook into WC and
customize the footer and the header of WC e-mails. Before, MailPoet was
using the woommerce_init action. The problem with using this action to customize
the e-mails is that it runs on every request. Furthermore, since we were calling
WC->mailer() inside the callback, we were instantiating WC_Emails on
every single request (WooCommerce instantiate this class only when
needed).

Replacing woocommerce_init with woocommerce_email means that our code
will run only when needed (right after WooCommerce adds callbacks to the
actions woocommerce_email_header and woocommerce_email_footer) and that
we won't be unnecessarily instantiating WC_Emails ourselves. We get the
singleton instance of this class as a parameter.

[MAILPOET-3421]
2021-03-01 14:14:19 +01:00
Rodrigo Primo
575b34fc97 Fix "Purchased In This Category" email for product variations
The "Purchased In This Category" email was not working for variable
products. This was happening because MailPoet calls
WC_Product::get_category_ids() to get the list of WooCommerce
categories associated with a given product, but this method doesn't work
for product variations (see
https://github.com/woocommerce/woocommerce/issues/12942).

In this commit, I'm implementing a workaround. I changed the code to
check if the product is a product variation and, if so, get the
categories from the parent product instead of the product itself. But I
also plan to raise this issue with the WooCommerce team as, in my opinion,
it is odd that WC_Product::get_category_ids() doesn't work with product
variations and fails silently.

[MAILPOET-3416]
2021-03-01 13:32:52 +01:00
Rostislav Wolny
438c9a7469 Alter data validation regexp so that is not malformed by wptexturize
[MAILPOET-3440]
2021-03-01 10:08:08 +01:00
Rostislav Wolny
5c38069caa Add scheduled tasks cleanup to tests setup
[MAILPOET-3412]
2021-03-01 08:43:45 +01:00
Rostislav Wolny
ff284cb12f Fix flaky Import test
Comparing timestamps with delta parameter allow values that differs by 1 second.
[MAILPOET-3412]
2021-03-01 08:43:45 +01:00
Jan Lysý
2bf5e93125 Add integration test for ImportExportRepository
[MAILPOET-3378]
2021-02-18 10:13:44 +01:00
Jan Lysý
0347e44893 Use importExportRepository in import
[MAILPOET-3378]
2021-02-18 10:13:44 +01:00
Jan Lysý
d500f872d7 Refactor integration Import test
[MAILPOET-3378]
2021-02-18 10:13:44 +01:00
Jan Lysý
1deaef4321 Use Doctrine in integration test for Import
[MAILPOET-3378]
2021-02-18 10:13:44 +01:00
Jan Lysý
2f1899d810 Add new dependencies to ImportTest
[MAILPOET-3378]
2021-02-18 10:13:44 +01:00
Rostislav Wolny
dc4727117c Fix view in browser link shortcode and extend test
[MAILPOET-3434]
2021-02-17 16:11:59 +01:00
Rostislav Wolny
6bf62ee90a Fix links in form checkbox label
[MAILPOET-3433]
2021-02-17 11:00:15 +01:00
Rostislav Wolny
54cee207ea Remove forgotten test debug code
[MAILPOET-3415]
2021-02-15 13:30:08 +01:00