Commit Graph

22692 Commits

Author SHA1 Message Date
Jan Jakes
2b38eb35ef Minimize the risk of race conditions for "once per subscriber" automations
[MAILPOET-6177]
2024-08-12 12:25:42 +02:00
github-actions[bot]
e6e0d19a3a Update used Automate Woo plugin in Circle CI
- latest version: 6.0.31
 - previous version: 5.8.5
2024-08-12 09:27:45 +02:00
Veljko
c5afaa9070 Fix flaky acceptance segment test
[MAILPOET-6141]
2024-08-09 11:12:31 +02:00
alex-mpoet
a2a30422a1 Fix twig generate cache error
[MAILPOET-6173]
2024-08-09 10:48:30 +02:00
Rostislav Wolny
5a7462a152 Delete max 10000 rows from scheduled task subscribers in cleanup.
DB may crash when deleting too many rows in one query.
The scheduled_task_subscribers has the potential to contain many records.
This commit adds limit when cleaning up inconsistent data from scheduled task subscribers.
[MAILPOET-6155]
2024-08-08 15:37:32 +02:00
Rostislav Wolny
4733bde082 Annotate types for PHPStan
[MAILPOET-1587]
2024-08-08 15:37:32 +02:00
Rostislav Wolny
12eabf26f2 Update Help API test
[MAILPOET-1587]
2024-08-08 15:37:32 +02:00
Rostislav Wolny
e646582942 Improve look of the data inconsistencies table
[MAILPOET-1587]
2024-08-08 15:37:32 +02:00
Rostislav Wolny
9b8af4cafd Add check for orphaned newsletter posts
[MAILPOET-1587]
2024-08-08 15:37:32 +02:00
Rostislav Wolny
45114e4da2 Add check for orphaned newsletter links
[MAILPOET-1587]
2024-08-08 15:37:32 +02:00
Rostislav Wolny
fe66e31b5f Add check for orphaned subscriptions
[MAILPOET-1587]
2024-08-08 15:37:32 +02:00
Rostislav Wolny
0d7898b3a5 Add inconsistency check and fix for sending queues without newsletter
[MAILPOET-1587]
2024-08-08 15:37:32 +02:00
Rostislav Wolny
cb4cea678a Show only inconsistencies that have at least one row
[MAILPOET-1587]
2024-08-08 15:37:32 +02:00
Rostislav Wolny
bbed9c35d2 Add check and cleanup for Orphaned sending task subscribers 2024-08-08 15:37:32 +02:00
Rostislav Wolny
34feae9f1f Delete also task subscribers when fixing orphaned scheduled tasks
[MAILPOET-1587]
2024-08-08 15:37:32 +02:00
Rostislav Wolny
c513befdb8 Add data inconsistency labels for humans
[MAILPOET-1587]
2024-08-08 15:37:32 +02:00
Rostislav Wolny
67a79728e2 Add fix button to data inconsistencies table
[MAILPOET-1587]
2024-08-08 15:37:32 +02:00
Rostislav Wolny
cb5f533e54 Add API for fixing inconsistent data
[MAILPOET-1587]
2024-08-08 15:37:32 +02:00
Rostislav Wolny
b68e6b7639 Add method for cleaning up orphaned sending tasks
[MAILPOET-1587]
2024-08-08 15:37:32 +02:00
Rostislav Wolny
08ffe6e3cf Refactor KeyValueTable to component to Typescript
[MAILPOET-1587]
2024-08-08 15:37:32 +02:00
Rostislav Wolny
85867d519e Print simple key-value table with data inconsistencies on help page
[MAILPOET-1587]
2024-08-08 15:37:32 +02:00
Rostislav Wolny
f10bce81a3 Pass data inconsistencies data to JS
[MAILPOET-1587]
2024-08-08 15:37:32 +02:00
Rostislav Wolny
54c21df3a6 Add backend classes for fetching inconsistent data
[MAILPOET-1587]
2024-08-08 15:37:32 +02:00
Rostislav Wolny
22ee156dcd Use inline property type hints for Help page
[MAILPOET-1587]
2024-08-08 15:37:32 +02:00
Rostislav Wolny
e1f38f3b83 Address offset issue in time comparison in AutomationEmailScheduler
[MAILPOET-6155]
2024-08-07 16:01:48 +02:00
Rostislav Wolny
0041a060b6 Improve check for recently scheduled tasks for sending action.
[MAILPOET-6155]
2024-08-07 16:01:48 +02:00
Rostislav Wolny
b2c7f49a41 Improve TimestampListener to use the current time for now instead of "cached" value
Using now "cached" on the TimestampListener instance was causing us to set createdAt and updatedAt slightly in the past.
It was potentially problematic in tests where the TimestampListener lives a long time or in long requests, such as a cron request.

