Three gaps found by being asked plain questions about it.
**The auto-update toggle was a promise nobody had checked.** offer_update()
answers even when the installed version is current, on the reasoning that the
answer has to land in WordPress's no_update list for the "Enable auto-updates"
link to exist at all. That was a comment and an intention; it is now an
assertion against the real WP_Plugins_List_Table, which is where the flag is
actually read:
$plugin_data = array_merge( (array) $plugin_info->no_update[ $plugin_file ],
array( 'update-supported' => true ), $plugin_data );
A plugin in neither response nor no_update gets "Auto-updates are not available
for this plugin" while looking entirely healthy.
**An icon.** Without one, Dashboard → Updates shows a generic grey plug.
assets/icon.svg, handed over in the offer's icons key, served from the shop's
own copy rather than the release host — one fewer thing that must be reachable
for wp-admin to render, and it cannot go mixed content on an HTTPS shop. Drawn
as paths rather than <text>: an SVG that leans on a font renders differently on
every machine, and this one is shown at about 40px, which is the size where
that is the difference between a mark and a smudge.
**"Check again" now checks again.** The six-hour cache is right for the check
WordPress runs twice a day and wrong for a link whose whole promise is that it
looks now. Publishing a release and then clicking it showed nothing for up to
six hours, which reads exactly like a broken updater.
And docs/REUSE.md was missing all of this: it covered Update URI, where to
instantiate the updater and making the repo public, but not the one rule that
is genuinely easy to get wrong.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
19 lines
1.1 KiB
XML
19 lines
1.1 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" width="128" height="128" role="img" aria-label="WooCommerce Email Discount Manager">
|
|
<!-- Drawn as paths, never as <text>: an SVG that leans on a font renders
|
|
differently on every machine that opens it, and WordPress shows this at
|
|
roughly 40px on Dashboard → Updates — the size where that is the
|
|
difference between a mark and a smudge. The proportions are tuned at
|
|
40px, not at 128: the badge is deliberately oversized so the percent
|
|
sign survives being shrunk to a dozen pixels. -->
|
|
<rect width="128" height="128" rx="28" fill="#7f54b3"/>
|
|
<rect x="13" y="30" width="74" height="52" rx="7" fill="#ffffff"/>
|
|
<path d="M13 36 L50 62 L87 36" fill="none" stroke="#7f54b3" stroke-width="7"
|
|
stroke-linecap="round" stroke-linejoin="round"/>
|
|
<circle cx="90" cy="90" r="32" fill="#ffffff"/>
|
|
<g stroke="#7f54b3" stroke-width="6" fill="none" stroke-linecap="round">
|
|
<circle cx="80" cy="80" r="6"/>
|
|
<circle cx="100" cy="100" r="6"/>
|
|
<path d="M76 104 L104 76"/>
|
|
</g>
|
|
</svg>
|