Commit 722e204793a for woocommerce
commit 722e204793a587f853837a5d7d9580d08d2a0b43
Author: Tony Arcangelini <33258733+arcangelini@users.noreply.github.com>
Date: Mon Feb 23 15:58:39 2026 +0100
Email Editor: refine order notification email styling (#63306)
* Refine order notification email styling
- Reduce default site logo width from 120px to 44px
- Remove trailing comma from admin new order heading
- Add "Woo!" prefix to new order body text
- Hide order table thead when email improvements enabled
- Use vertical-align: top for order items and product images
- Add line-height: 120% to address text
- Consistent 40px margin-bottom on address section
- Fix order link underline in heading via inline style
- Add CSS rule for heading order link text-decoration: none
* Fix missing semicolon in order item thumbnail inline style
* Add translators comment and fix missing semicolon
* Bump template versions to 10.6.0
* Fix e2e test assertions for trailing comma removal in order heading
* Fix e2e test selector for updated admin email body text
* Address PR review feedback: revert logo width, Woo! text, and margin changes
* Address PR review feedback
* Fix smart quote in admin-new-order template and update changelog
* Bump template versions to 10.7.0
* Address feedback
diff --git a/plugins/woocommerce/changelog/stomail-7817-refine-order-notification-email-styling b/plugins/woocommerce/changelog/stomail-7817-refine-order-notification-email-styling
new file mode 100644
index 00000000000..ee13282e35b
--- /dev/null
+++ b/plugins/woocommerce/changelog/stomail-7817-refine-order-notification-email-styling
@@ -0,0 +1,4 @@
+Significance: patch
+Type: tweak
+
+Refine order notification email styling: adjust order summary layout and item alignment
diff --git a/plugins/woocommerce/templates/emails/block/admin-new-order.php b/plugins/woocommerce/templates/emails/block/admin-new-order.php
index 1d5197ae89f..49bd2dd7856 100644
--- a/plugins/woocommerce/templates/emails/block/admin-new-order.php
+++ b/plugins/woocommerce/templates/emails/block/admin-new-order.php
@@ -12,7 +12,7 @@
*
* @see https://woocommerce.com/document/template-structure/
* @package WooCommerce\Templates\Emails\Block
- * @version 10.2.0
+ * @version 10.7.0
*/
use Automattic\WooCommerce\Internal\EmailEditor\BlockEmailRenderer;
@@ -26,14 +26,14 @@ defined( 'ABSPATH' ) || exit;
<!-- wp:heading -->
<h2 class="wp-block-heading"><?php
/* translators: %s: order number */
-printf( esc_html__( 'New order: #%s,', 'woocommerce' ), '<!--[woocommerce/order-number]-->' );
+printf( esc_html__( 'New order: #%s', 'woocommerce' ), '<!--[woocommerce/order-number]-->' );
?></h2>
<!-- /wp:heading -->
<!-- wp:paragraph -->
<p><?php
/* translators: %s: Customer full name */
-printf( esc_html__( 'You’ve received a new order from %s', 'woocommerce' ), '<!--[woocommerce/customer-full-name]-->' );
+printf( esc_html__( 'You’ve received a new order from %s:', 'woocommerce' ), '<!--[woocommerce/customer-full-name]-->' );
?></p>
<!-- /wp:paragraph -->
diff --git a/plugins/woocommerce/templates/emails/email-order-details.php b/plugins/woocommerce/templates/emails/email-order-details.php
index 1b2969ee28d..127199fad62 100644
--- a/plugins/woocommerce/templates/emails/email-order-details.php
+++ b/plugins/woocommerce/templates/emails/email-order-details.php
@@ -12,7 +12,7 @@
*
* @see https://woocommerce.com/document/template-structure/
* @package WooCommerce\Templates\Emails
- * @version 10.6.0
+ * @version 10.7.0
*/
use Automattic\WooCommerce\Utilities\FeaturesUtil;
@@ -22,7 +22,7 @@ defined( 'ABSPATH' ) || exit;
$text_align = is_rtl() ? 'right' : 'left';
$email_improvements_enabled = FeaturesUtil::feature_is_enabled( 'email_improvements' );
-
+$block_email_editor_enabled = FeaturesUtil::feature_is_enabled( 'block_email_editor' );
/**
* Filter whether to display the section divider in the email body.
*
@@ -56,7 +56,7 @@ do_action( 'woocommerce_email_before_order_table', $order, $sent_to_admin, $plai
echo wp_kses_post( __( 'Order summary', 'woocommerce' ) );
}
if ( $sent_to_admin ) {
- $before = '<a class="link" href="' . esc_url( $order->get_edit_order_url() ) . '">';
+ $before = '<a class="link" href="' . esc_url( $order->get_edit_order_url() ) . '"' . ( $block_email_editor_enabled ? ' style="text-decoration: none;"' : '' ) . '>';
$after = '</a>';
} else {
$before = '';
@@ -80,6 +80,7 @@ do_action( 'woocommerce_email_before_order_table', $order, $sent_to_admin, $plai
<div style="margin-bottom: <?php echo $email_improvements_enabled ? '24px' : '40px'; ?>;">
<table class="td font-family <?php echo esc_attr( $order_table_class ); ?>" cellspacing="0" cellpadding="6" style="width: 100%;" border="1">
+ <?php if ( ! $block_email_editor_enabled ) : ?>
<thead>
<tr>
<th class="td" scope="col" style="text-align:<?php echo esc_attr( $text_align ); ?>;"><?php esc_html_e( 'Product', 'woocommerce' ); ?></th>
@@ -87,6 +88,7 @@ do_action( 'woocommerce_email_before_order_table', $order, $sent_to_admin, $plai
<th class="td" scope="col" style="text-align:<?php echo esc_attr( $order_total_text_align ); ?>;"><?php esc_html_e( 'Price', 'woocommerce' ); ?></th>
</tr>
</thead>
+ <?php endif; ?>
<tbody>
<?php
$image_size = $email_improvements_enabled ? 48 : 32;
diff --git a/plugins/woocommerce/templates/emails/email-order-items.php b/plugins/woocommerce/templates/emails/email-order-items.php
index 95a59a19713..1f44a1613e2 100644
--- a/plugins/woocommerce/templates/emails/email-order-items.php
+++ b/plugins/woocommerce/templates/emails/email-order-items.php
@@ -12,7 +12,7 @@
*
* @see https://woocommerce.com/document/template-structure/
* @package WooCommerce\Templates\Emails
- * @version 10.4.0
+ * @version 10.7.0
*/
use Automattic\WooCommerce\Utilities\FeaturesUtil;
@@ -23,6 +23,7 @@ $margin_side = is_rtl() ? 'left' : 'right';
$email_improvements_enabled = FeaturesUtil::feature_is_enabled( 'email_improvements' );
$price_text_align = $email_improvements_enabled ? 'right' : 'left';
+$block_email_editor_enabled = FeaturesUtil::feature_is_enabled( 'block_email_editor' );
foreach ( $items as $item_id => $item ) :
$product = $item->get_product();
@@ -42,7 +43,7 @@ foreach ( $items as $item_id => $item ) :
?>
<tr class="<?php echo esc_attr( apply_filters( 'woocommerce_order_item_class', 'order_item', $item, $order ) ); ?>">
- <td class="td font-family text-align-left" style="vertical-align: middle; word-wrap:break-word;">
+ <td class="td font-family text-align-left" style="vertical-align: <?php echo $block_email_editor_enabled ? 'top' : 'middle'; ?>; word-wrap:break-word;">
<?php if ( $email_improvements_enabled ) { ?>
<table class="order-item-data" role="presentation">
<tr>
@@ -56,7 +57,7 @@ foreach ( $items as $item_id => $item ) :
* @param WC_Order_Item_Product $item The item being displayed.
* @since 2.1.0
*/
- echo '<td>' . wp_kses_post( apply_filters( 'woocommerce_order_item_thumbnail', $image, $item ) ) . '</td>';
+ echo '<td style="vertical-align: top;">' . wp_kses_post( apply_filters( 'woocommerce_order_item_thumbnail', $image, $item ) ) . '</td>';
}
?>
<td>
diff --git a/plugins/woocommerce/templates/emails/email-styles.php b/plugins/woocommerce/templates/emails/email-styles.php
index f6c357a30b6..5b91470c7ba 100644
--- a/plugins/woocommerce/templates/emails/email-styles.php
+++ b/plugins/woocommerce/templates/emails/email-styles.php
@@ -12,7 +12,7 @@
*
* @see https://woocommerce.com/document/template-structure/
* @package WooCommerce\Templates\Emails
- * @version 10.5.0
+ * @version 10.7.0
*/
use Automattic\WooCommerce\Internal\Email\EmailFont;
@@ -23,6 +23,7 @@ if ( ! defined( 'ABSPATH' ) ) {
}
$email_improvements_enabled = FeaturesUtil::feature_is_enabled( 'email_improvements' );
+$block_email_editor_enabled = FeaturesUtil::feature_is_enabled( 'block_email_editor' );
// Load colors.
$bg = get_option( 'woocommerce_email_background_color' );
@@ -272,7 +273,7 @@ body {
#body_content .order-item-data td {
border: 0 !important;
padding: 0 !important;
- vertical-align: middle;
+ vertical-align: top;
}
#body_content .email-order-details .order-totals td,
@@ -352,6 +353,7 @@ body {
<?php if ( $email_improvements_enabled ) { ?>
color: <?php echo esc_attr( $text ); ?>;
font-style: normal;
+ line-height: 120%;
padding: 8px 0;
<?php } else { ?>
padding: 12px;
@@ -458,7 +460,7 @@ img {
outline: none;
text-decoration: none;
text-transform: capitalize;
- vertical-align: middle;
+ vertical-align: <?php echo $block_email_editor_enabled ? 'top' : 'middle'; ?>;
margin-<?php echo is_rtl() ? 'left' : 'right'; ?>: <?php echo $email_improvements_enabled ? '24px' : '10px'; ?>;
max-width: 100%;
}
@@ -470,6 +472,10 @@ h2.email-order-detail-heading span {
font-weight: normal;
}
+h2.email-order-detail-heading span a {
+ text-decoration: none;
+}
+
.font-family {
font-family: <?php echo $safe_font_family; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>;
}
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/email-editor/email-editor-loads.spec.ts b/plugins/woocommerce/tests/e2e-pw/tests/email-editor/email-editor-loads.spec.ts
index 3fa13ead6b1..d12b869d984 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/email-editor/email-editor-loads.spec.ts
+++ b/plugins/woocommerce/tests/e2e-pw/tests/email-editor/email-editor-loads.spec.ts
@@ -44,7 +44,7 @@ test.describe( 'WooCommerce Email Editor Core', () => {
.locator( 'iframe[name="editor-canvas"]' )
.contentFrame()
.getByLabel( 'Block: Heading' )
- ).toContainText( `New order: #[woocommerce/order-number],` );
+ ).toContainText( `New order: #[woocommerce/order-number]` );
} );
test( 'Can preview in new tab', async ( { page } ) => {
@@ -64,7 +64,7 @@ test.describe( 'WooCommerce Email Editor Core', () => {
await page.close(); // close the original tab.
await expect( newPage.url() ).toContain( 'preview=true' );
await expect( newPage.locator( 'body' ) ).toContainText(
- 'New order: #12345,'
+ 'New order: #12345'
);
} );