Commit Graph

16368 Commits

Author SHA1 Message Date
Rodrigo Primo
7cb6609faa Skip WooCommerce Subscriptions test when Woo COT is enabled
Currently, WooCommerce Subscriptions doesn't support WooCommerce Custom
Orders Table, so we want to skip all WooCommerce Subscriptions related
tests when Woo COT is enabled.

[MAILPOET-4695]
2022-10-06 12:16:47 +02:00
Rodrigo Primo
ef8bc9250a Change codeception extension to catch skipped tests
This commit changes the Codeception extension CheckSkippedTestsExtension
that we use to generate an error when tests are skipped in the `trunk` and
`release` branches. Now this extension accepts a list of tests that can
be skipped in those two branches. This will be necessary as part of the
project to support WooCommerce Custom Orders Tables as in some scenarios
we want to skip WooCommerce Subscriptions tests and in some we don't.
For now, WooCommerce Subscrptions doesn't support Woo COT, so we want to
run Woo Subscriptions tests when COT is disabled, but we want to skip
then when COT is enabled.

The main change is that now we are using the `TEST_SKIPPED` Codeception event
instead of the `SUITE_AFTER` event. This change was necessary as in the
latter event we don't have any information about the tests that were
skipped.

[MAILPOET-4695]
2022-10-06 12:16:47 +02:00
David Remer
307989a0c6 Delete task when no newsletter was found
When no corresponding newsletter was found the task can be deleted. The behavior
before meant that such a task would remain forever in the database with the
status 'running'.

[MAILPOET-4699]
2022-10-06 12:06:13 +02:00
David Remer
357dede83d Allow newsletter_id to be NULL in sending_queue table
[MAILPOET-4699]
2022-10-06 12:06:13 +02:00
David Remer
1a8f0c384c Improve logging of errors in cron
Sometimes errors overlap each other so that the 'Last Seen error' we log
does not provide sufficient information on the cause of a problem.

E.g. one worker might cause an SQL issue, which closes the EntityManager and a
subsequent worker might overwrite this error with the information that the
EntityManager is closed.

With this commit, both those issues will be logged as an error.

[MAILPOET-4699]
2022-10-06 12:06:13 +02:00
Jan Lysý
ccb1e7dc94 Improve ordering in mapping
[MAILPOET-4583]
2022-10-05 14:14:34 +02:00
Jan Lysý
159233f3e5 Remove duplicity from mapping
[MAILPOET-4583]
2022-10-05 14:14:34 +02:00
Jan Lysý
cc8f261629 Add used dynamic filter types into tracking
[MAILPOET-4583]
2022-10-05 14:14:34 +02:00
Jan Lysý
f1b59173dd Add filters into newsletter response
[MAILPOET-4583]
2022-10-05 14:14:34 +02:00
Jan Lysý
6668a87eb3 Add reporting about tags usage
[MAILPOET-4583]
2022-10-05 14:14:34 +02:00
Rodrigo Primo
f734091e34 Replace PHP's builtin exception with Mailpoet's RuntimeException
Use a more specific exception.

[MAILPOET-4577]
2022-10-05 10:47:06 +02:00
Rodrigo Primo
05fb310130 Use different query to get emails and orderds IDs if WooCoomerce COT is enabled
[MAILPOET-4577]
2022-10-05 10:47:06 +02:00
Rodrigo Primo
ff105f8e61 Add helper method to get the name of the WooCommerce orders table
[MAILPOET-4577]
2022-10-05 10:47:06 +02:00
Rodrigo Primo
54ea394f82 Deprecate filter as part of a Doctrine refactor
This commit deprecates the filter
mailpoet_sending_newsletter_render_after and replaces it with
mailpoet_sending_newsletter_render_after_pre_process. This was necessary
because as part of a Doctrine refactor one of the parameters passed to
the old filter changed from a Newsletter model to a Newsletter entity.

[MAILPOET-4680]
2022-10-04 14:41:00 +02:00
Rodrigo Primo
d39440f1dc Refactor Newsletter::preProcessNewsletter() to use Doctrine
This commit also removes almost all the usages of the old Newsletter
model from NewsletterTest.

[MAILPOET-4680]
2022-10-04 14:41:00 +02:00
Rodrigo Primo
095cddc67e Change Posts::getAlcPostsCount() to use Doctine instead of Paris
[MAILPOET-4680]
2022-10-04 14:41:00 +02:00
Rodrigo Primo
e4cf6ddb57 Use Subscriber data factory instead of SubscriberEntity
This change is in the context of creating a new subscriber.

Doing this following feedback during PR review.

