Commit Graph

21722 Commits

Author SHA1 Message Date
David Remer
e9509aa0a8 Make strings translateable
[MAILPOET-5826]
2024-01-22 12:11:47 +01:00
David Remer
7af8696acd Add Crowdsignal to readme
[MAILPOET-5826]
2024-01-22 12:11:47 +01:00
David Remer
172daa5c64 Load crowdsignal script only when 3rd parties are enabled
If they are disabled, show an external link to the poll

[MAILPOET-5826]
2024-01-22 12:11:47 +01:00
David Remer
0f0566c8b1 Extend readme and add beamer
[MAILPOET-5826]
2024-01-22 12:11:47 +01:00
David Remer
836a23c1be Prevent Worker from running when 3rd parties are disabled
[MAILPOET-5826]
2024-01-22 12:11:47 +01:00
David Remer
7defccd834 Test that the beamer background task does not run when 3rd parties are not enabled
[MAILPOET-5826]
2024-01-22 12:11:47 +01:00
David Remer
738bcc69ef Do not show the Updates-button when 3rd parties are not enabled
[MAILPOET-5826]
2024-01-22 12:11:47 +01:00
David Remer
f15332c1d4 Add TOS and Privacy Policy links to existing services
[MAILPOET-5826]
2024-01-22 12:11:47 +01:00
David Remer
fcbe0e86a8 Add links to existing services
[MAILPOET-5826]
2024-01-22 12:11:47 +01:00
David Remer
37d3e61bd2 Ignore ORMInvalidArgumentException when trying to remove the SendingQueueEntity
When a newsletter gets deleted in the Newsletter Repository the associated SendingQueueEntity gets removed.
This can happen and afterwards the SendingTask gets deleted. In these cases, we catch the error that
the entity can not be removed and continue the process.

[MAILPOET-5829]
2024-01-20 14:02:52 +05:00
David Remer
b0c42248a3 Detach entities when bulk deleting Newsletters
[MAILPOET-5829]
2024-01-20 14:02:52 +05:00
David Remer
9624ce4e0a Allow to detach different entities
[MAILPOET-5829]
2024-01-20 14:02:52 +05:00
Brezo Cordero
6d86cc9983 Improve readability
[MAILPOET-5832]
2024-01-20 13:39:23 +05:00
Brezo Cordero
dffebc231e Add comment on check for PAUSED task during batch processing
[MAILPOET-5832]
2024-01-20 13:39:23 +05:00
Brezo Cordero
5a4140c65a Improve readability
[MAILPOET-5832]
2024-01-20 13:39:23 +05:00
Brezo Cordero
d76aec0431 Add return type
[MAILPOET-5832]
2024-01-20 13:39:23 +05:00
Brezo Cordero
b80f71f8c2 Remove unused code
[MAILPOET-5832]
2024-01-20 13:39:23 +05:00
Brezo Cordero
4a0ed51c8c Reduce API calls to verify sender domain during sending
and call checkAuthorizedEmailAddresses on bulk email sending error.

[MAILPOET-5832]
2024-01-20 13:39:23 +05:00
Brezo Cordero
9d8de3b3cf Use a transient to store sender domains
to reduce API calls.

[MAILPOET-5832]
2024-01-20 13:39:23 +05:00
Brezo Cordero
e7aa261828 Process Soft error for domain authorization
Pause the task and do not update counts.

[MAILPOET-5832]
2024-01-20 13:39:23 +05:00
Brezo Cordero
fb406350a5 Map ERROR_MESSAGE_BULK_EMAIL_FORBIDDEN
Create a soft error to not block sending.

[MAILPOET-5832]
2024-01-20 13:39:23 +05:00
Brezo Cordero
c65cf4d6b1 Add new API error for forbidden bulk email
[MAILPOET-5832]
2024-01-20 13:39:23 +05:00
Brezo Cordero
42618ab15c Pause sending task if sender address not valid
[MAILPOET-5832]
2024-01-20 13:39:23 +05:00
Brezo Cordero
ab23a01423 Modify the check for sender address
to implement rule for existing campaigns.

[MAILPOET-5832]
2024-01-20 13:39:23 +05:00
Brezo Cordero
56556493fe Add function isAuthorizedDomainRequiredForExistingCampaigns
[MAILPOET-5832]
2024-01-20 13:39:23 +05:00
Brezo Cordero
78faadc126 Use new function to get verified domains
It uses the overall status set by the shop instead of checking the records.

[MAILPOET-5832]
2024-01-20 13:39:23 +05:00
Pavel Dohnal
db9813a3aa Remove gradients from the new email editor
[MAILPOET-5824]
2024-01-19 13:13:27 +01:00
Pavel Dohnal
93b5158846 Fix a typo in a comment
[MAILPOET-5824]
2024-01-19 13:13:27 +01:00
Jan Jakes
0872edba99 Fix multisite tests failing on trunk
The fix for single-site was done in 895c2ad3e1,
this commit adds a fix for multisite.

[MAILPOET-5835]
2024-01-17 13:02:48 -06:00
Jan Jakes
dbd88f8313 Simplify fetching subscriber IDs
[MAILPOET-5737]
2024-01-17 22:32:37 +05:00
Rodrigo Primo
895c2ad3e1 Make sure WP user is deleted after each test
Doing this to avoid causing problems in other tests from other classes.
Without removing the WP user here we were getting the following failure
in CircleCI:

