{"id":146854,"date":"2021-09-07T09:11:34","date_gmt":"2021-09-07T09:11:34","guid":{"rendered":"https:\/\/de.wordpress.org\/plugins\/holiday-mode-for-woocommerce\/"},"modified":"2026-08-26T17:14:41","modified_gmt":"2026-08-26T17:14:41","slug":"holiday-mode-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/el.wordpress.org\/plugins\/holiday-mode-for-woocommerce\/","author":15085268,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.7.0","stable_tag":"2.7.0","tested":"7.2","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"Holiday Mode for WooCommerce","header_author":"Heinrich Franz","header_description":"Set your WooCommerce shop to holiday mode with date range.","assets_banners_color":"def1f8","last_updated":"2026-08-26 17:14:41","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/sevmatic.com\/","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/holiday-mode-for-woocommerce\/","header_author_uri":"https:\/\/sevmatic\/?source=wordpress","rating":4.6,"author_block_rating":0,"active_installs":700,"downloads":9052,"num_ratings":5,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.0":{"tag":"1.1.0","author":"hfranz","date":"2021-09-07 09:40:39"},"1.2.0":{"tag":"1.2.0","author":"hfranz","date":"2021-09-07 10:09:39"},"1.3.0":{"tag":"1.3.0","author":"hfranz","date":"2021-09-07 12:19:38"},"1.4.0":{"tag":"1.4.0","author":"hfranz","date":"2021-09-08 10:00:11"},"1.5.0":{"tag":"1.5.0","author":"hfranz","date":"2021-09-13 13:12:39"},"1.6.0":{"tag":"1.6.0","author":"hfranz","date":"2021-09-13 13:34:20"},"1.7.0":{"tag":"1.7.0","author":"hfranz","date":"2021-09-13 16:22:36"},"1.7.1":{"tag":"1.7.1","author":"hfranz","date":"2023-08-29 12:21:40"},"1.8.0":{"tag":"1.8.0","author":"hfranz","date":"2026-07-09 22:04:50"},"1.8.1":{"tag":"1.8.1","author":"hfranz","date":"2026-07-09 22:21:35"},"1.8.2":{"tag":"1.8.2","author":"hfranz","date":"2026-07-09 23:35:04"},"1.8.3":{"tag":"1.8.3","author":"hfranz","date":"2026-07-10 00:19:30"},"1.9.0":{"tag":"1.9.0","author":"hfranz","date":"2026-07-10 12:28:27"},"1.9.1":{"tag":"1.9.1","author":"hfranz","date":"2026-07-10 13:00:31"},"1.9.2":{"tag":"1.9.2","author":"hfranz","date":"2026-07-10 14:22:37"},"1.9.3":{"tag":"1.9.3","author":"hfranz","date":"2026-07-10 14:46:16"},"2.0.0":{"tag":"2.0.0","author":"hfranz","date":"2026-07-10 15:19:03"},"2.1.0":{"tag":"2.1.0","author":"hfranz","date":"2026-07-10 15:33:48"},"2.2.0":{"tag":"2.2.0","author":"hfranz","date":"2026-07-10 18:45:45"},"2.3.0":{"tag":"2.3.0","author":"hfranz","date":"2026-07-11 20:30:15"},"2.4.0":{"tag":"2.4.0","author":"hfranz","date":"2026-07-13 08:10:12"},"2.5.0":{"tag":"2.5.0","author":"hfranz","date":"2026-07-24 08:17:01"},"2.6.0":{"tag":"2.6.0","author":"hfranz","date":"2026-08-26 14:26:07"},"2.7.0":{"tag":"2.7.0","author":"hfranz","date":"2026-08-26 17:14:41"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":1,"4":0,"5":4},"assets_icons":{"icon.svg":{"filename":"icon.svg","revision":3604326,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500-de.png":{"filename":"banner-1544x500-de.png","revision":3667250,"resolution":"1544x500","location":"assets","locale":"de","width":1544,"height":500},"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3667250,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250-de.png":{"filename":"banner-772x250-de.png","revision":3667250,"resolution":"772x250","location":"assets","locale":"de","width":772,"height":250},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3667250,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3667524,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"siteOptions\":{\"blogname\":\"Holiday Mode for WooCommerce Preview\",\"blogdescription\":\"Preview and test the Holiday Mode for WooCommerce plugin.\"},\"preferredVersions\":{\"php\":\"latest\",\"wp\":\"latest\"},\"landingPage\":\"\\\/wp-admin\\\/admin.php?page=wc-settings&tab=holiday_mode\",\"login\":true,\"plugins\":[\"woocommerce\",\"holiday-mode-for-woocommerce\"],\"steps\":[{\"step\":\"runPHP\",\"code\":\"<?php\\nrequire_once '\\\/wordpress\\\/wp-load.php';\\ndelete_transient( '_wc_activation_redirect' );\\n\\\/\\\/ WooCommerce-Grundeinstellungen\\nupdate_option('woocommerce_default_country', 'DE:DE-BW');\\nupdate_option('woocommerce_currency', 'EUR');\\nupdate_option('woocommerce_calc_taxes', 'no');\\nupdate_option('woocommerce_allowed_countries', 'specific');\\nupdate_option('woocommerce_specific_allowed_countries', array('DE'));\\n\\n\\\/\\\/ WooCommerce-Onboarding als abgeschlossen markieren\\n$profile = get_option('woocommerce_onboarding_profile', array());\\n$profile['completed'] = true;\\n$profile['store_location'] = array(\\n    'country' => 'DE',\\n    'state'   => 'BW',\\n);\\nupdate_option('woocommerce_onboarding_profile', $profile);\\n\\nupdate_option('woocommerce_setup_completed', 'yes');\\nupdate_option('woocommerce_admin_install_timestamp', time());\\nupdate_option('woocommerce_task_list_hidden', 'yes');\\nupdate_option('woocommerce_task_list_complete', array(\\n    'setup_store' => true,\\n));\\n\\n\\\/\\\/ WooCommerce neu initialisieren\\nif ( function_exists('WC') ) {\\n    WC()->countries = new WC_Countries();\\n}\\n\"},{\"step\":\"runPHP\",\"code\":\"<?php\\nrequire_once '\\\/wordpress\\\/wp-load.php';\\n\\n\\\/\\\/ -------------------------------------------------\\n\\\/\\\/ Simple Product\\n\\\/\\\/ -------------------------------------------------\\n$simple = new WC_Product_Simple();\\n$simple->set_name('Simple Product');\\n$simple->set_status('publish');\\n$simple->set_regular_price('1');\\n$simple->save();\\n\\n\\\/\\\/ -------------------------------------------------\\n\\\/\\\/ Variable Product\\n\\\/\\\/ -------------------------------------------------\\n$attribute = new WC_Product_Attribute();\\n$attribute->set_id(0);\\n$attribute->set_name('Variation');\\n$attribute->set_options(array('A'));\\n$attribute->set_visible(true);\\n$attribute->set_variation(true);\\n\\n$variable = new WC_Product_Variable();\\n$variable->set_name('Variable Product');\\n$variable->set_status('publish');\\n$variable->set_attributes(array($attribute));\\n$variable_id = $variable->save();\\n\\n\\\/\\\/ Variante A\\n$variation = new WC_Product_Variation();\\n$variation->set_parent_id($variable_id);\\n$variation->set_attributes(array(\\n    'Variation' => 'A',\\n));\\n$variation->set_regular_price('1');\\n$variation->set_status('publish');\\n$variation->save();\\n\\n\\\/\\\/ Cache aktualisieren\\nWC_Product_Variable::sync($variable_id);\\nwc_delete_product_transients($variable_id);\\n\"},{\"step\":\"runPHP\",\"code\":\"<?php\\nrequire_once '\\\/wordpress\\\/wp-load.php';\\n\\nupdate_option('hmfw_holiday_message', 'Our shop is currently in holiday mode. Orders are temporarily disabled.');\\nupdate_option('hmfw_holiday_status', 'yes');\\nupdate_option('hmfw_holiday_startdate', '2026-01-01');\\nupdate_option('hmfw_holiday_enddate', '2099-01-01');\\n\"},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"holiday-mode-for-woocommerce\"},\"options\":{\"activate\":true}}]}"}},"all_blocks":[],"tagged_versions":["1.1.0","1.2.0","1.3.0","1.4.0","1.5.0","1.6.0","1.7.0","1.7.1","1.8.0","1.8.1","1.8.2","1.8.3","1.9.0","1.9.1","1.9.2","1.9.3","2.0.0","2.1.0","2.2.0","2.3.0","2.4.0","2.5.0","2.6.0","2.7.0"],"block_files":[],"assets_screenshots":{"screenshot-1-de.png":{"filename":"screenshot-1-de.png","revision":3667250,"resolution":"1","location":"assets","locale":"de","width":1089,"height":776},"screenshot-1.png":{"filename":"screenshot-1.png","revision":3667250,"resolution":"1","location":"assets","locale":"","width":1088,"height":791},"screenshot-2-de.png":{"filename":"screenshot-2-de.png","revision":3667250,"resolution":"2","location":"assets","locale":"de","width":1089,"height":840},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3667250,"resolution":"2","location":"assets","locale":"","width":1089,"height":845},"screenshot-3-de.png":{"filename":"screenshot-3-de.png","revision":3667250,"resolution":"3","location":"assets","locale":"de","width":1030,"height":830},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3667250,"resolution":"3","location":"assets","locale":"","width":1029,"height":833},"screenshot-4-de.png":{"filename":"screenshot-4-de.png","revision":3667250,"resolution":"4","location":"assets","locale":"de","width":816,"height":869},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3667250,"resolution":"4","location":"assets","locale":"","width":813,"height":871}},"screenshots":[]},"plugin_section":[],"plugin_tags":[416,6324,1253,1472,286],"plugin_category":[44,54],"plugin_contributors":[202978],"plugin_business_model":[],"class_list":["post-146854","plugin","type-plugin","status-publish","hentry","plugin_tags-calendar","plugin_tags-holiday","plugin_tags-settings","plugin_tags-vacation","plugin_tags-woocommerce","plugin_category-discussion-and-community","plugin_category-security-and-spam-protection","plugin_contributors-hfranz","plugin_committers-hfranz"],"banners":{"banner":"https:\/\/ps.w.org\/holiday-mode-for-woocommerce\/assets\/banner-772x250.png?rev=3667250","banner_2x":"https:\/\/ps.w.org\/holiday-mode-for-woocommerce\/assets\/banner-1544x500.png?rev=3667250","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/holiday-mode-for-woocommerce\/assets\/icon.svg?rev=3604326","icon":"https:\/\/ps.w.org\/holiday-mode-for-woocommerce\/assets\/icon.svg?rev=3604326","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/holiday-mode-for-woocommerce\/assets\/screenshot-1.png?rev=3667250","caption":""},{"src":"https:\/\/ps.w.org\/holiday-mode-for-woocommerce\/assets\/screenshot-2.png?rev=3667250","caption":""},{"src":"https:\/\/ps.w.org\/holiday-mode-for-woocommerce\/assets\/screenshot-3.png?rev=3667250","caption":""},{"src":"https:\/\/ps.w.org\/holiday-mode-for-woocommerce\/assets\/screenshot-4.png?rev=3667250","caption":""}],"raw_content":"<!--section=description-->\n<p>WooCommerce\u00ae Holiday Mode allows you to temporarily pause your online store during holidays, vacations, maintenance periods, or other planned breaks.<\/p>\n\n<p>Define a start and end date for your closed period and automatically enable or disable holiday mode. During this time, you can display a prominently visible custom absence message to inform your customers about your temporary closure, return date, or other important information.<\/p>\n\n<p>Features:<\/p>\n\n<ul>\n<li><strong>Disable new orders<\/strong> by removing the add-to-cart button and displaying a custom message<\/li>\n<li><strong>Disable the shopping cart<\/strong> (existing cart items will be removed when holiday mode is activated)<\/li>\n<li><strong>Disable checkout<\/strong> during the holiday period<\/li>\n<li><strong>Display a prominent custom absence message<\/strong> to inform customers about your temporary closure<\/li>\n<li><strong>Schedule holiday mode with a specific start and end date<\/strong><\/li>\n<li><strong>Automatically deactivate holiday mode when the vacation period ends<\/strong><\/li>\n<li><strong>Works with headless\/decoupled storefronts<\/strong> and the Cart &amp; Checkout blocks, via the WooCommerce Store API<\/li>\n<li><strong>Admin notice<\/strong> reminding you that Holiday Mode is currently active, shown throughout wp-admin<\/li>\n<\/ul>\n\n<p>WooCommerce\u00ae is a registered trademark of Automattic Inc.<\/p>\n\n<h3>Privacy Disclosure<\/h3>\n\n<p>This plugin does not collect, process, or store any personal data.<\/p>\n\n<!--section=installation-->\n<p>Follow these steps to install and configure the plugin:<\/p>\n\n<p>Upload the plugin folder to the \/wp-content\/plugins\/ directory\nActivate the plugin through the \"Plugins\" menu in WordPress\nGo to WooCommerce -&gt; Settings -&gt; Holiday Mode to configure your settings<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20a%20headless%2Fdecoupled%20storefront%20%28e.g.%20a%20custom%20app%20built%20on%20the%20woocommerce%20store%20api%29%3F\"><h3>Does this work with a headless\/decoupled storefront (e.g. a custom app built on the WooCommerce Store API)?<\/h3><\/dt>\n<dd><p>Yes. New orders are blocked the same way for headless storefronts as for a regular WordPress theme: products become non-purchasable and adding to cart or checking out is rejected while Holiday Mode is active. Your frontend can also ask the WooCommerce Store API directly whether Holiday Mode is active and what your absence message is, so it can be displayed even though it never renders any WordPress page. No setup is required for this - it is available as soon as the plugin is active, using your existing Holiday Mode settings.<\/p><\/dd>\n<dt id=\"%28for%20developers%29%20what%20does%20the%20store%20api%20extension%20data%20look%20like%3F\"><h3>(For developers) What does the Store API extension data look like?<\/h3><\/dt>\n<dd><p>Holiday Mode is included automatically in the Cart and Checkout endpoint responses (<code>\/wc\/store\/v1\/cart<\/code> and <code>\/wc\/store\/v1\/checkout<\/code>), under <code>extensions.holiday-mode-woocommerce<\/code>:<\/p>\n\n<pre><code>{\n  \"active\": true,\n  \"purchasing_disabled\": true,\n  \"message\": \"We are on vacation, back on 1 September.\",\n  \"notice_type\": \"error\"\n}\n<\/code><\/pre><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.7.0<\/h4>\n\n<ul>\n<li>New: Admin notice reminding you that Holiday Mode is currently active, shown throughout wp-admin so it's harder to forget your shop is closed.<\/li>\n<\/ul>\n\n<h4>2.6.0<\/h4>\n\n<ul>\n<li>New: Holiday Mode status and your absence message are now exposed through the WooCommerce Store API, so headless\/decoupled storefronts and the Cart &amp; Checkout blocks can display them.<\/li>\n<\/ul>\n\n<h4>2.5.0<\/h4>\n\n<ul>\n<li>Lower the minimum required PHP version to 8.0 to support websites still running PHP 8.0\u20138.3.<\/li>\n<li>New: Added the option to select the color and icon for the absence message.<\/li>\n<\/ul>\n\n<h4>2.4.0<\/h4>\n\n<ul>\n<li>New: Settings are now validated on save - Holiday Mode can no longer be activated with a missing\/invalid date range or an empty vacation message.<\/li>\n<li>New: \"Disable purchasing\" setting lets you choose whether Holiday Mode blocks purchases (removes add-to-cart) or only shows the holiday notice. Enabled by default.<\/li>\n<\/ul>\n\n<h4>2.3.0<\/h4>\n\n<ul>\n<li>Lower minimum required PHP version to 8.3 to allow installation on WordPress 6.7 and higher.<\/li>\n<\/ul>\n\n<h4>2.2.0<\/h4>\n\n<ul>\n<li>Fixed: Holiday notice could appear below the archive title\/result count instead of at the very top of the page on block themes (e.g. Twenty Twenty-Five) using WooCommerce's default block-based Shop template.<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Fixed: Holiday mode now also removes the \"Add to cart\" \/ \"Buy product\" button for external\/affiliate and grouped products.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Enhanced: Holiday mode now explicitly removes the \"Add to cart\" button for variable products.<\/li>\n<\/ul>\n\n<h4>1.9.3<\/h4>\n\n<ul>\n<li>Fixed: Plugin was incorrectly deactivated after upgrading from a previous active version.<\/li>\n<\/ul>\n\n<h4>1.9.2<\/h4>\n\n<ul>\n<li>Security: Added improved escaping for holiday notice messages to strengthen protection against XSS vulnerabilities.<\/li>\n<li>Maintenance: Refactored internal code and cleaned up various areas of the plugin.<\/li>\n<\/ul>\n\n<h4>1.9.1<\/h4>\n\n<ul>\n<li>Fixed: Holiday notice was not displayed on single product pages in some classic themes.<\/li>\n<li>Fixed: Holiday notice was missing on shop, archive, cart, and checkout pages in some block theme setups. The notice is now displayed correctly in these cases.<\/li>\n<\/ul>\n\n<h4>1.9.0<\/h4>\n\n<ul>\n<li>Improved compatibility with caching plugins.<\/li>\n<li>Replaced the start and end date text fields with date pickers to improve usability.<\/li>\n<\/ul>\n\n<h4>1.8.3<\/h4>\n\n<p>Minor translations update<\/p>\n\n<h4>1.8.2<\/h4>\n\n<p>Update plugins meta data<\/p>\n\n<h4>1.8.1<\/h4>\n\n<p>Update README.txt<\/p>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>Settings migrated from the Customizer to a dedicated page under WooCommerce -&gt; Settings -&gt; Holiday Mode<\/li>\n<li>Existing Customizer settings are migrated automatically on first admin page load<\/li>\n<li>WooCommerce HPOS (custom order tables) and Cart\/Checkout Blocks compatibility declared<\/li>\n<li>Security and reliability hardening (escaping, sanitization, timezone handling)<\/li>\n<\/ul>\n\n<h4>1.7.1<\/h4>\n\n<ul>\n<li>Compatibility for WordPress 5.9<\/li>\n<\/ul>\n\n<h4>1.7<\/h4>\n\n<ul>\n<li>Add additional message on product page to increase theme compatibility (if woocommerce_before_main_content is not used by active theme)<\/li>\n<li>Settings are only visible if WooCommerce is activated within WordPress<\/li>\n<li>HTML is now possible for customer message<\/li>\n<li>Only provide vacation feature if WooCommerce is available<\/li>\n<li>Lowest PHP version is now 7.3, because lower versions reached EOL<\/li>\n<\/ul>\n\n<h4>1.6<\/h4>\n\n<ul>\n<li>Fixed warning: Timezone is used correctly now<\/li>\n<\/ul>\n\n<h4>1.5<\/h4>\n\n<ul>\n<li>Add further translation<\/li>\n<\/ul>\n\n<h4>1.4<\/h4>\n\n<ul>\n<li>Fixed default translation language<\/li>\n<\/ul>\n\n<h4>1.3<\/h4>\n\n<ul>\n<li>Add german language<\/li>\n<\/ul>\n\n<h4>1.2<\/h4>\n\n<ul>\n<li>Fixed defined version, to allow updates<\/li>\n<\/ul>\n\n<h4>1.1<\/h4>\n\n<ul>\n<li>Fixed settings: names are now more unique<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>Initial version<\/li>\n<\/ul>","raw_excerpt":"Set your WooCommerce\u00ae shop to holiday mode. Schedule closures and keep customers informed automatically.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/146854","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=146854"}],"author":[{"embeddable":true,"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/hfranz"}],"wp:attachment":[{"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=146854"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=146854"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=146854"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=146854"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=146854"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/el.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=146854"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}