Commit Graph

5532 Commits

Author SHA1 Message Date
Rostislav Wolny
ed8de3eb17 Save last engagement when tracking opens
[MAILPOET-3762]
2021-09-07 10:07:08 +02:00
Rostislav Wolny
cd9f83834e Add lastEngagementAt to SubscriberEntity
[MAILPOET-3762]
2021-09-07 10:07:08 +02:00
Rostislav Wolny
4a72a9c2f1 Add column for saving last engagement date for a subscriber
[MAILPOET-3762]
2021-09-07 10:07:08 +02:00
Jan Lysý
05c7230543 Fix unsubscribe URL for preview when the user isn't logged in
[MAILPOET-3730]
2021-09-06 12:20:16 +02:00
Jan Lysý
00bd5e2e7d Schedule recalculation only when another is not running or scheduled
[MAILPOET-3776]
2021-09-06 12:14:38 +02:00
Jan Lysý
aec9ecbcde Change return value from getItem in TransientCache
[MAILPOET-3778]
2021-09-06 12:14:38 +02:00
Brezo Cordero
1de3aef76f Use data factories on tests
[MAILPOET-3637]
2021-09-06 10:08:09 +02:00
Brezo Cordero
69d9da9f17 Removed unused variable on ViewBrowserRenderer
[MAILPOET-3673]
2021-09-06 10:08:09 +02:00
Brezo Cordero
9d9efccd98 Refactor ViewInBrowser to Doctrine
Use NewsletterEntity and NewslettersRepository instead of MailPoet\Models\Newsletter.

[MAILPOET-3673]
2021-09-06 10:08:09 +02:00
Rostislav Wolny
14ff48c7fa Differentiate machine and humans opens on subscriber stats API
[MAILPOET-3741]
2021-08-31 15:15:54 +02:00
Rostislav Wolny
54c83a0dac Fix woo transactional email heading rendering
[MAILPOET-3758]
2021-08-31 12:23:02 +02:00
Rostislav Wolny
3e57bc187f Fix subscriber in subscription via checkout for older WooCommerce
We use hidden field to indicate that the option checkbox was rendered.
The support for the hidden field was added in Woo 4.6.0 (51afe3207a (diff-019fb1a3da8e1f8d9f148c7407195e640587dfeb3e7830ef8e8fa6f29aa0a6ed))
This commit adds a workaround that can be removed we drop support of older WooCommerce versions.
[MAILPOET-3772]
2021-08-31 12:22:01 +02:00
Rodrigo Primo
f8388c5497 Fix reply-to address when sending WP e-mails
This commit makes sure that the reply-to set for WP e-mails is
preserved when MailPoet is used to send them. Before this change,
MailPoet would ignore whatever was set for the reply-to field for WP
e-mails and use the same address as the one used for the sender instead.

I'm not super happy with the solution proposed here. I couldn't find an
easy way to simple set the reply-to address in the Mailer class and that
is why I'm calling Mailer::init() inside WordPressMailer.

[MAILPOET-3707]
2021-08-30 15:21:09 +02:00
Pavel Dohnal
a53a680e8c Make naming more consistent
[MAILPOET-3740]
2021-08-30 14:04:29 +02:00
Pavel Dohnal
464f23c82b Display machine opens
[MAILPOET-3740]
2021-08-30 14:04:29 +02:00
Rostislav Wolny
abc965e143 Add support for colors in column block in form editor
[MAILPOET-3654]
2021-08-30 12:10:55 +02:00
Rostislav Wolny
8d0d2e168b Add support for custom padding in form column
[MAILPOET-3654]
2021-08-30 12:10:55 +02:00
Rostislav Wolny
3700003e15 Don't render form column width style if only unit is saved
[MAILPOET-3654]
2021-08-30 12:10:55 +02:00
Rostislav Wolny
e5c90821be Add support for isStackedOnMobile for columns
[MAILPOET-3564]
2021-08-30 12:10:55 +02:00
Rostislav Wolny
bd41098e5e Fix saving and rendering form columns widths
[MAILPOET-3654]
2021-08-30 12:10:55 +02:00
Rodrigo Primo
8b7815caf8 Use Doctrine for the opens and clicks exporters
This commit refactors the code that handles exporting e-mails opens and
clicks when generating the personal data file to use Doctrine instead of
Paris. I opted to do this in this task as opens and clicks code share
some functionality, and I didn't want to add more code that relies on
Paris, as we are eventually going to remove it.

[MAILPOET-3738]
2021-08-25 17:01:33 +02:00
Rodrigo Primo
780ac5e53c Add email opens data when exporting personal data
This commit adds stats about email opens data to the personal data
exported by WP.

To do this, I refactored the code that adds email clicks stats to use
base abstract class with functionality that is shared between both
exporters.

[MAILPOET-3738]
2021-08-25 17:01:33 +02:00
Rodrigo Primo
4fdcee1064 Add the new user agent field when exporting data about clicks
This commit includes information about the user agent used when clicking
links in e-mails to the data that MailPoet exports when the WP tool
"Export Personal Data" is used.

