Lightweight, theme-agnostic countdown banner for promotions and launches — with live preview, color picker, URL targeting, and a copy shortcode button.
Plugin slug:
instant-countdown-banner
Text domain:instant-countdown-banner
- Top/Bottom + sticky mode
- Messages before/after deadline with
{time}placeholder - Colors via WP Color Picker
- Optional CTA (label + URL)
- Dismiss (cookie, N days), hide for logged-in users
- URL targeting (include/exclude, wildcards
*, full URLs or paths) - Body offset toggle for sticky mode
- Live Preview (admin) + Copy shortcode
- i18n-ready (
languages/instant-countdown-banner.pot)
- Upload the plugin and activate it.
- Go to Settings → Instant Countdown Banner.
- Set deadline, messages, colors, CTA, targeting. Preview live. Save.
Shortcode
[instant_countdown_banner]
Targeting patterns (examples)
/sale/*
/black-friday
https://example.com/deals/*
composer install
composer exec phpcs -- --standard=ruleset.xml instant-countdown-banner
composer exec phpcbf -- --standard=ruleset.xml instant-countdown-bannernpm install
npm run lint
npm run fix- Base template:
languages/instant-countdown-banner.pot - Create
instant-countdown-banner-<locale>.po/moinlanguages/
Distribute a clean ZIP containing only runtime files inside instant-countdown-banner/:
Keep
instant-countdown-banner.php,uninstall.phpincludes/(admin-page.php)assets/js/instant-countdown-banner.min.jsassets/css/instant-countdown-banner.min.cssassets/admin/js/admin.js,assets/admin/css/admin.csslanguages/instant-countdown-banner.potreadme.txt(WordPress.org format) inside the plugin folder
Exclude
node_modules/,vendor/composer.json,composer.lock,package.json,package-lock.jsonruleset.xml,.eslintrc.*,.eslintignore,stylelint.config.*,.stylelintignoreassets/marketing/,README.md,AGENTS.md(keep in repo, not in the release ZIP)
Tip: keep
composer.lockandpackage-lock.jsonin the repo, not in the release ZIP.
- Update both
Version:header ininstant-countdown-banner.phpandStable tag:inreadme.txtfor each release.
Built by WPezo — https://www.wpezo.com
GPLv2 or later