[MAILPOET-6155]
2024-08-07 16:01:48 +02:00
Rostislav Wolny
8a0bd75cb1 Limit scheduled tasks fetching by automation run createdAt
This is a performance optimization to avoid fetching too many scheduled task rows.
Run is always created before the scheduled task which is created in send action step.
[MAILPOET-6155]
2024-08-07 16:01:48 +02:00
Rostislav Wolny
e5ab65f28e Fix send action checkSendingStatus to support multiple emails per subscriber.
It is possible that one email (e.g., purchase in category) is sent multiple times
to the same subscriber.

AutomationEmailScheduler::getScheduledTaskSubscriber was selecting the task based on subscriber and newsletter.
In the case of multiple emails sent to one subscriber, the method failed to pick ScheduledTaskSubsrciberEntity because
the query was fetching multiple results, but getOneOrNullResult expects only one result.

This commit fixes it by adding additional filtering by $runId to get the ScheduledTaskSubsriberEntity associated
with the correct run.

I did the filtering in PHP because an alternative would be using LIKE %% in the query. The meta column is text.
[MAILPOET-6155]
2024-08-07 16:01:48 +02:00
 Ján Mikláš
38b3fbe6fc Remove line-height from small variants of inputs
It was causing descender to be cut off. Removing it doesn't change the overall height of the input

[MAILPOET-5807]
2024-08-07 15:43:42 +02:00
 Ján Mikláš
c62fbda4df Add tracking for opt-in position
[MAILPOET-5807]
2024-08-07 15:43:42 +02:00
 Ján Mikláš
6a155ec454 Update migration to only check for presence of the setting, without version check
[MAILPOET-5807]
2024-08-07 15:43:42 +02:00
 Ján Mikláš
e640fa10cb Add default value for opt-in position to Populator
[MAILPOET-5807]
2024-08-07 15:43:42 +02:00
 Ján Mikláš
13e45a960f Add migration so existing active installations remain opt-in checkbox position
[MAILPOET-5807]
2024-08-07 15:43:42 +02:00
 Ján Mikláš
588f942640 Test all combinations of opt-in checkbox positions on block and shortcode checkout with AutomateWoo
[MAILPOET-5807]
2024-08-07 15:43:42 +02:00
 Ján Mikláš
59733db6de Fix hiding AutomateWoo opt-in checkbox when MailPoet opt-in is in different position
[MAILPOET-5807]
2024-08-07 15:43:42 +02:00
 Ján Mikláš
60895570af Add acceptance tests for opt-in checkbox positions on shortcode checkout page
[MAILPOET-5807]
2024-08-07 15:43:42 +02:00
 Ján Mikláš
9698795c7a Improve AutomateWoo integartion tests by checking both block and shortcode checkout pages
[MAILPOET-5807]
2024-08-07 15:43:42 +02:00
 Ján Mikláš
0da59169b9 Improve opt-in message test by checking both block and shortcode checkout pages
[MAILPOET-5807]
2024-08-07 15:43:42 +02:00
 Ján Mikláš
9f42614f92 Differentiate between block and shortcode checkout in tests
[MAILPOET-5807]
2024-08-07 15:43:42 +02:00
 Ján Mikláš
aca259068a Allow setting opt-in message in tests
[MAILPOET-5807]
2024-08-07 15:43:42 +02:00
 Ján Mikláš
02a148ef84 Use proper hook based on opt-in position setting
[MAILPOET-5807]
2024-08-07 15:43:42 +02:00
 Ján Mikláš
334756d18f Change the condition to check if opt-in on checkout is enabled to be easier to read
[MAILPOET-5807]
2024-08-07 15:43:42 +02:00
 Ján Mikláš
1c9ebb960f Add opt-in position setting
[MAILPOET-5807]
2024-08-07 15:43:42 +02:00
 Ján Mikláš
1200565a7f Use __() for translations in checkout-optin setting
[MAILPOET-5807]
2024-08-07 15:43:42 +02:00
alex-mpoet
80a7d3c5d7 Trigger abandoned cart check on WP user login
[MAILPOET-6161]
2024-08-07 12:45:42 +02:00
 Ján Mikláš
1115771b50 Release 4.58.1 2024-08-06 15:42:02 +02:00
Jan Lysý
b61d7f7b22 Add default value for only-tests parameter
The default value in the compile:all command was missing, which caused an error.
[MAILPOET-6178]
2024-08-06 13:31:15 +02:00
Jan Lysý
c5c89c400a Add comment to Circle config
[MAILPOET-6159]
2024-08-06 10:17:36 +02:00
Jan Lysý
644a963b01 Update PHP script updating used WordPress
[MAILPOET-6159]
2024-08-06 10:17:36 +02:00