{"id":347602,"date":"2026-08-03T17:19:48","date_gmt":"2026-08-03T17:19:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/campaign-countdown-timer-pro\/"},"modified":"2026-08-04T03:19:35","modified_gmt":"2026-08-04T03:19:35","slug":"petrichorcraft-countdown-campaigns","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/petrichorcraft-countdown-campaigns\/","author":15753799,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.11.1","stable_tag":"1.11.1","tested":"7.0.2","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"PetrichorCraft Countdown Campaigns","header_author":"PetrichorCraft","header_description":"Recurring, fixed, and evergreen countdown campaigns with visual layout builder, sticky bars, WooCommerce integration, and email countdown images.","assets_banners_color":"424459","last_updated":"2026-08-04 03:19:35","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/petrichorcraft.com\/","header_plugin_uri":"","header_author_uri":"https:\/\/petrichorcraft.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":62,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.11.0":{"tag":"1.11.0","author":"csoftech","date":"2026-08-04 03:08:10"},"1.11.1":{"tag":"1.11.1","author":"csoftech","date":"2026-08-04 03:19:35"}},"upgrade_notice":{"1.11.1":"<p>Fixes countdown background and accent colors not applying on shop and archive pages.<\/p>","1.11.0":"<p>Renamed plugin\/slug for WordPress.org review. Shortcodes are now [pctc_countdown] and [pctc_deals]. Custom CSS field removed \u2014 use Appearance \u2192 Customize \u2192 Additional CSS.<\/p>","1.10.0":"<p>Adds separate product\/shop\/archive layouts, discount highlighting, and auto-apply coupons.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3633269,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3633269,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3633269,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3633269,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"pctc\/countdown":{"apiVersion":3,"name":"pctc\/countdown","title":"PetrichorCraft Countdown Campaigns","category":"widgets","icon":"clock","description":"Display a countdown timer campaign.","keywords":["countdown","timer","urgency","sale"],"textdomain":"petrichorcraft-countdown-campaigns","attributes":{"campaignId":{"type":"number","default":0}},"supports":{"html":false},"editorScript":"pctc-countdown-block-editor"}},"tagged_versions":["1.11.0","1.11.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3633269,"resolution":"1","location":"assets","locale":"","width":1200,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3633269,"resolution":"2","location":"assets","locale":"","width":1200,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3633269,"resolution":"3","location":"assets","locale":"","width":1200,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3633269,"resolution":"4","location":"assets","locale":"","width":1200,"height":900},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3633269,"resolution":"5","location":"assets","locale":"","width":1200,"height":900},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3633269,"resolution":"6","location":"assets","locale":"","width":1200,"height":900},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3633269,"resolution":"7","location":"assets","locale":"","width":1200,"height":900},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3633269,"resolution":"8","location":"assets","locale":"","width":1200,"height":900}},"screenshots":{"1":"Campaign list \u2014 manage all countdown campaigns from one screen","2":"Campaign editor \u2014 recurring, fixed, and evergreen settings with visual layout builder","3":"Sticky announcement bar \u2014 fixed top or bottom bar on any page","4":"WooCommerce product page \u2014 urgency timer on sale products","5":"Evergreen timer \u2014 per-visitor countdown with auto-restart","6":"Email countdown \u2014 dynamic PNG embed for Mailchimp, Klaviyo, and more","7":"Mobile view \u2014 responsive stack, wrap, or keep-desktop layouts","8":"Live preview \u2014 desktop and mobile toggle in the campaign editor"}},"plugin_section":[],"plugin_tags":[11659,5447,4076,179071,286],"plugin_category":[40,45],"plugin_contributors":[274364],"plugin_business_model":[],"class_list":["post-347602","plugin","type-plugin","status-publish","hentry","plugin_tags-countdown","plugin_tags-sale","plugin_tags-timer","plugin_tags-urgency","plugin_tags-woocommerce","plugin_category-calendar-and-events","plugin_category-ecommerce","plugin_contributors-csoftech","plugin_committers-csoftech"],"banners":{"banner":"https:\/\/ps.w.org\/petrichorcraft-countdown-campaigns\/assets\/banner-772x250.png?rev=3633269","banner_2x":"https:\/\/ps.w.org\/petrichorcraft-countdown-campaigns\/assets\/banner-1544x500.png?rev=3633269","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/petrichorcraft-countdown-campaigns\/assets\/icon-128x128.png?rev=3633269","icon_2x":"https:\/\/ps.w.org\/petrichorcraft-countdown-campaigns\/assets\/icon-256x256.png?rev=3633269","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/petrichorcraft-countdown-campaigns\/assets\/screenshot-1.png?rev=3633269","caption":"Campaign list \u2014 manage all countdown campaigns from one screen"},{"src":"https:\/\/ps.w.org\/petrichorcraft-countdown-campaigns\/assets\/screenshot-2.png?rev=3633269","caption":"Campaign editor \u2014 recurring, fixed, and evergreen settings with visual layout builder"},{"src":"https:\/\/ps.w.org\/petrichorcraft-countdown-campaigns\/assets\/screenshot-3.png?rev=3633269","caption":"Sticky announcement bar \u2014 fixed top or bottom bar on any page"},{"src":"https:\/\/ps.w.org\/petrichorcraft-countdown-campaigns\/assets\/screenshot-4.png?rev=3633269","caption":"WooCommerce product page \u2014 urgency timer on sale products"},{"src":"https:\/\/ps.w.org\/petrichorcraft-countdown-campaigns\/assets\/screenshot-5.png?rev=3633269","caption":"Evergreen timer \u2014 per-visitor countdown with auto-restart"},{"src":"https:\/\/ps.w.org\/petrichorcraft-countdown-campaigns\/assets\/screenshot-6.png?rev=3633269","caption":"Email countdown \u2014 dynamic PNG embed for Mailchimp, Klaviyo, and more"},{"src":"https:\/\/ps.w.org\/petrichorcraft-countdown-campaigns\/assets\/screenshot-7.png?rev=3633269","caption":"Mobile view \u2014 responsive stack, wrap, or keep-desktop layouts"},{"src":"https:\/\/ps.w.org\/petrichorcraft-countdown-campaigns\/assets\/screenshot-8.png?rev=3633269","caption":"Live preview \u2014 desktop and mobile toggle in the campaign editor"}],"raw_content":"<!--section=description-->\n<p><strong>PetrichorCraft Countdown Campaigns<\/strong> by <a href=\"https:\/\/petrichorcraft.com\/\">PetrichorCraft<\/a> is a complete urgency and scarcity plugin for WordPress and WooCommerce.<\/p>\n\n<p>Create shipping cutoffs, flash sales, product launches, evergreen offers, sticky announcement bars, email countdown images, and promotional deals pages \u2014 without writing code or stacking multiple plugins.<\/p>\n\n<h4>Campaign types<\/h4>\n\n<ul>\n<li><strong>Recurring<\/strong> \u2014 daily, weekly, every N hours, or every X days (perfect for same-day shipping cutoffs)<\/li>\n<li><strong>Fixed deadline<\/strong> \u2014 one shared end date\/time for everyone (Black Friday, launches, events)<\/li>\n<li><strong>Evergreen<\/strong> \u2014 unique per-visitor timer with optional auto-restart<\/li>\n<li>Optional campaign schedule window (only show between two dates)<\/li>\n<li>Per-campaign timezone support<\/li>\n<\/ul>\n\n<h4>Visual layout builder<\/h4>\n\n<ul>\n<li>Drag-and-drop <strong>12-column<\/strong> grid with optional second row<\/li>\n<li>Elements: <strong>Text<\/strong>, <strong>Timer<\/strong>, <strong>Button<\/strong>, <strong>Scarcity bar<\/strong>, <strong>Sale price<\/strong>, <strong>Discount badge<\/strong>, <strong>Inventory text<\/strong>, <strong>Coupon code<\/strong><\/li>\n<li>Layout presets including announcement bar, stacked, compact, and full urgency<\/li>\n<li>Timer digit styles: block, inline, compact, minimal, text-only<\/li>\n<li>Live <strong>desktop \/ mobile preview<\/strong> in the campaign editor<\/li>\n<li>Mobile modes: stack, wrap, or keep desktop layout<\/li>\n<li>Colors, gap, padding, and alignment (advanced CSS via the theme Customizer)<\/li>\n<\/ul>\n\n<h4>Urgency elements<\/h4>\n\n<ul>\n<li><strong>Scarcity \/ progress bar<\/strong> \u2014 manual sold\/total or WooCommerce stock-based<\/li>\n<li><strong>Sale price<\/strong> \u2014 manual was\/now or live product prices<\/li>\n<li><strong>Discount badge<\/strong> \u2014 pill, banner, or ribbon styles<\/li>\n<li><strong>Inventory text<\/strong> \u2014 \u201cOnly X left\u201d with threshold control<\/li>\n<li><strong>Coupon code<\/strong> \u2014 display + one-click copy<\/li>\n<\/ul>\n\n<h4>Display options<\/h4>\n\n<ul>\n<li>Shortcode: <code>[pctc_countdown id=\"123\"]<\/code><\/li>\n<li>Gutenberg block<\/li>\n<li>Sticky top\/bottom announcement bar (Elementor-safe)<\/li>\n<li>WooCommerce product page auto-placement<\/li>\n<li>Shop \/ category \/ tag loop cards (separate layouts)<\/li>\n<li>Checkout urgency bar<\/li>\n<li>Deals grid shortcode for landing pages: <code>[pctc_deals id=\"123\" limit=\"8\" columns=\"3\"]<\/code><\/li>\n<li>Auto product discounts with highlighted sale price (no coupon required)<\/li>\n<li>Auto-apply coupon codes with product and cart notices<\/li>\n<\/ul>\n\n<h4>WooCommerce product placements<\/h4>\n\n<ul>\n<li>Before \/ after product title<\/li>\n<li>After short description<\/li>\n<li>After price<\/li>\n<li>Before \/ after Add to Cart<\/li>\n<li>After product meta<\/li>\n<li>Before \/ after product tabs<\/li>\n<li>Per-product campaign override on the product edit screen<\/li>\n<\/ul>\n\n<h4>WooCommerce discounts &amp; pricing<\/h4>\n\n<ul>\n<li>Apply <strong>percent<\/strong> or <strong>fixed<\/strong> discounts while a campaign is active<\/li>\n<li>Dynamic pricing (does not permanently overwrite product prices)<\/li>\n<li>Target all products, on-sale products, specific IDs, categories, or tags<\/li>\n<li>Exclude products<\/li>\n<li><strong>Early bird tiers<\/strong> \u2014 first N buyers get a deeper discount<\/li>\n<li><strong>Stock-based pricing<\/strong> \u2014 change discounts as inventory drops<\/li>\n<li>Coming soon \/ launch mode \u2014 hide Add to Cart (and optionally price) until the timer ends<\/li>\n<li>Cart &amp; checkout coupon expiry countdown<\/li>\n<li>Expiry actions: hide Add to Cart, expire coupon, change stock status, redirect, hide timer, show message<\/li>\n<\/ul>\n\n<h4>Email countdown timers<\/h4>\n\n<ul>\n<li>Dynamic PNG image via REST API (works with Mailchimp, Klaviyo, and most ESPs)<\/li>\n<li>Supports recurring, fixed, and evergreen timers<\/li>\n<li>Evergreen merge-tag support with <code>?uid=<\/code><\/li>\n<li>Requires PHP GD extension<\/li>\n<\/ul>\n\n<h4>Developer friendly<\/h4>\n\n<ul>\n<li>REST API: <code>\/wp-json\/pctc\/v1\/sync\/{id}<\/code> and <code>\/expire\/{id}<\/code><\/li>\n<li>Email image endpoint: <code>\/wp-json\/pctc\/v1\/email\/{id}<\/code><\/li>\n<li>GPL-licensed, no phone-home tracking<\/li>\n<\/ul>\n\n<h4>Support<\/h4>\n\n<p>Email: <a href=\"mailto:support@petrichorcraft.com\">support@petrichorcraft.com<\/a>\nWebsite: <a href=\"https:\/\/petrichorcraft.com\/\">petrichorcraft.com<\/a><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install via <strong>Plugins \u2192 Add New<\/strong><\/li>\n<li>Activate <strong>PetrichorCraft Countdown Campaigns<\/strong><\/li>\n<li>Go to <strong>Countdown Campaigns \u2192 Add New<\/strong><\/li>\n<li>Configure campaign type, visual layout, and (optionally) WooCommerce rules<\/li>\n<li>Copy <code>[pctc_countdown id=\"123\"]<\/code> or use the Gutenberg block \/ deals grid shortcode<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20elementor%3F\"><h3>Does this work with Elementor?<\/h3><\/dt>\n<dd><p>Yes. Use the Shortcode widget with <code>[pctc_countdown id=\"123\"]<\/code>. Sticky bars are moved to the document body so Elementor sections do not break fixed positioning.<\/p><\/dd>\n<dt id=\"do%20i%20need%20woocommerce%3F\"><h3>Do I need WooCommerce?<\/h3><\/dt>\n<dd><p>No. Core countdown features work on any WordPress site. WooCommerce is only required for product discounts, catalog loops, checkout bar, coming soon, and stock-aware elements.<\/p><\/dd>\n<dt id=\"how%20do%20email%20countdown%20timers%20work%3F\"><h3>How do email countdown timers work?<\/h3><\/dt>\n<dd><p>Email clients cannot run JavaScript. This plugin generates a dynamic PNG via REST API that updates when the email is opened. Copy the HTML embed from the campaign <strong>Email Countdown<\/strong> panel.<\/p><\/dd>\n<dt id=\"what%20is%20early%20bird%20pricing%3F\"><h3>What is early bird pricing?<\/h3><\/dt>\n<dd><p>Enable Product Discount + Early Bird tiers. The first N completed\/processing orders matching the campaign receive the first-tier discount, then later tiers apply.<\/p><\/dd>\n<dt id=\"what%20is%20the%20deals%20grid%20shortcode%3F\"><h3>What is the deals grid shortcode?<\/h3><\/dt>\n<dd><p>[pctc_deals id=\"123\" limit=\"8\" columns=\"3\"] renders a responsive product grid for the campaign\u2019s targeted products, each with price, countdown, and a View deal button.<\/p><\/dd>\n<dt id=\"does%20stock-based%20pricing%20require%20managed%20stock%3F\"><h3>Does stock-based pricing require managed stock?<\/h3><\/dt>\n<dd><p>Yes. Products must manage stock in WooCommerce for stock steps to apply.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20the%20timer%20expires%3F\"><h3>What happens when the timer expires?<\/h3><\/dt>\n<dd><p>Choose an expiry action: show a message, hide the countdown, redirect, hide Add to Cart, expire a coupon, or change stock status.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.11.1<\/h4>\n\n<ul>\n<li>Fix campaign color CSS variables on product, shop, and archive layouts<\/li>\n<li>Fix multi-class sanitization so layout context classes apply correctly<\/li>\n<\/ul>\n\n<h4>1.11.0<\/h4>\n\n<ul>\n<li>Renamed to PetrichorCraft Countdown Campaigns (distinctive slug\/text domain)<\/li>\n<li>Removed arbitrary custom CSS insertion (use theme Additional CSS)<\/li>\n<li>Hardened public expire REST route with signed tokens and cookie-only evergreen timing<\/li>\n<li>Capped evergreen email visitor storage to prevent options bloat<\/li>\n<li>Prefixed shortcodes, REST namespace, post type, options, and PHP symbols (pctc \/ PCTC)<\/li>\n<\/ul>\n\n<h4>1.10.0<\/h4>\n\n<ul>\n<li>Separate countdown layouts for product, shop, archive, and checkout<\/li>\n<li>Independent shop vs category\/tag archive display toggles<\/li>\n<li>Highlight auto product discounts with sale badge (no coupon required)<\/li>\n<li>Product-page \u201cauto discount\u201d notice<\/li>\n<li>Auto-apply WooCommerce coupons with product and cart notices<\/li>\n<\/ul>\n\n<h4>1.9.1<\/h4>\n\n<ul>\n<li>Security: public expire REST endpoint only runs after the campaign period has ended<\/li>\n<li>readme tags limited to 5 (WordPress.org requirement)<\/li>\n<li>Uninstall cleans campaign sales options and expiry backups<\/li>\n<li>Declares WooCommerce HPOS and Cart\/Checkout Blocks compatibility<\/li>\n<li>translators comments for early-bird \/ stock-pricing admin strings<\/li>\n<\/ul>\n\n<h4>1.9.0<\/h4>\n\n<ul>\n<li>Early bird discount tiers based on campaign order count<\/li>\n<li>Stock-based pricing steps as inventory drops<\/li>\n<li>Deals grid shortcode for landing pages<\/li>\n<li>Expanded WordPress.org feature documentation<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>More product page placements (title, excerpt, meta, tabs)<\/li>\n<li>Shop \/ category \/ tag loop countdowns<\/li>\n<li>Checkout urgency bar<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>WooCommerce product discounts (percent or fixed) while campaign is active<\/li>\n<li>Coming soon \/ launch mode \u2014 hide Add to Cart until timer ends<\/li>\n<li>Cart &amp; checkout coupon expiry countdown<\/li>\n<li>Dynamic pricing (no permanent product overwrite)<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>New builder elements: scarcity bar, sale price, discount badge, inventory text, coupon code<\/li>\n<li>Urgency element settings with WooCommerce product\/stock modes<\/li>\n<li>Live preview support for new elements<\/li>\n<li>Copy-to-clipboard for coupon codes<\/li>\n<li>New \"Full urgency\" layout preset<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Mobile layout modes (stack, wrap, keep) with breakpoint control<\/li>\n<li>Live desktop\/mobile preview in campaign editor<\/li>\n<li>Visual layout builder with 12-column row + optional second row<\/li>\n<li>WordPress.org submission package and Plugin Check compliance<\/li>\n<li>Gutenberg block API version 3<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>12-column visual grid (4\u00d73 expanded layout)<\/li>\n<li>Optional second row with auto-hide when empty<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Drag-and-drop visual template builder<\/li>\n<li>Inline row presets and grid alignment<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Layout options (block, inline, compact, minimal, text-only)<\/li>\n<li>Email countdown PNG generation<\/li>\n<li>WooCommerce integration<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: recurring, fixed, evergreen campaigns<\/li>\n<\/ul>","raw_excerpt":"PetrichorCraft urgency toolkit: countdown campaigns, visual layout builder, WooCommerce discounts, scarcity elements, email timers, and deals grids.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/347602","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=347602"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/csoftech"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=347602"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=347602"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=347602"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=347602"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=347602"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=347602"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}