diff --git a/README.txt b/README.txt
index e9fe24a..f433e4a 100644
--- a/README.txt
+++ b/README.txt
@@ -4,7 +4,7 @@ Tags: woocommerce, discount, email, shipping, coupon
Requires at least: 5.8
Tested up to: 7.1
Requires PHP: 7.4
-Stable tag: 1.5.1
+Stable tag: 1.5.2
WC requires at least: 6.0
WC tested up to: 11.1.0
License: GPLv2 or later
diff --git a/ci/plugin.conf b/ci/plugin.conf
index 6e7dc0d..3c86062 100644
--- a/ci/plugin.conf
+++ b/ci/plugin.conf
@@ -75,7 +75,11 @@ RELEASE_REPO=kw/nolimit-discounts-dist
# The frozen hash is therefore a family-wide fact, not a local one, and taking
# a new one is something all six do in the same window.
#
-# 9012fe98 = contract 1.2.0. The glyph is now emitted as CSS numeric escapes
+# 678f1f03 = contract 1.2.1: the glyph is centred with flex inside an explicit
+# 36x34 box instead of inheriting WordPress's 7px padding, which made the
+# pseudo-element 42px tall inside a 34px parent and pushed the sign above
+# centre. Kristian reported it from the live shop.
+# Earlier: 9012fe98 = contract 1.2.0. The glyph is now emitted as CSS numeric escapes
# rather than through esc_attr(): HTML entities are not decoded by the CSS
# parser, so esc_attr was protecting by coincidence — and a backslash, which it
# leaves alone, IS a CSS escape and swallowed the closing quote. Changing the
@@ -83,4 +87,4 @@ RELEASE_REPO=kw/nolimit-discounts-dist
# backslashes, hex digits and spaces, so there is nothing left to leave the
# string with. Verified here against seven hostile inputs.
# Earlier frozen hashes: 184cebdc = 1.1.0, f4862d5c = 1.0.0.
-WPMGR_MENU_SHA=9012fe98d867b86c993cee2f8d7b0b9fe5b89817fed4cf45346aa4949e2df307
+WPMGR_MENU_SHA=678f1f0368fcc781ce34c0289f6470a6bb0491bc32c0598e859c7ceba66e5e2a
diff --git a/includes/shared-menu.php b/includes/shared-menu.php
index bd73360..9a87024 100644
--- a/includes/shared-menu.php
+++ b/includes/shared-menu.php
@@ -69,7 +69,7 @@ if ( ! defined( 'ABSPATH' ) ) {
}
if ( ! defined( 'WPMGR_MENU_VERSION' ) ) {
- define( 'WPMGR_MENU_VERSION', '1.2.0' );
+ define( 'WPMGR_MENU_VERSION', '1.2.1' );
}
if ( ! defined( 'WPMGR_MENU_SLUG' ) ) {
@@ -160,6 +160,23 @@ if ( ! function_exists( 'wpmgr_ensure_menu' ) ) {
* `font-family` has to be overridden: WordPress sets the icon wrapper to
* the Dashicons font, and Dashicons has no infinity glyph, so inheriting
* it renders nothing at all.
+ *
+ * 🔴 The box is WordPress's own, measured rather than guessed, and the
+ * glyph is centred in it geometrically rather than nudged.
+ *
+ * wp-admin/css/admin-menu.css sets `#adminmenu div.wp-menu-image` to
+ * 36x34, and `div.wp-menu-image:before` to `padding: 7px 0` — which is
+ * exactly 7 + 20 + 7 for a 20px dashicon on `line-height: 1`. The first
+ * version of this rule set `line-height: 1.4` and inherited that padding,
+ * making the line box 28px and the whole pseudo-element 42px inside a 34px
+ * parent. Kristian reported the result: the glyph sitting above centre.
+ *
+ * So: reproduce the 36x34 box, drop the padding that only existed to
+ * position a 20px line inside it, and centre with flex. That matters more
+ * for an arbitrary glyph than for a dashicon — U+221E sits on the maths
+ * axis rather than filling its em box, so any rule that positions by
+ * line-height and padding is positioning the box and hoping about the
+ * glyph. `align-items: center` centres what is actually drawn.
*/
function wpmgr_menu_glyph_style() {
$glyph = apply_filters( 'wpmgr_menu_glyph', '∞' );
@@ -170,7 +187,7 @@ if ( ! function_exists( 'wpmgr_ensure_menu' ) ) {
// phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped -- the slug is reduced to [a-z0-9_-] and the glyph to CSS numeric escapes; both are escaped for the context they are printed in, which is CSS rather than HTML.
printf(
- '',
+ '',
preg_replace( '/[^a-z0-9_-]/', '', strtolower( WPMGR_MENU_SLUG ) ),
wpmgr_css_escape( $glyph )
);
diff --git a/woocommerce-email-discount-manager.php b/woocommerce-email-discount-manager.php
index 6ae7146..9b2a471 100644
--- a/woocommerce-email-discount-manager.php
+++ b/woocommerce-email-discount-manager.php
@@ -4,7 +4,7 @@
* Plugin URI: https://gitea.nolimit.dk/kw/woo-discount-manager
* Update URI: https://gitea.nolimit.dk/kw/nolimit-discounts-dist
* Description: Apply discounts and show/hide shipping methods based on the customer's email address (full address, domain or partial match).
- * Version: 1.5.1
+ * Version: 1.5.2
* Author: Kristian Wind
* Author URI: https://gitea.nolimit.dk/kw
* License: GPL-2.0-or-later
@@ -28,7 +28,7 @@ if ( ! defined( 'ABSPATH' ) ) {
exit;
}
-define( 'WC_EDM_VERSION', '1.5.1' );
+define( 'WC_EDM_VERSION', '1.5.2' );
define( 'WC_EDM_PLUGIN_FILE', __FILE__ );
define( 'WC_EDM_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'WC_EDM_PLUGIN_URL', plugin_dir_url( __FILE__ ) );