upgrade-handler-page.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <?php //if ( ! defined( 'ABSPATH' ) ) exit;
  2. class NF_UpgradeHandlerPage
  3. {
  4. public $slug = 'nf-upgrade-handler';
  5. public function __construct()
  6. {
  7. add_action( 'admin_menu', array( $this, 'register' ) );
  8. add_action( 'admin_notices', array( $this, 'show_upgrade_notices' ) );
  9. }
  10. public function register()
  11. {
  12. $page = add_submenu_page(
  13. /* Parent Slug */ NULL,
  14. /* Page Title */ __( 'Ninja Forms Upgrade', 'ninja-forms' ),
  15. /* Menu Title */ __( 'Upgrade', 'ninja-forms' ),
  16. /* Capabilities */ apply_filters( 'ninja_forms_admin_menu_capabilities', 'manage_options' ),
  17. /* Menu Slug */ $this->slug,
  18. /* Function */ array( $this, 'display' )
  19. );
  20. add_action( 'admin_print_styles-' . $page, array( $this, 'scripts' ) );
  21. add_action( 'admin_print_styles-' . $page, array( $this, 'styles' ) );
  22. add_action( 'admin_print_styles-' . $page, 'ninja_forms_admin_js');
  23. }
  24. public function display()
  25. {
  26. include 'upgrade-handler-page.html.php';
  27. }
  28. public function scripts()
  29. {
  30. if (defined('NINJA_FORMS_JS_DEBUG') && NINJA_FORMS_JS_DEBUG) {
  31. $suffix = '';
  32. $src = 'dev';
  33. } else {
  34. $suffix = '.min';
  35. $src = 'min';
  36. }
  37. wp_enqueue_script(
  38. /* Handle */ $this->slug,
  39. /* Source */ NF_PLUGIN_URL . 'assets/js/' . $src . '/nf-upgrade-handler' . $suffix . '.js',
  40. /* Dependencies */ array( 'jquery', 'jquery-ui-core', 'jquery-ui-progressbar' ),
  41. /* Version */ '0.0.1',
  42. /* In Footer */ TRUE
  43. );
  44. $upgrades = NF_UpgradeHandler()->upgrades;
  45. $first_upgrade = null;
  46. foreach( $upgrades as $upgrade ) {
  47. if ( ! $upgrade->isComplete() ) {
  48. $first_upgrade = $upgrade->name;
  49. break;
  50. }
  51. }
  52. wp_localize_script(
  53. $this->slug,
  54. 'nfUpgradeHandler',
  55. array(
  56. 'upgrade' => $first_upgrade,
  57. 'nf_upgrade_complete_title' => __( 'Upgrades Complete', 'ninja-forms' ),
  58. )
  59. );
  60. }
  61. public function styles()
  62. {
  63. wp_enqueue_style(
  64. /* Handle */ $this->slug,
  65. /* Source */ NF_PLUGIN_URL . 'assets/css/nf-upgrade-handler.css'
  66. );
  67. wp_enqueue_style(
  68. /* Handle */ 'ninja-forms-admin',
  69. /* Source */ NF_PLUGIN_URL . 'css/ninja-forms-admin.css'
  70. );
  71. wp_enqueue_style(
  72. /* Handle */ 'ninja-forms-admin',
  73. /* Source */ NF_PLUGIN_URL . 'assets/css/admin-modal.css'
  74. );
  75. }
  76. public function show_upgrade_notices()
  77. {
  78. // Don't show notices on the upgrade handler page.
  79. if ( isset ( $_GET['page'] ) && $this->slug == $_GET['page'] ) {
  80. return;
  81. }
  82. $upgrades = NF_UpgradeHandler()->upgrades;
  83. $upgrade_count = 0;
  84. foreach( $upgrades as $upgrade ) {
  85. if( ! $upgrade->isComplete() ) {
  86. $upgrade_count++;
  87. }
  88. }
  89. if( 0 < $upgrade_count ) {
  90. printf(
  91. '<div class="update-nag"><p>' . __('Ninja Forms needs to process %s upgrade(s). This may take a few minutes to complete. %sStart Upgrade%s', 'ninja-forms') . '</p></div>',
  92. $upgrade_count,
  93. '<a class="button button-primary" href="' . admin_url('admin.php?page=nf-upgrade-handler') . '">',
  94. '</a>'
  95. );
  96. }
  97. }
  98. }