WooCommerce Holiday Mode

Sometimes, just like physical stores, your WooCommerce website needs to go on holiday! This snippet does the following on every WooCommerce page.

  • disable cart
  • disable checkout
  • display a custom message
// Trigger Holiday Mode
add_action ('init', 'kpry_woocommerce_holiday_mode');

// Disable Cart, Checkout, Add Cart
function kpry_woocommerce_holiday_mode() {
	remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
	remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
	remove_action( 'woocommerce_proceed_to_checkout', 'woocommerce_button_proceed_to_checkout', 20 );
	remove_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 );
	add_action( 'woocommerce_before_main_content', 'kpry_wc_shop_disabled', 5 );
	add_action( 'woocommerce_before_cart', 'kpry_wc_shop_disabled', 5 );
	add_action( 'woocommerce_before_checkout_form', 'kpry_wc_shop_disabled', 5 );
}

// Show Holiday Notice
function kpry_wc_shop_disabled() {
	wc_print_notice( 'Our Online Shop is Closed Today :)', 'error');
}