[MAILPOET-4377]
2022-10-04 14:22:02 +02:00
Rodrigo Primo
7582f3c991 Remove old Segment model from WooCommercePastRevenues
[MAILPOET-4377]
2022-10-04 14:22:02 +02:00
Rodrigo Primo
52d85d7b3d Remove old Newsletter model from WooCommercePastRevenues
[MAILPOET-4377]
2022-10-04 14:22:02 +02:00
Rodrigo Primo
500d70356e Remove old Subscriber model from WooCommercePastRevenues
[MAILPOET-4377]
2022-10-04 14:22:02 +02:00
Rodrigo Primo
d7c1789fe2 Remove old StatisticsNewsletter model from WooCommercePastRevenues
[MAILPOET-4377]
2022-10-04 14:22:02 +02:00
Rodrigo Primo
a105c7c779 Remove old SendingQueue model from WooCommercePastRevenues
[MAILPOET-4377]
2022-10-04 14:22:02 +02:00
Rodrigo Primo
184053d914 Remove old ScheduledTaskSubscriber model from WooCommercePastRevenues
[MAILPOET-4377]
2022-10-04 14:22:02 +02:00
Rodrigo Primo
e56229e3ba Replace all ORM::rawExecute() calls with Doctrine code
[MAILPOET-4377]
2022-10-04 14:22:02 +02:00
Rodrigo Primo
a45ea7e50c Remove old NewsletterSegment model from WooCommercePastRevenues
[MAILPOET-4377]
2022-10-04 14:22:02 +02:00
David Remer
f4c0eebbaa Release 3.100.0 2022-10-04 13:30:22 +03:00
Rodrigo Primo
fa4c4d02d6 Update method to enable WooCommerce Custom Orders Tables
The latest version development build of WooCommerce contains a change
that modified the method that should be called to enable Woo Custom
Orders Tables (see this Woo PR for more information:
https://github.com/woocommerce/woocommerce/pull/34727. This commit
update the plugin that we use in the acceptance and integration tests to
reflect this change.

[MAILPOET-4691]
2022-10-04 09:26:11 +02:00
Rodrigo Primo
db0a8bee0f Update Woo COT build in test to the latest version
The latest version is 7.0.0-hpos.dev.4

[MAILPOET-4691]
2022-10-04 09:26:11 +02:00
Rodrigo Primo
8aabcb5857 Use Woo native function instead of custom query in getGuestCustomerOrderCountByEmail()
[MAILPOET-4570]
2022-10-03 15:10:36 +02:00
Rodrigo Primo
a171206da2 Add basic test to cover scheduling first purchase email for guest customer
[MAILPOET-4570]
2022-10-03 15:10:36 +02:00
Rodrigo Primo
7de66934ca Add option to set billing_email when creating test Woo orders
[MAILPOET-4570]
2022-10-03 15:10:36 +02:00
Rodrigo Primo
b592ce743d Use Woo native function instead of custom query in getOrdersCountCreatedBefore()
[MAILPOET-4570]
2022-10-03 15:10:36 +02:00
Rodrigo Primo
54b68712e9 Add basic test to cover the happy path of WooCommerce\Helper::getOrdersCountCreatedBefore()
[MAILPOET-4570]
2022-10-03 15:10:36 +02:00
Rodrigo Primo
6a06b81dca Add option to set date_created when creating test Woo orders
[MAILPOET-4570]
2022-10-03 15:10:36 +02:00
David Remer
4ba1d3a5b5 segment_ids should not be a required argument
[MAILPOET-4689]
2022-10-03 11:22:34 +02:00
David Remer
617f256e8d roles argument should not be required
[MAILPOET-4689]
2022-10-03 11:22:34 +02:00
Jan Lysý
37d9bc5d0c Replace styles fixing with styles checking
[MAILPOET-4550]
2022-10-03 11:16:21 +02:00
Rodrigo Primo
83319949ef Use WooCommerce code instead of direct query to get highest order ID
[MAILPOET-4570]
2022-10-03 09:30:42 +02:00
Rodrigo Primo
7472a0a815 Change WooCommerceSyncTest to test also getHighestOrderId()
[MAILPOET-4570]
2022-10-03 09:30:42 +02:00
Rodrigo Primo
b6bdce3535 Change insertSubscriberFromOrder() to use WooCommerce methods
This commit changes
\MailPoet\Segments\WooCommerce::insertSubscriberFromOrder() to use
WooCommerce method instead of querying the database directly. This is
needed as WooCommerce is moving away from WP tables and creating its own
tables.

[MAILPOET-4570]
2022-10-03 09:30:42 +02:00
Rodrigo Primo
8e88a86f02 Refactor Segments\WooCommerce tests to stop using a WC_Order mock
We want to use real WooCommerce code instead of mocks for the tests that
are part of the woo test group and this change is necessary for a
subsequent commit that will modify
\MailPoet\Segments\WooCommerce::insertSubscriberFromOrder().

[MAILPOET-4570]
2022-10-03 09:30:42 +02:00
David Remer
64a8c3700c Fix loading of WpUserSegment
[MAILPOET-4690]
2022-09-30 15:28:03 +02:00
Brezo Cordero
051309cd32 Release 3.99.1 2022-09-30 09:38:15 +02:00
Jan Jakes
1640ca37dc Add migration for notification history records that are stuck in sending status
[MAILPOET-4685]
2022-09-29 15:19:09 -03:00
Jan Lysý
f9b521a42d Add check that newsletter history record is not deleted
[MAILPOET-4685]
2022-09-29 15:19:09 -03:00
Jan Lysý
4deb137063 Rename method in repository
[MAILPOET-4685]
2022-09-29 15:19:09 -03:00
Jan Lysý
58d32a68fb Use processedAt from the correct model
[MAILPOET-4685]
2022-09-29 15:19:09 -03:00
Jan Lysý
0551d02815 Add refreshing sending queue
Because we are still working with old model on some places, it's necessary to refresh both sides of the relation.
[MAILPOET-4685]
2022-09-29 15:19:09 -03:00
Jan Lysý
e73d936d91 Add test case for adding tags
[MAILPOET-4557]
2022-09-28 11:42:51 +02:00
Jan Lysý
88f427290b Add tagging subscribers subscribed via form
[MAILPOET-4557]
2022-09-28 11:42:51 +02:00