diff --git a/.circleci/config.yml b/.circleci/config.yml index 6a76d69ea3..58c995f4a7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -200,7 +200,7 @@ jobs: ./do download:woo-commerce-zip 9.8.5 ./do download:woo-commerce-subscriptions-zip 7.5.0 ./do download:woo-commerce-memberships-zip - ./do download:automate-woo-zip 6.1.12 + ./do download:automate-woo-zip 6.1.13 - run: name: Dump tests ENV variables for acceptance tests command: | diff --git a/mailpoet/assets/js/src/newsletters/scheduling/common.jsx b/mailpoet/assets/js/src/newsletters/scheduling/common.jsx index 2d0a8bd896..5b94d19ede 100644 --- a/mailpoet/assets/js/src/newsletters/scheduling/common.jsx +++ b/mailpoet/assets/js/src/newsletters/scheduling/common.jsx @@ -76,6 +76,7 @@ const nthWeekDayValues = { 1: __('1st', 'mailpoet'), 2: __('2nd', 'mailpoet'), 3: __('3rd', 'mailpoet'), + 4: __('4th', 'mailpoet'), L: _x('last', 'e.g. monthly every last Monday', 'mailpoet'), }; diff --git a/mailpoet/changelog.txt b/mailpoet/changelog.txt index 954eb5b9e6..46093ef9cb 100644 --- a/mailpoet/changelog.txt +++ b/mailpoet/changelog.txt @@ -1,5 +1,9 @@ == Changelog == += 5.12.5 - 2025-06-02 = +* Improved: Add "4th" day of week as a monthly frequency option; +* Fixed: issue where duplicated newsletters could be incorrectly linked to unrelated posts under certain conditions. + = 5.12.4 - 2025-05-26 = * Improved: minor changes and fixes. diff --git a/mailpoet/lib/Newsletter/NewsletterSaveController.php b/mailpoet/lib/Newsletter/NewsletterSaveController.php index 9e57666a39..ea65767e60 100644 --- a/mailpoet/lib/Newsletter/NewsletterSaveController.php +++ b/mailpoet/lib/Newsletter/NewsletterSaveController.php @@ -195,7 +195,7 @@ class NewsletterSaveController { $this->newslettersRepository->flush(); // duplicate wp post data - $post = $this->wp->getPost($newsletter->getWpPostId()); + $post = !is_null($newsletter->getWpPostId()) ? $this->wp->getPost($newsletter->getWpPostId()) : null; if ($post instanceof \WP_Post) { $newPostId = $this->wp->wpInsertPost([ 'post_status' => NewsletterEntity::STATUS_DRAFT, diff --git a/mailpoet/mailpoet.php b/mailpoet/mailpoet.php index 7edc27f6e7..a1c9befd25 100644 --- a/mailpoet/mailpoet.php +++ b/mailpoet/mailpoet.php @@ -2,7 +2,7 @@ /* * Plugin Name: MailPoet - * Version: 5.12.4 + * Version: 5.12.5 * Plugin URI: https://www.mailpoet.com * Description: Create and send newsletters, post notifications and welcome emails from your WordPress. * Author: MailPoet @@ -20,7 +20,7 @@ */ $mailpoetPlugin = [ - 'version' => '5.12.4', + 'version' => '5.12.5', 'filename' => __FILE__, 'path' => dirname(__FILE__), 'autoloader' => dirname(__FILE__) . '/vendor/autoload.php', diff --git a/mailpoet/readme.txt b/mailpoet/readme.txt index 450cf100ed..609f6b0e5f 100644 --- a/mailpoet/readme.txt +++ b/mailpoet/readme.txt @@ -3,7 +3,7 @@ Contributors: mailpoet, woocommerce, automattic Tags: email marketing, post notification, woocommerce emails, email automation, newsletter Requires at least: 6.7 Tested up to: 6.8 -Stable tag: 5.12.4 +Stable tag: 5.12.5 Requires PHP: 7.4 License: GPLv3 License URI: https://www.gnu.org/licenses/gpl-3.0.html @@ -34,8 +34,11 @@ Trusted by 600,000 WordPress websites since 2011. * Behavior and interest-based subscriber segmentation options * Pre-built and customizable email and subscription form templates * Multiple subscription form placements: below pages, fixed bar, popup, slide-in, shortcode, on exit intent -* WooCommerce emails: abandoned cart, first purchase, specific product, product category +* WooCommerce emails: abandoned cart, first purchase, specific product, product category, order status change, review added * Customize WooCommerce transactional emails +* Automate subscriber management (add/remove from list, add/remove tags, update subscriber data) (paid plan required) +* Create custom automation triggers and actions (paid plan required) +* Branch your automations with if/else conditions to improve engagement (paid plan required) * Reliable email delivery with MailPoet Sending Service (available for free – plan required) * Basic engagement statistics (available for free) and detailed engagement statistics (paid plan required) * Multi-condition segmentation (paid plan required) @@ -61,9 +64,11 @@ Use the automated email options to: * Welcome your new customers when they make their first purchase * Upsell by sending emails to customers who purchased a specific product or from a specific product category -* Convert more customers by sending a series of abandoned cart emails. +* Convert more customers by sending a series of abandoned cart emails +* Re-engage customers who haven't made a purchase in a while with personalized offers (paid plan required) +* Follow up with customers who left a review to encourage more engagement (paid plan required). -And with WooCommerce-specific segmentation options, you’ll be able to send targeted emails to your customers based on criteria such as their country, the number of orders they’ve placed, how much they’ve spent, and if they have an active product subscription (powered by WooCommerce Subscriptions) or membership (powered by WooCommerce Memberships). +And with WooCommerce-specific segmentation options, you’ll be able to send targeted emails to your customers based on criteria such as their country, the number of orders they’ve placed, how much they’ve spent, and if they have an active product subscription (powered by **WooCommerce Subscriptions**) or membership (powered by **WooCommerce Memberships**). In addition, you’ll also be able to increase brand recognition by customizing your WooCommerce transactional emails. Create a unified brand experience by changing the layout, colors, and fonts used in your emails, as well as adding any images or additional information to them. @@ -222,7 +227,8 @@ Check our [Knowledge Base](https://kb.mailpoet.com) or contact us through our [s == Changelog == -= 5.12.4 - 2025-05-26 = -* Improved: minor changes and fixes. += 5.12.5 - 2025-06-02 = +* Improved: Add "4th" day of week as a monthly frequency option; +* Fixed: issue where duplicated newsletters could be incorrectly linked to unrelated posts under certain conditions. [See the changelog for all versions.](https://github.com/mailpoet/mailpoet/blob/trunk/mailpoet/changelog.txt) diff --git a/mailpoet/tests/integration/API/JSON/v1/ServicesTest.php b/mailpoet/tests/integration/API/JSON/v1/ServicesTest.php index e3d1fdbc09..fc27653135 100644 --- a/mailpoet/tests/integration/API/JSON/v1/ServicesTest.php +++ b/mailpoet/tests/integration/API/JSON/v1/ServicesTest.php @@ -248,7 +248,7 @@ class ServicesTest extends \MailPoetTest { $response = $servicesEndpoint->checkPremiumKey($this->data); verify($response->status)->equals(APIResponse::STATUS_OK); foreach (array_keys(Installer::getPremiumStatus()) as $key) { - verify(isset($response->meta[$key]))->true(); + verify(array_key_exists($key, $response->meta))->true(); } }