When information about the user agent is not available, the string
'Unknown' is displayed instead.

This information is available under the section "MailPoet Emails
Clicks".

[MAILPOET-3738]
2021-08-25 17:01:33 +02:00
Pavel Dohnal
04424f6389 Fix a conflict when a phpmailer is already defined
[MAILPOET-3769]
2021-08-25 12:45:57 +02:00
Pavel Dohnal
e4aca4f6de Refactor endpoint to doctrine
[MAILPOET-3626]
2021-08-25 09:22:44 +02:00
Jan Lysý
ee84dc382b Change user_agent_type column to tinyint
[MAILPOET-3736]
2021-08-23 16:37:59 +02:00
Jan Lysý
292f075abe Improve user agent overriding
[MAILPOET-3736]
2021-08-23 16:37:59 +02:00
Jan Lysý
ed46c48706 Calculate statistics only from data with type human
[MAILPOET-3736]
2021-08-23 16:37:59 +02:00
Jan Lysý
71ce62d027 Set user agent type in statistic tables
[MAILPOET-3736]
2021-08-23 16:37:59 +02:00
Jan Lysý
34ad21187d Add userAgentType property to statistics entities
[MAILPOET-3736]
2021-08-23 16:37:59 +02:00
Jan Lysý
9192602adf Add a new column user_agent_type to statistics tables
[MAILPOET-3736]
2021-08-23 16:37:59 +02:00
Jan Lysý
f6513ab2b7 Add user-agent type detection
[MAILPOET-3736]
2021-08-23 16:37:59 +02:00
Pavel Dohnal
5d967f3457 Use a single string instead of array of strings
[MAILPOET-3625]
2021-08-23 14:18:57 +02:00
Pavel Dohnal
3b7752daed Refactor creating new list to Doctrine
[MAILPOET-3625]
2021-08-23 14:18:57 +02:00
Pavel Dohnal
3d1e2c5a2e Refactor setupWooCommerceInitialImport to Doctrine
[MAILPOET-3625]
2021-08-23 14:18:57 +02:00
Ján Mikláš
0daaac8abf Ignore Html2Text::convert errors in confirmation email
[MAILPOET-3756]
2021-08-23 11:33:57 +02:00
Jan Lysý
79a2d1f934 Check that data are not array before base64 decoding
[MAILPOET-3699]
2021-08-23 09:51:29 +02:00
Brezo Cordero
67b88b862e Delete old orphan SubscriberSegments
On PreFlush we clean up old SubscriberSegments referencing deleted segments. This prevents errors when updating subscribers.

[MAILPOET-3652]
2021-08-19 09:04:31 +02:00
Pavel Dohnal
bb52329168 Track user agent on click
[MAILPOET-3735]
2021-08-18 14:41:20 +02:00
Pavel Dohnal
0b675680ef Refactor click tracking to Doctrine
[MAILPOET-3735]
2021-08-18 14:41:20 +02:00
Pavel Dohnal
7197be3116 Override user agent on open
[MAILPOET-3735]
2021-08-18 14:41:20 +02:00
Pavel Dohnal
9f672adad4 Add test for existing user agent
[MAILPOET-3735]
2021-08-18 14:41:20 +02:00
Pavel Dohnal
a84471b65c Save user agent on open
[MAILPOET-3735]
2021-08-18 14:41:20 +02:00
Pavel Dohnal
4f37cde9f9 Create table for user agents
[MAILPOET-3735]
2021-08-18 14:41:20 +02:00
Jan Lysý
a9621875bd Fix phpstan errors from new version
[MAILPOET-3725]
2021-08-16 15:56:39 +02:00
Rodrigo Primo
55dc8ac902 Protect against fatal error when rendering e-mail styles
This commit protects the code that renders styles for e-mails against a
fatal error that could happen if the variable $styles passed to Renderer::renderStyles()
is not an array of arrays. To do that, the code will now check if each value
of the array is an array. If not, we move on to the next value instead of
calling StylesHelper::setStyle(). I also added type hints to
StylesHelper::setStyle() and some of the methods that it calls to make
it more explicit what it expects to receive and what it returns.

[MAILPOET-3731]
2021-08-16 14:36:15 +02:00
Jan Lysý
41a3ac0268 Remove mso condition for include fonts for newsletters editor
[MAILPOET-3468]
2021-08-16 11:44:41 +02:00
Jan Lysý
f6a881da98 Remove redundant important from style
We test stripping redundant from rendered emails. I removed redundant important option.
It is based on this article:
https://www.litmus.com/blog/a-guide-to-bulletproof-buttons-in-email-design/

[MAILPOET-3468]
2021-08-16 11:44:41 +02:00
Jan Lysý
dfa0d03a67 Replace incorrect opening mso if in postProcessTemplate
[MAILPOET-3468]
2021-08-16 11:44:41 +02:00
Jan Lysý
75690d7a45 Add non mso condition around button
[MAILPOET-3468]
2021-08-16 11:44:41 +02:00