```
1) MailerTest: It can prepare subscriber for sending
 Test  tests/integration/Cron/Workers/SendingQueue/Tasks/MailerTest.php:testItCanPrepareSubscriberForSending
  [MailPoetVendor\Doctrine\DBAL\Exception\UniqueConstraintViolationException] An exception occurred while executing 'INSERT INTO mp_mailpoet_subscribers (wp_user_id, is_woocommerce_user, first_name, last_name, email, status, subscribed_ip, confirmed_ip, confirmed_at, last_subscribed_at, unconfirmed_data, source, count_confirmations, unsubscribe_token, link_token, engagement_score, engagement_score_updated_at, last_engagement_at, last_sending_at, last_open_at, last_click_at, last_purchase_at, last_page_view_at, woocommerce_synced_at, email_count, created_at, updated_at, deleted_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' with params [null, 0, "John", "Doe", "test@example.com", "subscribed", null, null, null, "2023-11-23 19:31:34", null, "unknown", 0, null, null, null, null, null, null, null, null, null, null, null, 0, "2023-11-23 19:31:34", "2023-11-23 19:31:34", null]:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'test@example.com' for key 'email'
```

https://app.circleci.com/pipelines/github/mailpoet/mailpoet/16312/workflows/c241bba8-27b9-411e-aa60-ab51af4efc58/jobs/276761?invite=true#step-105-405846_52

[MAILPOET-5737]
2024-01-17 22:32:37 +05:00
Rodrigo Primo
53bf712da9 Deprecate the StatisticsNewsletters model
This method is not used anymore and can be deprecated.

[MAILPOET-5737]
2024-01-17 22:32:37 +05:00
Rodrigo Primo
1a1f48eb15 Replace SendingQueue model with Doctrine in SendingQueueTest
I opted to remove testItDeletesQueueWhenNewsletterIsNotFound() as I
wasn't sure how to recreate this test using Doctrine and I found out
that it was actually not working. The call to
$this->newslettersRepository->bulkDelete() was deleting the sending
queue entry and not SendingQueue::deleteTaskIfNewsletterDoesNotExist().

[MAILPOET-5737]
2024-01-17 22:32:37 +05:00
Rodrigo Primo
33769e703c Replace StatisticsNewsletters model with Doctrine in SendingQueue
[MAILPOET-5737]
2024-01-17 22:32:37 +05:00
Rodrigo Primo
4fe642916e Replace Newsletter model with Doctrine in SendingQueue
[MAILPOET-5737]
2024-01-17 22:32:37 +05:00
Rodrigo Primo
d8973fe925 Add methods to set senderName, replyToName and replyToAddress
This commit expands the newsletter factory class and adds three new
methods.

[MAILPOET-5737]
2024-01-17 22:32:37 +05:00
Rodrigo Primo
83826b3f65 Replace Subscriber model with Doctrine in SendingQueue and SendingQueueTest
[MAILPOET-5737]
2024-01-17 22:32:37 +05:00
Rodrigo Primo
5ac874c713 Replace Newsletter and NewsletterSegment models with Doctrine
[MAILPOET-5737]
2024-01-17 22:32:37 +05:00
Rodrigo Primo
9725e300f3 Fix bug in testItCanProcessWelcomeNewsletters() test
This test was checking that the status of a welcome email is set to
`sent` after it is processed. Turns out this is not what should happen
and also not what is actually happen. The code only changes the status
of emails of the types standard and notification history:

7d43059f15/mailpoet/lib/Cron/Workers/SendingQueue/Tasks/Newsletter.php (L285-L286)

The test changes the type of the email to welcome
using Paris and never persists it to the database. The code mentioned
above that changes the status of the email uses Doctrine, so it was
still acting as if this was an standard email and not a welcome email.

To fix this problem, I updated the test to check if the status of the
welcome email is `active` and also made sure to persist the change to
the database and refresh the Doctrine entity.

[MAILPOET-5737]
2024-01-17 22:32:37 +05:00
Rodrigo Primo
4f333e3ae8 Replace StatisticsNewsletters model with Doctrine
[MAILPOET-5737]
2024-01-17 22:32:37 +05:00
Rodrigo Primo
a9952cf394 Replace Segment model with Doctrine in SendingQueueTest
[MAILPOET-5737]
2024-01-17 22:32:37 +05:00
Rodrigo Primo
abd19a6e6e Replace SubscriberSegment model with Doctrine in SendingQueueTest
[MAILPOET-5737]
2024-01-17 22:32:37 +05:00
Jan Jakes
fb1feca7de Bump WooCommerce versions: minimum to 8.4, tested up to 8.5
[MAILPOET-5834]
2024-01-17 16:43:51 +01:00
David Remer
b43eac8af3 Release 4.41.3 2024-01-16 20:15:32 +02:00
David Remer
f88a33bc7d Revert "Release 4.41.3"
This reverts commit a50fcc67ba.
2024-01-16 20:15:32 +02:00
Jan Jakes
aa96d72bea Remove double wrap from automation listing page
[MAILPOET-5779]
2024-01-16 18:15:35 +01:00
Jan Jakes
e6f01119d5 Make legacy automatic emails/automations notices permanently dismissable
[MAILPOET-5779]
2024-01-16 18:15:35 +01:00
Jan Jakes
31858eb2a5 Fix automation listing title size
[MAILPOET-5779]
2024-01-16 18:15:35 +01:00
Jan Jakes
ad1c9320e3 Highlight automations menu on legacy automatic email analytics page
[MAILPOET-5779]
2024-01-16 18:15:35 +01:00
Jan Jakes
e0b6cf7b41 Unify responses of newsletter editing API methods with get()
[MAILPOET-5779]
2024-01-16 18:15:35 +01:00