{"id":329430,"date":"2026-06-21T08:39:37","date_gmt":"2026-06-21T08:39:37","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/erdo-devgate\/"},"modified":"2026-06-21T08:39:10","modified_gmt":"2026-06-21T08:39:10","slug":"erdo-client-preview","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/erdo-client-preview\/","author":23436214,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.4.0","stable_tag":"1.4.0","tested":"7.0","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Erdo Client Preview","header_author":"Erdinc Bulat","header_description":"Site access control with magic link bypass \u2014 generate a private link so clients can preview the live site while everyone else sees your coming soon or maintenance page.","assets_banners_color":"9f9f9c","last_updated":"2026-06-21 08:39:10","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/erdo-client-preview\/","header_author_uri":"https:\/\/erdincbulat.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":26,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.4.0":{"tag":"1.4.0","author":"erdincbulat","date":"2026-06-21 08:39:10"}},"upgrade_notice":{"1.1.0":"<p>Major update: Coming Soon mode, scheduled maintenance with cron fallback, email subscriptions, per-link notifications, emergency rescue URL, admin bar toggle, and more. Recommended for all users.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3580436,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3580436,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3580436,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3580436,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3580436,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.4.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3580436,"resolution":"1","location":"assets","locale":"","width":1896,"height":870},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3580436,"resolution":"2","location":"assets","locale":"","width":1901,"height":912},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3580436,"resolution":"3","location":"assets","locale":"","width":1896,"height":907},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3580436,"resolution":"4","location":"assets","locale":"","width":1897,"height":872},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3580436,"resolution":"5","location":"assets","locale":"","width":1918,"height":903}},"screenshots":{"1":"Magic links panel \u2014 create named bypass links with individual expiry dates and redirect URLs; copy, revoke, and track view counts per link.","2":"Visual annotation mode \u2014 a client's pinned note on the live site, with the admin reply shown in the details popup.","3":"Feedback tab \u2014 review visitor messages, reply directly, and mark them as in progress or completed with bulk actions.","4":"Settings panel \u2014 mode selector (HTTP 503 Maintenance vs HTTP 200 Coming Soon), enable toggle, scheduled activation, countdown timer, and access control.","5":"Visitor-facing page \u2014 custom logo, colors, animated countdown timer, and social links."}},"plugin_section":[],"plugin_tags":[266805,802,185112,268183,733],"plugin_category":[],"plugin_contributors":[253916],"plugin_business_model":[],"class_list":["post-329430","plugin","type-plugin","status-publish","hentry","plugin_tags-client-preview","plugin_tags-coming-soon","plugin_tags-magic-link","plugin_tags-site-access","plugin_tags-under-construction","plugin_contributors-erdincbulat","plugin_committers-erdincbulat"],"banners":{"banner":"https:\/\/ps.w.org\/erdo-client-preview\/assets\/banner-772x250.png?rev=3580436","banner_2x":"https:\/\/ps.w.org\/erdo-client-preview\/assets\/banner-1544x500.png?rev=3580436","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/erdo-client-preview\/assets\/icon.svg?rev=3580436","icon":"https:\/\/ps.w.org\/erdo-client-preview\/assets\/icon.svg?rev=3580436","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/erdo-client-preview\/assets\/screenshot-1.png?rev=3580436","caption":"Magic links panel \u2014 create named bypass links with individual expiry dates and redirect URLs; copy, revoke, and track view counts per link."},{"src":"https:\/\/ps.w.org\/erdo-client-preview\/assets\/screenshot-2.png?rev=3580436","caption":"Visual annotation mode \u2014 a client's pinned note on the live site, with the admin reply shown in the details popup."},{"src":"https:\/\/ps.w.org\/erdo-client-preview\/assets\/screenshot-3.png?rev=3580436","caption":"Feedback tab \u2014 review visitor messages, reply directly, and mark them as in progress or completed with bulk actions."},{"src":"https:\/\/ps.w.org\/erdo-client-preview\/assets\/screenshot-4.png?rev=3580436","caption":"Settings panel \u2014 mode selector (HTTP 503 Maintenance vs HTTP 200 Coming Soon), enable toggle, scheduled activation, countdown timer, and access control."},{"src":"https:\/\/ps.w.org\/erdo-client-preview\/assets\/screenshot-5.png?rev=3580436","caption":"Visitor-facing page \u2014 custom logo, colors, animated countdown timer, and social links."}],"raw_content":"<!--section=description-->\n<p><strong>Erdo Client Preview<\/strong> goes further than a typical coming soon or maintenance page. Most \"coming soon\" plugins stop at hiding your site behind a countdown timer. Erdo Client Preview adds the three things agencies and freelancers actually need when working with clients on a live site:<\/p>\n\n<ul>\n<li><strong>Magic links<\/strong> \u2014 a private, password-free URL per person that bypasses the gate<\/li>\n<li><strong>Visitor feedback<\/strong> \u2014 clients leave messages directly on the page they're viewing, no email back-and-forth<\/li>\n<li><strong>Live annotations<\/strong> \u2014 clients click any element on the site and pin an exact note about it, like a built-in design-review tool<\/li>\n<\/ul>\n\n<p>Everyone without a link sees your custom coming soon \/ under construction page. Everyone with one browses the real, live site \u2014 and can tell you exactly what they think while they're there.<\/p>\n\n<h4>Magic Links: Per-Person Access, Not a Shared Password<\/h4>\n\n<p>Unlike standard bypass systems that share a single password with everyone, Client Preview gives each person their own named link:<\/p>\n\n<ul>\n<li><strong>Label each link<\/strong> \u2014 know exactly who has access (e.g. \"John - Client\", \"Anna - Designer\")<\/li>\n<li><strong>Individual expiry<\/strong> \u2014 24 hours, 48 hours, 7 days, 30 days, or never<\/li>\n<li><strong>Per-link redirect URL<\/strong> \u2014 send each visitor to a specific page after bypass<\/li>\n<li><strong>Revoke a single link<\/strong> without affecting others<\/li>\n<li><strong>Usage counter and access history<\/strong> \u2014 see how many times, and when, each link was used<\/li>\n<li><strong>Email notification<\/strong> \u2014 get alerted the moment a link is used, with the visitor's IP and timestamp (optional, off by default)<\/li>\n<li>32-character cryptographic tokens, stored only as <strong>HMAC-SHA256 hashes<\/strong> \u2014 the raw token is never saved in the database, and the bypass cookie is signed, <code>HttpOnly<\/code>, and verified with <code>hash_equals()<\/code> to prevent timing attacks<\/li>\n<\/ul>\n\n<h4>Visitor Feedback: Messages Straight From the Page Being Reviewed<\/h4>\n\n<p>No more chasing clients over email for feedback. A built-in widget lets anyone \u2014 a visitor on the coming soon page, or a client browsing the live site through a magic link \u2014 leave a message with no account required.<\/p>\n\n<ul>\n<li><strong>Reply from the admin<\/strong> \u2014 answer directly from the Feedback tab; the visitor sees your reply automatically next time they check<\/li>\n<li><strong>\"Past Feedback\" history<\/strong> \u2014 visitors see their own previous messages and status (in progress \/ completed)<\/li>\n<li><strong>Email alerts<\/strong> \u2014 get notified the moment new feedback comes in<\/li>\n<li><strong>Bulk actions<\/strong> \u2014 select multiple entries to mark as completed or delete at once<\/li>\n<\/ul>\n\n<h4>Live Annotations: Pinpoint Feedback on the Exact Element<\/h4>\n\n<p>This is the feature that turns Erdo Client Preview from a gate into a review tool. With Visual Annotation Mode enabled, a magic-link visitor can click any element on the live site and pin a note directly on it \u2014 \"move this button,\" \"wrong color here,\" \"fix this typo\" \u2014 right where it belongs, not in a vague email.<\/p>\n\n<ul>\n<li><strong>Persistent pins for admins<\/strong> \u2014 every note left on a page shows up automatically as a numbered pin the next time you (the admin) visit that page, logged in, no special \"view\" link needed<\/li>\n<li><strong>Click a pin to reply<\/strong> \u2014 answer directly in the same details popup the visitor sees<\/li>\n<li><strong>Status tracking<\/strong> \u2014 mark notes as in progress or completed<\/li>\n<li><strong>Email alerts<\/strong> \u2014 get notified the moment a new annotation is submitted<\/li>\n<li><strong>Bulk actions<\/strong> \u2014 select multiple notes to mark as completed or delete at once<\/li>\n<\/ul>\n\n<h4>Two Modes<\/h4>\n\n<p><strong>Maintenance Mode (HTTP 503)<\/strong>\nFor active deployments, migrations, and updates. Returns a proper HTTP 503 with a <code>Retry-After<\/code> header calculated dynamically from your countdown timer \u2014 the correct signal for search engine crawlers to return later without penalising your rankings.<\/p>\n\n<p><strong>Coming Soon Mode (HTTP 200)<\/strong>\nFor new site launches. Returns HTTP 200 so search engines can discover and index the page, building domain authority before you go live. Pair it with the built-in email subscription form to grow your audience from day one \u2014 no Mailchimp, no API keys, everything stored in WordPress.<\/p>\n\n<h4>Scheduled Activation<\/h4>\n\n<p>Set a start and end date for your under construction window, or set up a recurring weekly schedule (e.g. every night between 2 AM and 4 AM for routine maintenance) and let WordPress handle it automatically. If the server's WP-Cron fails to fire, a real-time fallback evaluates the schedule on every request \u2014 the site is never accidentally left open or stuck behind the page.<\/p>\n\n<h4>Customizable Page<\/h4>\n\n<ul>\n<li>Upload your logo<\/li>\n<li>Background color, text color, and accent color with a visual color picker<\/li>\n<li>Full-screen background image with automatic dark overlay<\/li>\n<li>Animated countdown timer with progress bar (uses site timezone)<\/li>\n<li>Live visitor counter \u2014 show how many people are waiting for launch<\/li>\n<li>Social links: X\/Twitter, Instagram, Facebook, LinkedIn, YouTube<\/li>\n<\/ul>\n\n<h4>Access Control<\/h4>\n\n<ul>\n<li><strong>IP Whitelist<\/strong> \u2014 bypass the coming soon \/ under construction page for specific IP addresses; your current IP is auto-detected with one-click add<\/li>\n<li><strong>Admin bypass<\/strong> \u2014 logged-in administrators always see the live site (configurable)<\/li>\n<li><strong>Page &amp; post type exclusions<\/strong> \u2014 keep specific pages, posts, or entire post types publicly accessible while the rest of the site is gated<\/li>\n<li><strong>Developer-safe<\/strong> \u2014 XML-RPC, REST API, WP-Cron, WP-CLI, and wp-login.php are always bypassed; your background tasks and API integrations are never blocked<\/li>\n<\/ul>\n\n<h4>White Label for Agencies<\/h4>\n\n<p>Replace \"Erdo Client Preview\" with your own agency name and logo on the settings page and admin menu \u2014 what your client sees stays branded to you, not to a third-party plugin.<\/p>\n\n<h4>Emergency Rescue URL<\/h4>\n\n<p>A secret URL you save in your password manager. Visit it from any browser to disable maintenance instantly \u2014 no login, no database access required. Regenerate it from settings at any time.<\/p>\n\n<h4>Admin Tools<\/h4>\n\n<ul>\n<li>Admin bar status indicator \u2014 red\/green dot visible on every page<\/li>\n<li>One-click toggle directly from the admin bar<\/li>\n<li>Live preview button \u2014 see exactly what visitors see without disabling the page<\/li>\n<\/ul>\n\n<h4>Who Is This For?<\/h4>\n\n<p><strong>Web agencies and freelancers<\/strong> \u2014 put a client site under maintenance during updates, share a private magic link so the client can review live progress at any time, collect feedback and pinpoint annotations directly on the page instead of email threads, then revoke the link the moment the project is delivered. No shared passwords, no confused clients, no accidental exposure.<\/p>\n\n<p><strong>Site owners launching a new project<\/strong> \u2014 collect email subscribers in Coming Soon mode while building domain authority. No third-party subscription service needed.<\/p>\n\n<p><strong>Developers and DevOps<\/strong> \u2014 schedule maintenance windows for database migrations and deployments without manual intervention. WP-Cron fallback ensures the site never stays accidentally open.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>erdo-client-preview<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate through the <strong>Plugins<\/strong> menu<\/li>\n<li>Go to <strong>Client Preview<\/strong> in the admin menu<\/li>\n<li>Choose Maintenance or Coming Soon mode and enable<\/li>\n<li>Generate a magic link and share it with your client<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20does%20the%20magic%20link%20bypass%20work%3F\"><h3>How does the magic link bypass work?<\/h3><\/dt>\n<dd><p>When you generate a magic link, a unique 32-character cryptographic token is created. The raw token is never stored \u2014 only its HMAC-SHA256 hash is saved in the database. When a visitor clicks the link, Erdo Client Preview verifies the token using <code>hash_equals()<\/code> and sets a signed, <code>HttpOnly<\/code> cookie in their browser. From that point, they can navigate the entire live site without clicking the link again. The cookie lasts 24 hours.<\/p><\/dd>\n<dt id=\"can%20i%20have%20multiple%20magic%20links%3F\"><h3>Can I have multiple magic links?<\/h3><\/dt>\n<dd><p>Yes. Create as many as you need \u2014 one per person, per project, or per purpose. Each has its own label, optional expiry date, optional redirect URL, and usage counter. Revoke a single link without affecting others. Optionally receive an email notification each time a specific link is used.<\/p><\/dd>\n<dt id=\"can%20i%20send%20each%20magic%20link%20visitor%20to%20a%20different%20page%3F\"><h3>Can I send each magic link visitor to a different page?<\/h3><\/dt>\n<dd><p>Yes. Set a Redirect URL when creating a magic link. Visitors are sent to that page after the bypass cookie is set. Leave it blank to redirect to the homepage. Useful for directing clients to the exact page you want them to review.<\/p><\/dd>\n<dt id=\"can%20clients%20leave%20feedback%20on%20the%20page%20they%27re%20reviewing%3F\"><h3>Can clients leave feedback on the page they're reviewing?<\/h3><\/dt>\n<dd><p>Yes. Enable the Visitor Feedback widget and anyone viewing the coming soon page \u2014 or a client browsing the live site via a magic link \u2014 can leave a message without an account. You can reply from the Feedback tab, and the visitor sees your reply automatically. You'll optionally get an email the moment new feedback comes in.<\/p><\/dd>\n<dt id=\"can%20a%20client%20point%20at%20exactly%20what%20they%20want%20changed%20on%20the%20live%20site%3F\"><h3>Can a client point at exactly what they want changed on the live site?<\/h3><\/dt>\n<dd><p>Yes, with Visual Annotation Mode. Magic-link visitors can click any element on the live site and pin a note directly on it \u2014 like a built-in design-review tool. As the admin, you see a persistent numbered pin for every note whenever you visit that page, click it to read the note, and reply directly.<\/p><\/dd>\n<dt id=\"how%20is%20this%20different%20from%20just%20sharing%20a%20staging%20link%20or%20a%20password%3F\"><h3>How is this different from just sharing a staging link or a password?<\/h3><\/dt>\n<dd><p>A staging URL or shared password gives everyone the same level of access and tells you nothing about who's actually looking. Magic links are per-person, expire on your terms, and can be revoked individually. On top of that, the visitor can leave feedback or pin an annotation directly on what they're reviewing \u2014 something a plain staging link or password screen can't do.<\/p><\/dd>\n<dt id=\"will%20administrators%20be%20blocked%20from%20their%20own%20site%3F\"><h3>Will administrators be blocked from their own site?<\/h3><\/dt>\n<dd><p>No. Logged-in administrators always see the live site by default. You can turn this off and use the built-in Preview button to verify the page safely \u2014 the preview opens with HTTP 200 and is only visible to logged-in admins.<\/p><\/dd>\n<dt id=\"will%20a%20coming%20soon%20or%20under%20construction%20page%20hurt%20my%20seo%3F\"><h3>Will a coming soon or under construction page hurt my SEO?<\/h3><\/dt>\n<dd><p>No, as long as you use the right mode. In Maintenance Mode, the page returns HTTP 503 with a <code>Retry-After<\/code> header calculated from your countdown timer \u2014 the correct and recommended signal for search engine crawlers, indicating a temporary outage so Google returns later instead of treating it as a permanent removal.<\/p>\n\n<p>In Coming Soon Mode, the page returns HTTP 200, so search engines can index it normally and start building domain authority before launch.<\/p><\/dd>\n<dt id=\"what%20if%20i%20get%20locked%20out%20while%20the%20site%20is%20gated%3F\"><h3>What if I get locked out while the site is gated?<\/h3><\/dt>\n<dd><p>The Emergency Rescue URL in settings is a secret link you save in your password manager. Visiting it from any browser disables the coming soon \/ under construction page instantly \u2014 no login required. If you lose the URL, regenerate it from within settings.<\/p><\/dd>\n<dt id=\"can%20i%20collect%20email%20addresses%20while%20the%20site%20is%20under%20construction%3F\"><h3>Can I collect email addresses while the site is under construction?<\/h3><\/dt>\n<dd><p>Yes. Enable the subscription form under Email Subscription settings and set the mode to Coming Soon. Subscribers are saved directly to WordPress \u2014 no Mailchimp, no API keys needed. View and export the list from the settings panel.<\/p><\/dd>\n<dt id=\"can%20i%20schedule%20maintenance%20or%20under%20construction%20mode%20in%20advance%3F\"><h3>Can I schedule maintenance or under construction mode in advance?<\/h3><\/dt>\n<dd><p>Yes, two ways. Set a one-time start and end date\/time under Scheduled Maintenance for a single window (e.g. a weekend migration), or set up a recurring weekly schedule (e.g. every night between 2 AM and 4 AM) under Recurring Schedule. WordPress cron activates and deactivates the page automatically; the manual toggle always takes priority, and a real-time fallback checks the window on every request if cron fails.<\/p><\/dd>\n<dt id=\"can%20i%20keep%20some%20pages%20publicly%20visible%20while%20the%20rest%20of%20the%20site%20is%20gated%3F\"><h3>Can I keep some pages publicly visible while the rest of the site is gated?<\/h3><\/dt>\n<dd><p>Yes. Use Page &amp; Post Type Exclusions to list specific URL paths or entire post types (for example a public portfolio or a privacy policy page) that stay accessible to everyone, even while the coming soon \/ maintenance page is active for the rest of the site.<\/p><\/dd>\n<dt id=\"can%20i%20remove%20%22erdo%20client%20preview%22%20branding%20and%20use%20my%20own%20agency%20name%3F\"><h3>Can I remove \"Erdo Client Preview\" branding and use my own agency name?<\/h3><\/dt>\n<dd><p>Yes. The White Label setting lets you replace \"Erdo Client Preview\" with your own agency name and logo throughout the settings page and admin menu \u2014 useful if you manage the site on behalf of a client.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20elementor%2C%20divi%2C%20or%20other%20page%20builders%3F\"><h3>Does this work with Elementor, Divi, or other page builders?<\/h3><\/dt>\n<dd><p>Yes. The coming soon \/ maintenance page is standalone and loads none of your theme's page builder scripts. Magic link visitors see the full live site, including all page builder content.<\/p><\/dd>\n<dt id=\"does%20this%20work%20on%20wordpress%20multisite%3F\"><h3>Does this work on WordPress Multisite?<\/h3><\/dt>\n<dd><p>The plugin is designed and tested for single-site installations. Multisite compatibility has not been verified.<\/p><\/dd>\n<dt id=\"what%20data%20does%20this%20plugin%20store%2C%20and%20is%20it%20removed%20on%20uninstall%3F\"><h3>What data does this plugin store, and is it removed on uninstall?<\/h3><\/dt>\n<dd><p>Erdo Client Preview stores magic link tokens (hashed, never raw), settings, email subscribers, visitor feedback, and annotations in your WordPress database \u2014 nothing is sent to a third-party server. Uninstalling the plugin through the WordPress admin removes all of its database tables and options automatically.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Changed: Renamed from \"Erdo DevGate\" to \"Erdo Client Preview\" (slug: erdo-client-preview)<\/li>\n<li>Removed: Custom CSS field \u2014 WordPress.org no longer permits plugins to accept arbitrary user-supplied CSS<\/li>\n<li>Changed: Maintenance page styles and the countdown script are now loaded via <code>wp_enqueue_style()<\/code>\/<code>wp_enqueue_script()<\/code> instead of inline <code>&lt;style&gt;<\/code>\/<code>&lt;script&gt;<\/code> tags<\/li>\n<li>Security: Annotation status lookups now require the same magic-link\/admin access check as submitting and listing annotations<\/li>\n<li>Security: Feedback status lookups now require a per-item token instead of a bare, guessable id, preventing enumeration of other visitors' feedback and admin replies<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Added: Visitor feedback widget on the coming soon \/ maintenance page \u2014 visitors can leave a message without an account<\/li>\n<li>Added: Feedback widget on the live site for magic-link visitors, so clients and reviewers can leave feedback while previewing<\/li>\n<li>Added: \"Past Feedback\" \u2014 visitors see their own previously submitted messages and status updates (in progress \/ completed)<\/li>\n<li>Added: \"Feedback\" tab in settings to review, reply to, mark as completed, and delete submitted feedback<\/li>\n<li>Added: Admin replies to feedback are shown to the visitor under \"Past Feedback\"<\/li>\n<li>Added: Magic link access history \u2014 see when each link was last used, and from which IP<\/li>\n<li>Added: Email notification to the site admin when new feedback is submitted<\/li>\n<li>Added: Enable\/disable toggle for the feedback widget<\/li>\n<li>Added: Visual annotation mode on the live site \u2014 magic-link visitors can click any element on a page and pin a note directly on it<\/li>\n<li>Added: \"Annotations\" tab in settings to review, reply to, mark as completed, and delete submitted notes<\/li>\n<li>Added: Admin replies to annotations are shown to the visitor in the pin's details popup<\/li>\n<li>Added: Email notification to the site admin when a new annotation is submitted<\/li>\n<li>Added: Enable\/disable toggle for visual annotations<\/li>\n<li>Added: Administrators automatically see a persistent numbered pin for every note left on any page (just like the reviewer who left it); click any pin to see its details<\/li>\n<li>Added: \"View Notes on Site\" button in the Annotations tab opens the live site so admins can browse the pin overlay<\/li>\n<li>Added: Bulk actions in the Feedback and Annotations tabs \u2014 select multiple entries to delete, mark as completed, or mark as in progress at once<\/li>\n<li>Changed: Plugin settings moved from Settings \u2192 Erdo Client Preview to a dedicated \"Client Preview\" item in the WordPress admin menu<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added: Scheduled maintenance \u2014 set a date range and WordPress cron handles activation and deactivation automatically; real-time fallback if cron fails<\/li>\n<li>Added: Coming Soon mode (HTTP 200) alongside Maintenance mode (HTTP 503) \u2014 switchable from settings<\/li>\n<li>Added: Email subscription form for Coming Soon mode \u2014 subscribers stored in WordPress, no third-party service needed<\/li>\n<li>Added: Subscriber list in settings panel<\/li>\n<li>Added: Email notification when a magic link is used (visitor IP, timestamp, view count)<\/li>\n<li>Added: Per-link redirect URL \u2014 each magic link can send the visitor to a different page<\/li>\n<li>Added: Custom CSS field for advanced maintenance page styling<\/li>\n<li>Added: Full-screen background image with automatic dark overlay<\/li>\n<li>Added: Social links on coming soon \/ maintenance page (X\/Twitter, Instagram, Facebook, LinkedIn, YouTube)<\/li>\n<li>Added: Emergency rescue URL \u2014 disables maintenance instantly from any browser if locked out<\/li>\n<li>Added: Preview maintenance page button \u2014 see visitor view without disabling maintenance<\/li>\n<li>Added: Admin bar one-click toggle and status indicator<\/li>\n<li>Fixed: Countdown timer now respects site timezone correctly<\/li>\n<li>Fixed: Timezone handling uses WordPress timezone throughout<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release \u2014 coming soon \/ maintenance page with cryptographic magic link bypass, IP whitelist, admin bypass, HTTP 503\/200 modes, countdown timer, and emergency rescue URL.<\/li>\n<\/ul>","raw_excerpt":"More than a coming soon page \u2014 give clients a private magic link to preview the live site, then collect feedback and on-page annotations.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/329430","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=329430"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/erdincbulat"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=329430"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=329430"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=329430"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=329430"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=329430"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=329430"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}