=== TW Link Expiration Manager ===
Contributors: technologywisdom
Tags: post expiration, expire post, auto draft, time-based post, link control
Tested up to: 6.9
Stable tag: 1.0.0
License: GPL-2.0+
License URI: https://opensource.org/licenses/GPL-2.0
Text Domain: tw-link-expiration-manager

Adds an **Expiration Time** for posts, pages, WooCommerce products and custom post types URLs.

== Description ==

**TW Link Expiration Manager** is a simple yet powerful plugin that lets you control how long your WordPress content remains publicly accessible.
Add an expiration date and time to any Posts, Pages, WooCommerce Products and Custom Post Types. Once the expiration time passes, the post will be automatically set to draft and will return a 404 page to visitors.
Perfect for limited-time offers, announcements, event content, or any posts that should only be live temporarily.

**Features:**

- Adds an "Expiration Time" field to both the post editor and Quick Edit panel
- Automatically sets posts to **draft** after expiration
- Expired posts show a 404 page instead of the content
- Works with **all public post types**
- No setup or configuration required. Just install and go

== Installation ==

1. Upload the plugin folder to `/wp-content/plugins/`, or install it via the WordPress admin panel.
2. Activate the plugin from the **Plugins** menu.
3. When editing a post, set an expiration date/time in the new **Link Expiration** box.
4. The plugin will handle the rest.

== Changelog ==

= 1.0.0 =
* Initial release
* Adds expiration functionality for all public post types
* Real-time expiration handling on page visit
* Includes comprehensive tutorial page with step-by-step guidance

== Frequently Asked Questions ==

= Does it support custom post types? =

Yes, the expiration feature is automatically added to all public post types, including custom ones.

= What happens when a post expires? =

Once the set expiration time has passed, the plugin will change the post's status to "draft" and show a 404 error page if someone tries to access it.

= Why is the expired post still published after the expiration time? =

The post only changes to "draft" when it's visited. If the post isn't visited after its expiration, it will remain published until accessed. This avoids performance issues from background checks.

= Does it run on cron or scheduled events? =

No, The expiration is handled in real time, ensuring expired posts are processed efficiently when accessed, without cron jobs.

= Does this work with page builders or custom themes? =

Yes. It works independently of your theme or builder, since it only manages post status and 404 behavior.

= Can visitors still view expired posts if they have the direct link? =

No, Once the expiration time passes and the post is visited (to trigger expiration), it’s set to draft. It will show a 404 for all non-logged-in users. Admins can still access it in the dashboard.

= Where can I view a tutorial? =  

You’ll find a full usage tutorial under **Settings → Tutorial (TW LEM)**, including a Video Tutorial

= Can I bulk edit or set expiration dates for multiple posts? =

Currently, expiration is set individually per post via the post editor. Bulk editing is not available yet.

= Can I change how the expiration is handled (like deleting the post instead)? =

Not yet. Future versions may offer customizable expiration actions like trashing, deleting, or redirecting.

= Can I configure the expiration behavior? =

Currently, there is no settings page. A future update may include options for default expiration times or behavior.

== Screenshots ==

1. Screenshot 1: Example of Link Expiration field displayed on a edit post.
2. Screenshot 2: Example of Link Expiration field displayed on a Quick edit post.
3. Screenshot 3: Plugin Tutorial page in the WordPress dashboard.

== License ==

This plugin is licensed under the GPL-2.0+ License. You can freely use, modify, and distribute it under the terms of this license. See the full license at: https://opensource.org/licenses/GPL-2.0