Merge pull request #41 from kristianwind/menu-1-2-3-pill
1.6.1: shared-menu 1.2.3, and render the dashboard to check the pill
This commit is contained in:
+5
-1
@@ -4,7 +4,7 @@ Tags: woocommerce, discount, email, shipping, coupon
|
|||||||
Requires at least: 5.8
|
Requires at least: 5.8
|
||||||
Tested up to: 7.1
|
Tested up to: 7.1
|
||||||
Requires PHP: 7.4
|
Requires PHP: 7.4
|
||||||
Stable tag: 1.6.0
|
Stable tag: 1.6.1
|
||||||
WC requires at least: 6.0
|
WC requires at least: 6.0
|
||||||
WC tested up to: 11.1.0
|
WC tested up to: 11.1.0
|
||||||
License: GPLv2 or later
|
License: GPLv2 or later
|
||||||
@@ -96,6 +96,10 @@ The most specific match wins: exact email, then domain, then partial match.
|
|||||||
|
|
||||||
== Changelog ==
|
== Changelog ==
|
||||||
|
|
||||||
|
= 1.6.1 =
|
||||||
|
* The status label on the Nolimit dashboard card is now readable. It was white text on a light overlay, which on this plugin's green gave 3.5:1 where 4.5:1 is the accessibility minimum.
|
||||||
|
|
||||||
|
|
||||||
= 1.6.0 =
|
= 1.6.0 =
|
||||||
* A shipping method a group is shown is now reserved for that group: customers who match no group no longer see it. Previously a method set up for approved addresses stayed on the checkout for everyone, so free delivery meant for one company could be chosen by anybody. Customers are never left with no shipping method at all.
|
* A shipping method a group is shown is now reserved for that group: customers who match no group no longer see it. Previously a method set up for approved addresses stayed on the checkout for everyone, so free delivery meant for one company could be chosen by anybody. Customers are never left with no shipping method at all.
|
||||||
|
|
||||||
|
|||||||
+8
-2
@@ -75,7 +75,13 @@ RELEASE_REPO=kw/nolimit-discounts-dist
|
|||||||
# The frozen hash is therefore a family-wide fact, not a local one, and taking
|
# 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.
|
# a new one is something all six do in the same window.
|
||||||
#
|
#
|
||||||
# 471b0a2a = contract 1.2.2: the icon box is sized 100%/100% instead of a
|
# 75b04eb4 = contract 1.2.3: the dashboard status pill is rgba(0,0,0,.18)
|
||||||
|
# instead of 22% white. The pill is white 11px text composited over the card
|
||||||
|
# colour, and 22% white is a floor: a card has to reach about 7.7:1 before the
|
||||||
|
# pill clears 4.5:1. This plugin's #1a7a52 gave 3.50 and now gives 7.15. It
|
||||||
|
# could not be fixed by choosing a different card colour — the whole family
|
||||||
|
# band fails, including the no-colour fallback.
|
||||||
|
# Earlier: 471b0a2a = 1.2.2: the icon box is sized 100%/100% instead of a
|
||||||
# hardcoded 36x34. WordPress declares that parent three times and they
|
# hardcoded 36x34. WordPress declares that parent three times and they
|
||||||
# disagree (36x34 open, 35x30 folded, 34x30 under 960px), so a fixed number is
|
# disagree (36x34 open, 35x30 folded, 34x30 under 960px), so a fixed number is
|
||||||
# right in one state and wrong in the two a laptop is usually in.
|
# right in one state and wrong in the two a laptop is usually in.
|
||||||
@@ -91,7 +97,7 @@ RELEASE_REPO=kw/nolimit-discounts-dist
|
|||||||
# backslashes, hex digits and spaces, so there is nothing left to leave the
|
# backslashes, hex digits and spaces, so there is nothing left to leave the
|
||||||
# string with. Verified here against seven hostile inputs.
|
# string with. Verified here against seven hostile inputs.
|
||||||
# Earlier frozen hashes: 184cebdc = 1.1.0, f4862d5c = 1.0.0.
|
# Earlier frozen hashes: 184cebdc = 1.1.0, f4862d5c = 1.0.0.
|
||||||
WPMGR_MENU_SHA=471b0a2aab47b6b7f8d839ac8b12d60637bbe2c07df86f7e40089c677fbab3cc
|
WPMGR_MENU_SHA=75b04eb4fe9eda0119312075accf2fc77de244e5c6b759d624a8b1d254c0fc99
|
||||||
|
|
||||||
# The name this plugin used before the Nolimit rename. Kept so ci/static.sh
|
# The name this plugin used before the Nolimit rename. Kept so ci/static.sh
|
||||||
# can fail when it reappears in text a user reads — a sentence that goes stale
|
# can fail when it reappears in text a user reads — a sentence that goes stale
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ( ! defined( 'WPMGR_MENU_VERSION' ) ) {
|
if ( ! defined( 'WPMGR_MENU_VERSION' ) ) {
|
||||||
define( 'WPMGR_MENU_VERSION', '1.2.2' );
|
define( 'WPMGR_MENU_VERSION', '1.2.3' );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! defined( 'WPMGR_MENU_SLUG' ) ) {
|
if ( ! defined( 'WPMGR_MENU_SLUG' ) ) {
|
||||||
@@ -337,8 +337,19 @@ if ( ! function_exists( 'wpmgr_ensure_menu' ) ) {
|
|||||||
. '.wpmgr-headline{font-size:22px;font-weight:600;margin:0 0 10px}'
|
. '.wpmgr-headline{font-size:22px;font-weight:600;margin:0 0 10px}'
|
||||||
. '.wpmgr-card dl{display:grid;grid-template-columns:1fr auto;gap:4px 12px;margin:0;font-size:13px}'
|
. '.wpmgr-card dl{display:grid;grid-template-columns:1fr auto;gap:4px 12px;margin:0;font-size:13px}'
|
||||||
. '.wpmgr-card dt{color:#646970;margin:0}.wpmgr-card dd{margin:0;text-align:right}'
|
. '.wpmgr-card dt{color:#646970;margin:0}.wpmgr-card dd{margin:0;text-align:right}'
|
||||||
|
// 🔴 A DARK overlay, not a light one. White 11px text on
|
||||||
|
// rgba(255,255,255,.22) over a card colour is 3.45:1 on this
|
||||||
|
// plugin's green and 3.42:1 on a blue — under the 4.5:1 that small
|
||||||
|
// text needs, on every family colour dark enough to need white
|
||||||
|
// text in the first place. rgba(0,0,0,.18) takes the same four
|
||||||
|
// colours to 6.94–9.37:1, because darkening a background that
|
||||||
|
// already carries white text can only help.
|
||||||
|
//
|
||||||
|
// Measured rather than reasoned: the composite was read back out
|
||||||
|
// of a canvas in headless Chromium, not computed — #50977f for the
|
||||||
|
// old rule, #19644b for this one.
|
||||||
. '.wpmgr-state{font-size:11px;text-transform:uppercase;letter-spacing:.04em;'
|
. '.wpmgr-state{font-size:11px;text-transform:uppercase;letter-spacing:.04em;'
|
||||||
. 'background:rgba(255,255,255,.22);padding:2px 8px;border-radius:10px}'
|
. 'background:rgba(0,0,0,.18);padding:2px 8px;border-radius:10px}'
|
||||||
. '.wpmgr-card footer{padding:12px 18px;border-top:1px solid #f0f0f1}'
|
. '.wpmgr-card footer{padding:12px 18px;border-top:1px solid #f0f0f1}'
|
||||||
. '</style>';
|
. '</style>';
|
||||||
|
|
||||||
|
|||||||
@@ -418,6 +418,36 @@ if ( function_exists( 'wpmgr_menu_glyph_style' ) ) {
|
|||||||
echo "::warning::wpmgr_menu_glyph_style() is not defined, so the glyph style was not exercised.\n";
|
echo "::warning::wpmgr_menu_glyph_style() is not defined, so the glyph style was not exercised.\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 🔴 The dashboard is RENDERED and the pill colour read out of what it
|
||||||
|
// emitted. Asserting the colour alone is not enough: the renderer returns
|
||||||
|
// early when no card is registered, and a harness that stubs the wrong filter
|
||||||
|
// name then reports "no problem" over a code path it never entered. Three
|
||||||
|
// sessions hit exactly that. So the card's own title is asserted first — if
|
||||||
|
// that is absent the renderer bailed, and nothing after it means anything.
|
||||||
|
if ( function_exists( 'wpmgr_render_dashboard' ) ) {
|
||||||
|
ob_start();
|
||||||
|
wpmgr_render_dashboard();
|
||||||
|
$wc_edm_dash = ob_get_clean();
|
||||||
|
|
||||||
|
wc_edm_ok(
|
||||||
|
'the shared dashboard renders this plugin card',
|
||||||
|
false !== strpos( $wc_edm_dash, 'Discounts' )
|
||||||
|
&& false !== strpos( $wc_edm_dash, 'wpmgr-card' ),
|
||||||
|
'rendered ' . strlen( $wc_edm_dash ) . ' bytes'
|
||||||
|
);
|
||||||
|
|
||||||
|
// The status pill is white text composited over the card colour, so 22%
|
||||||
|
// white put this plugin's green at 3.50:1. Named as the literal the file
|
||||||
|
// must contain, and the OLD value is asserted absent — a check that cannot
|
||||||
|
// tell the two versions apart cannot testify about either.
|
||||||
|
wc_edm_ok(
|
||||||
|
'and the status pill is the contrast-safe background',
|
||||||
|
false !== strpos( $wc_edm_dash, 'rgba(0,0,0,.18)' )
|
||||||
|
&& false === strpos( $wc_edm_dash, 'rgba(255,255,255,.22)' ),
|
||||||
|
'pill rule in output: ' . ( false !== strpos( $wc_edm_dash, 'rgba(255,255,255,.22)' ) ? 'the old 22% white' : 'not found at all' )
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// The frozen hash of includes/shared-menu.php is asserted in ci/static.sh
|
// The frozen hash of includes/shared-menu.php is asserted in ci/static.sh
|
||||||
// against WPMGR_MENU_SHA in ci/plugin.conf, and deliberately NOT repeated
|
// against WPMGR_MENU_SHA in ci/plugin.conf, and deliberately NOT repeated
|
||||||
// here: two copies of the same constant drift, and the one that drifts is the
|
// here: two copies of the same constant drift, and the one that drifts is the
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
* Plugin URI: https://gitea.nolimit.dk/kw/woo-discount-manager
|
* Plugin URI: https://gitea.nolimit.dk/kw/woo-discount-manager
|
||||||
* Update URI: https://gitea.nolimit.dk/kw/nolimit-discounts-dist
|
* 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).
|
* Description: Apply discounts and show/hide shipping methods based on the customer's email address (full address, domain or partial match).
|
||||||
* Version: 1.6.0
|
* Version: 1.6.1
|
||||||
* Author: Kristian Wind
|
* Author: Kristian Wind
|
||||||
* Author URI: https://gitea.nolimit.dk/kw
|
* Author URI: https://gitea.nolimit.dk/kw
|
||||||
* License: GPL-2.0-or-later
|
* License: GPL-2.0-or-later
|
||||||
@@ -28,7 +28,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
define( 'WC_EDM_VERSION', '1.6.0' );
|
define( 'WC_EDM_VERSION', '1.6.1' );
|
||||||
define( 'WC_EDM_PLUGIN_FILE', __FILE__ );
|
define( 'WC_EDM_PLUGIN_FILE', __FILE__ );
|
||||||
define( 'WC_EDM_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
|
define( 'WC_EDM_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
|
||||||
define( 'WC_EDM_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
|
define( 'WC_EDM_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
|
||||||
|
|||||||
Reference in New Issue
Block a user