enable_coming_soon_mode ) ) { $page_id = get_option( 'seedprod_coming_soon_page_id' ); } elseif ( ! empty( $seedprod_settings->enable_maintenance_mode ) ) { $page_id = get_option( 'seedprod_maintenance_mode_page_id' ); } if ( empty( $page_id ) ) { wp_die( 'Your Coming Soon or Maintenance page needs to be setup.' ); } // Get Page global $wpdb; $tablename = $wpdb->prefix . 'posts'; $sql = "SELECT * FROM $tablename WHERE id= %d"; $safe_sql = $wpdb->prepare( $sql, absint( $page_id ) ); $page = $wpdb->get_row( $safe_sql ); $settings = json_decode( $page->post_content_filtered ); // redirect mode $enable_redirect_mode = false; $redirect_url = $settings->redirect_url; if ( ! empty( $settings->redirect_mode ) ) { $enable_redirect_mode = true; } if ( empty( $redirect_url ) ) { $enable_redirect_mode = false; } // Exit if a custom login page if ( ! empty( $settings->disable_default_excluded_urls ) ) { if ( preg_match( '/privacy|imprint|login|admin|dashboard|account/i', $_SERVER['REQUEST_URI'] ) > 0 ) { return false; } } //Exit if wysija double opt-in if ( isset( $emaillist ) && $emaillist == 'wysija' && preg_match( '/wysija/i', $_SERVER['REQUEST_URI'] ) > 0 ) { return false; } if ( isset( $emaillist ) && $emaillist == 'mailpoet' && preg_match( '/mailpoet/i', $_SERVER['REQUEST_URI'] ) > 0 ) { return false; } if ( isset( $emaillist ) && $emaillist == 'mymail' && preg_match( '/confirm/i', $_SERVER['REQUEST_URI'] ) > 0 ) { return false; } //Limit access by role if ( ! empty( $settings->access_by_role ) && ! isset( $_COOKIE['wp-seedprod-bypass'] ) ) { foreach ( $settings->access_by_role as $v ) { $v = str_replace( ' ', '', strtolower( $v ) ); if ( $v == 'anyoneloggedin' && is_user_logged_in() ) { return false; } if ( current_user_can( $v ) ) { return false; } } } elseif ( is_user_logged_in() ) { return false; } // Finally check if we should show the coming soon page. // do not cache this page if ( ! defined( 'DONOTCACHEPAGE' ) ) { define( 'DONOTCACHEPAGE', true ); } if ( ! defined( 'DONOTCDN' ) ) { define( 'DONOTCDN', true ); } if ( ! defined( 'DONOTCACHEDB' ) ) { define( 'DONOTCACHEDB', true ); } if ( ! defined( 'DONOTMINIFY' ) ) { define( 'DONOTMINIFY', true ); } if ( ! defined( 'DONOTCACHEOBJECT' ) ) { define( 'DONOTCACHEOBJECT', true ); } nocache_headers(); // set headers if ( ! empty( $seedprod_settings->enable_maintenance_mode ) ) { if ( empty( $settings ) ) { echo __( 'Please create your Maintenance Page in the plugin settings.', 'seedprod-coming-soon-pro' ); exit(); } header( 'HTTP/1.1 503 Service Temporarily Unavailable' ); header( 'Status: 503 Service Temporarily Unavailable' ); header( 'Retry-After: 86400' ); // retry in a day } elseif ( ! empty( $enable_redirect_mode ) ) { if ( ! empty( $redirect_url ) ) { wp_redirect( $redirect_url ); exit; } else { echo __( 'Please create enter your redirect url in the plugin settings.', 'seedprod-coming-soon-pro' ); exit(); } } else { if ( empty( $settings ) ) { echo __( 'Please create your Coming Soon Page in the plugin settings.', 'seedprod-coming-soon-pro' ); exit(); } header( 'HTTP/1.1 200 OK' ); } if ( is_feed() ) { header( 'Content-Type: text/html; charset=UTF-8' ); } // keep for backwards compatability $upload_dir = wp_upload_dir(); if ( is_multisite() ) { $path = $upload_dir['baseurl'] . '/seedprod/' . get_current_blog_id() . '/template-' . $page_id . '/index.php'; } else { $path = $upload_dir['basedir'] . '/seedprod/template-' . $page_id . '/index.php'; } if ( ! empty( $page->html ) && 1 == 0 ) { echo $page->html; } else { if ( file_exists( $path ) ) { require_once $path; } else { require_once SEEDPROD_PLUGIN_PATH . 'resources/views/seedprod-preview.php'; } } exit(); } }