Curtain Raiser for Inaugural Ceremony
Curtain Raiser for Inaugural Ceremony
Description
Curtain Raiser for Inaugural Ceremony adds a curtain-raiser feature to your WordPress website.
Perfect for virtual inauguration ceremonies — especially common for NGOs and Government websites in India.
What’s new in 1.6.0
- ✅ Remote Control — create an attendee session from Tools > Curtain Remote
- ✅ Attendee Link — share
?curtain_ceremony=true&wcr_token=TOKENso everyone loads the curtain - ✅ Open Curtain button — opens the curtain for all live attendees within ~2 seconds
- ✅ Close Curtain button — closes the curtain remotely so you can reset between takes
- ✅ REST polling — JS polls
GET /wp-json/wcr/v1/statusevery 2 s (zero UX lag) - ✅ Secure REST endpoints —
manage_options+ nonce required to open or close remotely - ✅ Session duration options — 30 min, 1 h, 4 h, or 24 h with auto-expiry via WP transients
- ✅ WP-CLI —
wp curtain-raiser status | preview-url | reset(v1.5) - ✅ Developer hooks — PHP action/filter hooks +
wcr:ready/wcr:open/wcr:closeDOM events (v1.5) - ✅ Gradient theme presets — Deep Velvet, Royal Blue, Forest Green, Midnight, Gold, Satin Rose (v1.4)
- ✅ Countdown timer — auto-opens curtain at a configurable date/time (v1.4)
- ✅ ARIA dialog wrapper, focus trap, live region — full keyboard & screen-reader support (v1.3)
Features
- Easy URL-based activation (
?curtain_ceremony=true) - Customisable curtain colour, gradient theme, or image
- Custom rope image support
- Adjustable animation speed (200–5000 ms)
- Countdown timer — auto-reveal at a scheduled date/time
- Remote Control — open or close the curtain for all live viewers simultaneously (Tools > Curtain Remote)
- WP-CLI support —
wp curtain-raiser status | preview-url | reset - Developer API — PHP hooks/filters + DOM custom events (
wcr:ready,wcr:open,wcr:close) - Mobile-responsive with touch swipe-up support
- Fully keyboard accessible (Enter, Space, Escape)
- ARIA dialog, focus trap, screen-reader live region
- Respects
prefers-reduced-motion - Zero JavaScript dependencies — no jQuery, no external libraries
- Clean uninstall removes all plugin data
To test the functionality, click here to spin up a new TasteWP instance.
Installation
- Upload the
wp-curtain-raiserfolder to/wp-content/plugins/ - Activate the plugin through the Plugins menu in WordPress
- Go to Settings > Curtain Raiser to configure colours and images
- Add
?curtain_ceremony=trueto any page URL to trigger the curtain - Share the URL with your guests!
Screenshots
Faq
After activating the plugin, append ?curtain_ceremony=true to any URL on your site.
Example: https://yourwebsite.com/?curtain_ceremony=true
Yes! Since 1.0.0, go to Settings > Curtain Raiser and use the colour picker.
If you also set a curtain image, the image takes priority over the colour.
Yes — go to Settings > Curtain Raiser and click Choose Image next to
“Curtain Image” or “Rope Image” to pick from your Media Library.
Since 1.0.0 the curtains use position: fixed (previously absolute), which
should resolve most theme conflicts. If you still see issues, try adjusting the
z-index values in the plugin CSS or raise a support ticket.
This is usually caused by:
1. Missing ?curtain_ceremony=true in the URL
2. CSS conflicts with other plugins (check z-index)
3. JavaScript conflicts (check browser console for errors)
4. Caching — clear browser and server cache after changing settings
No. The plugin only loads its CSS and JS when ?curtain_ceremony=true is present
in the URL. Normal page visits are completely unaffected.
Go to Settings > Curtain Raiser, enable “Countdown Timer”, and set a future
date/time. The countdown will display centred on the curtain and auto-open it
when the timer reaches zero.
Go to Tools > Curtain Remote and click Create a Session. Copy the Attendee
Link and share it with your audience before the event starts. When you are ready,
click Open Curtain — everyone on the Attendee Link will see the curtain open
within ~2 seconds. You can also click Close Curtain to reset the curtain
remotely between takes. The session expires automatically after the duration you
chose (30 min, 1 h, 4 h, or 24 h).
wp curtain-raiser status
wp curtain-raiser preview-url
wp curtain-raiser reset –yes
Listen on document for the wcr:open, wcr:close, and wcr:ready custom
events. Each event’s detail object includes a trigger property
('click', 'swipe', 'countdown', or 'remote').
document.addEventListener( 'wcr:open', function ( e ) {
console.log( 'Curtain opened via:', e.detail.trigger );
} );
Deactivate and then delete the plugin from the Plugins screen. The uninstall
routine will remove the plugin’s settings and any active remote sessions from
your database automatically.
Reviews
It does the job, in a royal style!
By Aravind Ajith (aravindajith) on May 5, 2022
Changelog
1.6.0
- New: Remote Control — Tools > Curtain Remote admin page for managing attendee sessions
- New: Attendee Link (
?curtain_ceremony=true&wcr_token=TOKEN) — share with your audience before the event - New: “Open Curtain” button — opens the curtain for all live attendees within ~2 seconds
- New: “Close Curtain” button — closes the curtain remotely; token stays valid until session expires
- New:
GET /wp-json/wcr/v1/statusREST endpoint — JS polls every 2 s (zero UX lag) - New:
POST /wp-json/wcr/v1/triggerREST endpoint — open curtain;manage_options+ nonce protected - New:
POST /wp-json/wcr/v1/closeREST endpoint — close curtain;manage_options+ nonce protected - New: Cryptographically secure token generation via
bin2hex(random_bytes(16)) - New: Session duration options (30 min, 1 h, 4 h, 24 h) with auto-expiry via WP transients
- New:
wcr_active_tokenwp_option as lightweight pointer to the current session token - New:
wcr:openDOM event dispatched with{trigger:'remote'}on remote open - New:
wcr:closeDOM event dispatched with{trigger:'remote'}on remote close - Improvement: Session token persists after curtain opens — Close Curtain remains usable for the full session duration
- Improvement: Polished settings page — clearer field labels, Quick Start guide, Preview & Share section
- Improvement: Uninstall routine cleans up session token data
1.5.0
- New: WP-CLI command
wp curtain-raiser status— tabular view of all plugin options - New: WP-CLI command
wp curtain-raiser preview-url— outputs a ready-to-use curtain URL - New: WP-CLI command
wp curtain-raiser reset [--yes]— restores factory defaults - New: PHP action
wp_curtain_raiser_before_html— fires before curtain HTML output - New: PHP action
wp_curtain_raiser_after_html— fires after curtain HTML output - New: PHP filter
wp_curtain_raiser_options— override merged plugin options - New: PHP filter
wp_curtain_raiser_panel_html— override/extend panel HTML per side - New: PHP filter
wp_curtain_raiser_localized_data— override JS config object - New: DOM event
wcr:ready— dispatched when JS initialises (detail:{options}) - New: DOM event
wcr:open— dispatched on curtain open (detail:{trigger}) - New: DOM event
wcr:close— dispatched on curtain close (detail:{trigger}) - Trigger values: open —
'click','swipe','countdown','remote'; close —'click','keyboard','remote'
1.4.0
- New: Six built-in gradient theme presets — Deep Velvet, Royal Blue, Forest Green, Midnight Black, Gold, Satin Rose
- New: Countdown timer — displays HH:MM:SS centred over the curtain; auto-opens at zero
- New:
curtain_themesetting — select box with 7 options (custom + 6 presets) - New:
countdown_enabledsetting — checkbox to activate the countdown - New:
countdown_targetsetting — datetime-local picker for the reveal time - Improvement: Settings page hides custom colour/image fields when a gradient theme is selected
- Improvement: Right-hand curtain panel uses
scaleX(-1)so gradient faces inward on both sides
1.3.0
- New: ARIA dialog wrapper (
role="dialog" aria-modal="true") around all curtain elements - New: Focus trap — Tab/Shift+Tab cycles only within the overlay while curtain is closed
- New: Focus management — opening moves focus to first focusable page element; closing returns focus to rope
- New:
aria-live="polite"live region announces “Curtain opened” / “Curtain closed” to screen readers - New:
aria-expandedattribute on rope updated on open/close - New:
aria-hidden="true"on curtain panel divs (decorative) - New: Touch swipe-up gesture now passes
'swipe'trigger to open() - New: Escape key now passes
'keyboard'trigger to close()
1.1.0
- Removed jQuery and jquery-effects-core dependency entirely — plugin is now zero-dependency JS
- Animation fully driven by CSS transitions and custom properties (–wcr-speed, –wcr-easing)
- JS now only toggles CSS classes (.wp-curtain–open, .wp-curtain-rope–visible)
- Script loaded with
deferstrategy (WP 6.3+ non-blocking script loading) - Bounce easing replaced with native CSS cubic-bezier — no easing library needed
- Touch swipe-up gesture now works without jQuery UI touch extensions
- Rope bounce effect preserved via CSS cubic-bezier(0.34, 1.56, 0.64, 1)
- Tested up to WordPress 6.9.1
1.0.0
- New: Curtain colour picker (finally delivers the “coming soon” promise from v0.1!)
- New: Custom curtain image via Media Library
- New: Custom rope image via Media Library
- New: Animation speed slider (200–5000 ms)
- New: Full Settings page under Settings > Curtain Raiser
- New: Activation hook sets default options in DB
- New: Uninstall hook removes plugin options cleanly
- Refactor: Converted to class-based architecture (WP_Curtain_Raiser, WP_Curtain_Raiser_Settings)
- Refactor: All constants moved to top-level defines in main file
- Fix: Curtains now use
position: fixed— works on all themes regardless of scroll - Fix: Removed unreliable
is_admin()call fromrequestfilter context - Fix: Asset version now uses
WP_CURTAIN_RAISER_VERSIONconstant throughout - Fix: Keyboard accessibility — Enter/Space opens curtain, Escape closes it
- Fix:
aria-expandedstate updated on rope element - Fix: Images use
object-fit: coverto prevent stretching - Improvement: Curtain can now be a solid colour (no image required)
- Improvement:
prefers-reduced-motionmedia query supported - Improvement: Additional responsive breakpoints (480 px)
0.7
- Security patches
- Responsive design improvements and touch support for mobile devices
- Settings page with help section
0.6
- Improved security measures
- Added responsive design features
0.5
- Miscellaneous bug fixes and performance improvements
0.4
- Enhanced animation effects
- User-friendly interface updates
0.3
- Cleaned assets folder
0.2
- Fixed query variable issue for static homepages
0.1
- Initial release


