{"id":291214,"date":"2026-03-23T13:33:52","date_gmt":"2026-03-23T13:33:52","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/content-expiry-shortcode\/"},"modified":"2026-03-24T16:01:46","modified_gmt":"2026-03-24T16:01:46","slug":"lukacodes-content-expiry-shortcode","status":"publish","type":"plugin","link":"https:\/\/mg.wordpress.org\/plugins\/lukacodes-content-expiry-shortcode\/","author":8696714,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.1.1","stable_tag":"1.1.1","tested":"6.9.4","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"LukaCodes Content Expiry Shortcode","header_author":"LukaCodes","header_description":"Automatically hide any post or page content after a set date and time using a simple shortcode. Ideal for limited-time offers, event announcements, and any content that should disappear after a deadline \u2014 no manual editing required.","assets_banners_color":"1d2327","last_updated":"2026-03-24 16:01:46","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/lukacodes.com\/plugins\/content-expiry-shortcode\/","header_author_uri":"https:\/\/lukacodes.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":98,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"Luka2013","date":"2026-03-23 13:31:59"},"1.1.0":{"tag":"1.1.0","author":"Luka2013","date":"2026-03-24 05:39:13"},"1.1.1":{"tag":"1.1.1","author":"Luka2013","date":"2026-03-24 16:01:46"}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3489056,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3489056,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3489056,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3489056,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0","1.1.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3489056,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3489056,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3489056,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3489056,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3489056,"resolution":"5","location":"assets","locale":""}},"screenshots":{"1":"Using the <code>[lcexp]<\/code> shortcode inside the WordPress editor.","2":"Example of content shown normally before the expiry date.","3":"Example of the expiry message displayed after the selected date and time."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[19851,56514,19854,20954,80],"plugin_category":[43],"plugin_contributors":[257567],"plugin_business_model":[],"class_list":["post-291214","plugin","type-plugin","status-publish","hentry","plugin_tags-content-expiration","plugin_tags-content-expiry","plugin_tags-expire-content","plugin_tags-scheduled-content","plugin_tags-shortcode","plugin_category-customization","plugin_contributors-luka2013","plugin_committers-luka2013"],"banners":{"banner":"https:\/\/ps.w.org\/lukacodes-content-expiry-shortcode\/assets\/banner-772x250.png?rev=3489056","banner_2x":"https:\/\/ps.w.org\/lukacodes-content-expiry-shortcode\/assets\/banner-1544x500.png?rev=3489056","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/lukacodes-content-expiry-shortcode\/assets\/icon-128x128.png?rev=3489056","icon_2x":"https:\/\/ps.w.org\/lukacodes-content-expiry-shortcode\/assets\/icon-256x256.png?rev=3489056","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/lukacodes-content-expiry-shortcode\/assets\/screenshot-1.png?rev=3489056","caption":"Using the <code>[lcexp]<\/code> shortcode inside the WordPress editor."},{"src":"https:\/\/ps.w.org\/lukacodes-content-expiry-shortcode\/assets\/screenshot-2.png?rev=3489056","caption":"Example of content shown normally before the expiry date."},{"src":"https:\/\/ps.w.org\/lukacodes-content-expiry-shortcode\/assets\/screenshot-3.png?rev=3489056","caption":"Example of the expiry message displayed after the selected date and time."},{"src":"https:\/\/ps.w.org\/lukacodes-content-expiry-shortcode\/assets\/screenshot-4.png?rev=3489056","caption":""},{"src":"https:\/\/ps.w.org\/lukacodes-content-expiry-shortcode\/assets\/screenshot-5.png?rev=3489056","caption":""}],"raw_content":"<!--section=description-->\n<p>We created LukaCodes Content Expiry Shortcode for cases where we want to publish content for a limited period and let it expire automatically without having to come back and edit the page later.<\/p>\n\n<p>With the <code>[lcexp]<\/code> shortcode, we can wrap any temporary content inside a date-based rule. Until the selected date and time, the content is shown normally. Once that time passes, the plugin replaces it with a clear expiry message.<\/p>\n\n<p>This makes the plugin useful for many everyday WordPress tasks, such as:<\/p>\n\n<ul>\n<li>limited-time offers<\/li>\n<li>temporary announcements<\/li>\n<li>event notices<\/li>\n<li>holiday messages<\/li>\n<li>launch updates<\/li>\n<li>short-term promotional text<\/li>\n<\/ul>\n\n<p>Instead of removing content manually after a campaign or announcement ends, we can set the expiry date in advance and let the plugin handle it for us.<\/p>\n\n<p><strong>How we use it<\/strong><\/p>\n\n<p>We place the shortcode around the content we want to display temporarily:<\/p>\n\n<pre><code>[lcexp \"30-06-2026 23:59\"]This content will stay visible until the selected date and time.[\/lcexp]\n<\/code><\/pre>\n\n<p>Before the selected date and time:\nthe content inside the shortcode is displayed normally.<\/p>\n\n<p>After the selected date and time:\nthe content is replaced automatically with the message:<\/p>\n\n<pre><code>This content is no longer available.\n<\/code><\/pre>\n\n<p><strong>Accepted date formats<\/strong><\/p>\n\n<p>We can use the shortcode with the following formats:<\/p>\n\n<ul>\n<li><code>DD-MM-YYYY HH:MM<\/code><\/li>\n<li><code>DD-MM-YYYY<\/code><\/li>\n<\/ul>\n\n<p>We also support slash-separated dates such as:<\/p>\n\n<ul>\n<li><code>DD\/MM\/YYYY HH:MM<\/code><\/li>\n<li><code>DD\/MM\/YYYY<\/code><\/li>\n<\/ul>\n\n<p><strong>Examples<\/strong><\/p>\n\n<pre><code>[lcexp \"30-06-2026 23:59\"]This offer ends tonight.[\/lcexp]\n\n[lcexp \"25-12-2026\"]Holiday message[\/lcexp]\n\n[lcexp \"18:30 15-08-2026\"]Event reminder[\/lcexp]\n<\/code><\/pre>\n\n<p><strong>What we wanted to keep simple<\/strong><\/p>\n\n<p>We designed this plugin to stay lightweight and practical. We did not want to add unnecessary setup screens for something that can be handled directly inside the editor with a shortcode.<\/p>\n\n<p><strong>Features<\/strong><\/p>\n\n<ul>\n<li>simple shortcode-based usage<\/li>\n<li>automatic content expiry by date and time<\/li>\n<li>works in posts and pages<\/li>\n<li>works in WooCommerce product descriptions and short descriptions<\/li>\n<li>supports nested shortcode content through normal shortcode rendering<\/li>\n<li>uses the WordPress site timezone<\/li>\n<li>lightweight and easy to use<\/li>\n<li>multilingual-ready<\/li>\n<\/ul>\n\n<p><strong>Premium<\/strong><\/p>\n\n<p>We also offer a Premium version at:<\/p>\n\n<p>https:\/\/lukacodes.com\/plugins\/content-expiry-shortcode\/<\/p>\n\n<p>In the Premium version, we expand the experience with additional tools such as a visual Gutenberg workflow and faster content insertion options.<\/p>\n\n<h3>Third-Party Service<\/h3>\n\n<p>This plugin integrates with Freemius for optional telemetry, upgrade handling, and the deactivation feedback form.<\/p>\n\n<p>Freemius is only connected after the site owner explicitly opts in. If the opt-in is declined, no telemetry is sent.<\/p>\n\n<p>Service provider: Freemius\nWebsite: https:\/\/freemius.com\nTerms of service: https:\/\/freemius.com\/terms\/\nPrivacy policy: https:\/\/freemius.com\/privacy\/<\/p>\n\n<p>When a site owner opts in, Freemius may collect basic diagnostic and site data such as the website URL, WordPress version, plugin version, PHP version, language, and activation\/deactivation events. If the site owner submits the deactivation form, the selected reason and optional feedback are also sent.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>lukacodes-content-expiry-shortcode<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install the plugin through the WordPress Plugins screen.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Open any post or page where you want to show temporary content.<\/li>\n<li>Add the shortcode with your preferred expiry date and time.<\/li>\n<\/ol>\n\n<p>Example:<\/p>\n\n<pre><code>[lcexp \"30-06-2026 23:59\"]Your content here[\/lcexp]\n<\/code><\/pre>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20does%20the%20shortcode%20work%3F\"><h3>How does the shortcode work?<\/h3><\/dt>\n<dd><p>We place the content we want to show temporarily between the opening and closing shortcode tags.<\/p>\n\n<p>Example:<\/p>\n\n<pre><code>[lcexp \"30-06-2026 23:59\"]This content will expire automatically.[\/lcexp]\n<\/code><\/pre>\n\n<p>The date inside the shortcode tells the plugin when that content should stop being displayed.<\/p><\/dd>\n<dt id=\"what%20happens%20after%20the%20expiry%20date%3F\"><h3>What happens after the expiry date?<\/h3><\/dt>\n<dd><p>After the selected date and time passes, the plugin replaces the content with the message:<\/p>\n\n<pre><code>This content is no longer available.\n<\/code><\/pre><\/dd>\n<dt id=\"what%20date%20format%20should%20we%20use%3F\"><h3>What date format should we use?<\/h3><\/dt>\n<dd><p>We recommend using:<\/p>\n\n<pre><code>DD-MM-YYYY HH:MM\n<\/code><\/pre>\n\n<p>Example:<\/p>\n\n<pre><code>[lcexp \"30-06-2026 23:59\"]Temporary content[\/lcexp]\n<\/code><\/pre>\n\n<p>We also support date-only format:<\/p>\n\n<pre><code>DD-MM-YYYY\n<\/code><\/pre>\n\n<p>and slash-separated dates such as:<\/p>\n\n<pre><code>DD\/MM\/YYYY HH:MM\n<\/code><\/pre><\/dd>\n<dt id=\"which%20timezone%20does%20the%20plugin%20use%3F\"><h3>Which timezone does the plugin use?<\/h3><\/dt>\n<dd><p>We use your WordPress site timezone.<\/p>\n\n<p>You can check or change it from:<\/p>\n\n<p><strong>Settings &gt; General &gt; Timezone<\/strong><\/p><\/dd>\n<dt id=\"does%20it%20work%20in%20the%20classic%20editor%20and%20gutenberg%3F\"><h3>Does it work in the Classic Editor and Gutenberg?<\/h3><\/dt>\n<dd><p>Yes. We can use the shortcode in both the Classic Editor and the Block Editor.<\/p><\/dd>\n<dt id=\"can%20we%20use%20more%20than%20one%20shortcode%20on%20the%20same%20page%3F\"><h3>Can we use more than one shortcode on the same page?<\/h3><\/dt>\n<dd><p>Yes. We can use multiple <code>[lcexp]<\/code> shortcodes on the same page with different dates and different content.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20hide%20the%20content%20completely%3F\"><h3>Does the plugin hide the content completely?<\/h3><\/dt>\n<dd><p>After expiry, the original content is no longer shown. In its place, the plugin displays a clear expiry message so visitors do not see an empty gap.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20any%20wordpress%20theme%3F\"><h3>Does it work with any WordPress theme?<\/h3><\/dt>\n<dd><p>Yes. We built it to work independently of the active theme.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Added Freemius integration for optional opt-in analytics and deactivation feedback.<\/li>\n<li>Updated the Premium purchase link to the main plugin page.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added WooCommerce integration: the <code>[lcexp]<\/code> shortcode now works inside product descriptions and short descriptions.<\/li>\n<li>Added WooCommerce REST API support: shortcode content is correctly evaluated when product data is fetched via the REST API.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Added the <code>[lcexp]<\/code> shortcode for expiring temporary content by date and time.<\/li>\n<li>Added support for <code>DD-MM-YYYY HH:MM<\/code> and <code>DD-MM-YYYY<\/code> formats.<\/li>\n<li>Added multilingual-ready text strings.<\/li>\n<\/ul>","raw_excerpt":"We help you show temporary WordPress content until a chosen date and time with the simple [lcexp] shortcode.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/291214","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=291214"}],"author":[{"embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/luka2013"}],"wp:attachment":[{"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=291214"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=291214"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=291214"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=291214"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=291214"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=291214"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}