Automattic\WooCommerce\Internal\ComingSoon
ComingSoonRequestHandler::should_show_coming_soon
Determines whether the coming soon screen should be shown.
Method of the class: ComingSoonRequestHandler{}
Hooks from the method
Returns
true|false.
Usage
// private - for code of main (parent) class only $result = $this->should_show_coming_soon();
ComingSoonRequestHandler::should_show_coming_soon() ComingSoonRequestHandler::should show coming soon code WC 10.3.3
private function should_show_coming_soon() {
// Early exit if already determined that the coming soon screen should be shown.
if ( self::$show_coming_soon ) {
return true;
}
// Early exit if LYS feature is disabled.
if ( ! Features::is_enabled( 'launch-your-store' ) ) {
return false;
}
// Early exit if the user is logged in as administrator / shop manager.
if ( current_user_can( 'manage_woocommerce' ) ) {
return false;
}
// Do not show coming soon on 404 pages when applied to store pages only.
if ( $this->coming_soon_helper->is_store_coming_soon() && is_404() ) {
return false;
}
// Early exit if the current page doesn't need a coming soon screen.
if ( ! $this->coming_soon_helper->is_current_page_coming_soon() ) {
return false;
}
/**
* Check if there is an exclusion.
*
* @since 9.1.0
*
* @param bool $is_excluded If the request should be excluded from Coming soon mode. Defaults to false.
*/
if ( apply_filters( 'woocommerce_coming_soon_exclude', false ) ) {
return false;
}
// Check if the private link option is enabled.
if ( get_option( 'woocommerce_private_link' ) === 'yes' ) {
// Exclude users with a private link.
if ( isset( $_GET['woo-share'] ) && get_option( 'woocommerce_share_key' ) === $_GET['woo-share'] ) { //phpcs:ignore WordPress.Security.NonceVerification.Recommended
// Persist the share link with a cookie for 90 days.
setcookie( 'woo-share', sanitize_text_field( wp_unslash( $_GET['woo-share'] ) ), time() + 60 * 60 * 24 * 90, '/' ); //phpcs:ignore WordPress.Security.NonceVerification.Recommended
return false;
}
if ( isset( $_COOKIE['woo-share'] ) && get_option( 'woocommerce_share_key' ) === $_COOKIE['woo-share'] ) {
return false;
}
}
self::$show_coming_soon = true;
return true;
}