back-compat.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php declare( strict_types = 1 ); ?>
  2. <?php
  3. /**
  4. * seedlet back compat functionality
  5. *
  6. * Prevents seedlet from running on WordPress versions prior to 4.7,
  7. * since this theme is not meant to be backward compatible beyond that and
  8. * relies on many newer functions and markup changes introduced in 4.7.
  9. *
  10. * @package Seedlet
  11. * @since seedlet 1.0.0
  12. */
  13. /**
  14. * Prevent switching to seedlet on old versions of WordPress.
  15. *
  16. * Switches to the default theme.
  17. *
  18. * @since seedlet 1.0.0
  19. */
  20. function seedlet_switch_theme() {
  21. switch_theme( WP_DEFAULT_THEME );
  22. unset( $_GET['activated'] );
  23. add_action( 'admin_notices', 'seedlet_upgrade_notice' );
  24. }
  25. add_action( 'after_switch_theme', 'seedlet_switch_theme' );
  26. /**
  27. * Adds a message for unsuccessful theme switch.
  28. *
  29. * Prints an update nag after an unsuccessful attempt to switch to
  30. * seedlet on WordPress versions prior to 4.7.
  31. *
  32. * @since seedlet 1.0.0
  33. *
  34. * @global string $wp_version WordPress version.
  35. */
  36. function seedlet_upgrade_notice() {
  37. $message = sprintf( __( 'Seedlet requires at least WordPress version 4.7. You are running version %s. Please upgrade and try again.', 'seedlet' ), $GLOBALS['wp_version'] );
  38. printf( '<div class="error"><p>%s</p></div>', $message );
  39. }
  40. /**
  41. * Prevents the Customizer from being loaded on WordPress versions prior to 4.7.
  42. *
  43. * @since seedlet 1.0.0
  44. *
  45. * @global string $wp_version WordPress version.
  46. */
  47. function seedlet_customize() {
  48. wp_die(
  49. sprintf(
  50. __( 'Seedlet requires at least WordPress version 4.7. You are running version %s. Please upgrade and try again.', 'seedlet' ),
  51. $GLOBALS['wp_version']
  52. ),
  53. '',
  54. array(
  55. 'back_link' => true,
  56. )
  57. );
  58. }
  59. add_action( 'load-customize.php', 'seedlet_customize' );
  60. /**
  61. * Prevents the Theme Preview from being loaded on WordPress versions prior to 4.7.
  62. *
  63. * @since seedlet 1.0.0
  64. *
  65. * @global string $wp_version WordPress version.
  66. */
  67. function seedlet_preview() {
  68. if ( isset( $_GET['preview'] ) ) {
  69. wp_die( sprintf( __( 'Seedlet requires at least WordPress version 4.7. You are running version %s. Please upgrade and try again.', 'seedlet' ), $GLOBALS['wp_version'] ) );
  70. }
  71. }
  72. add_action( 'template_redirect', 'seedlet_preview' );