* @copyright 2018 Justin Tadlock * @license https://www.gnu.org/licenses/gpl-2.0.html GPL-2.0-or-later */ # Add actions to fail at certain points in the load process. add_action( 'after_switch_theme', 'bicycleshop_switch_theme' ); add_action( 'load-customize.php', 'bicycleshop_load_customize' ); add_action( 'template_redirect', 'bicycleshop_preview' ); /** * Returns the compatibility messaged based on whether the WP or PHP minimum * requirement wasn't met. * * @since 2.1.1 * @access public * @return string */ function bicycleshop_compat_message() { if ( version_compare( $GLOBALS['wp_version'], BICYCLESHOP_MIN_WP_VERSION, '<' ) ) { return sprintf( /* translators: %1$s: Theme name, %2$s: the required WordPress version, %3$s: user's current version */ __( '%1$s theme requires at least WordPress version %2$s. You are running version %3$s. Please upgrade and try again.', 'bicycleshop' ), BICYCLESHOP_OPTIONS_NAME_PART, BICYCLESHOP_MIN_WP_VERSION, $GLOBALS['wp_version'] ); } elseif ( version_compare( PHP_VERSION, BICYCLESHOP_MIN_PHP_VERSION, '<' ) ) { return sprintf( /* translators: %1$s: Theme name, %2$s: required PHP version, %3$s: current PHP version */ __( '%1$s theme requires at least PHP version %2$s. You are running version %3$s. Please upgrade and try again.', 'bicycleshop' ), BICYCLESHOP_OPTIONS_NAME_PART, BICYCLESHOP_MIN_PHP_VERSION, PHP_VERSION ); } return ''; } /** * Switches to the previously active theme after the theme has been activated. * * @since 2.1.0 * @access public * @param string $old_name Previous theme name/slug. * @return void */ function bicycleshop_switch_theme( $old_name ) { switch_theme( $old_name ? $old_name : WP_DEFAULT_THEME ); unset( $_GET['activated'] ); add_action( 'admin_notices', 'bicycleshop_upgrade_notice' ); } /** * Outputs an admin notice with the compatibility issue. * * @since 2.1.0 * @access public * @return void */ function bicycleshop_upgrade_notice() { printf( '

%s

', esc_html( bicycleshop_compat_message() ) ); } /** * Kills the loading of the customizer. * * @since 2.1.0 * @access public * @return void */ function bicycleshop_load_customize() { wp_die( esc_html( bicycleshop_compat_message() ), '', array( 'back_link' => true ) ); } /** * Kills the customizer previewer on installs prior to WP 4.7. * * @since 2.1.0 * @access public * @return void */ function bicycleshop_preview() { if ( isset( $_GET['preview'] ) ) { // WPCS: CSRF ok. wp_die( esc_html( bicycleshop_compat_message() ) ); } }