| @@ -63,9 +63,9 @@ | ||
| 63 | 63 | $this->file = $file; |
| 64 | 64 | $this->dir = dirname( $file ); |
| 65 | 65 | self::$options = get_site_option( 'wp_debugging', [ 'wp_debug' => '1' ] ); |
| 66 | 66 | self::$config_path = $this->get_config_path(); |
| 67 | - @ini_set( 'display_errors', 1 ); // phpcs:ignore WordPress.PHP.IniSet.display_errors_Blacklisted,WordPress.PHP.NoSilencedErrors.Discouraged,WordPress.PHP.IniSet.display_errors_Disallowed | |
| 67 | + @ini_set( 'display_errors', 1 ); // phpcs:ignore WordPress.PHP.IniSet.display_errors_Blacklisted | |
| 68 | 68 | } |
| 69 | 69 | |
| 70 | 70 | /** |
| 71 | 71 | * Test for writable wp-config.php, exit with notice if not available. |
| @@ -72,19 +72,8 @@ | ||
| 72 | 72 | * |
| 73 | 73 | * @return bool|void |
| 74 | 74 | */ |
| 75 | 75 | public function init() { |
| 76 | - register_activation_hook( $this->file, [ $this, 'activate' ] ); | |
| 77 | - register_deactivation_hook( $this->file, [ $this, 'deactivate' ] ); | |
| 78 | - | |
| 79 | - // Load settings hooks and exit if not on WP Debugging settings page. | |
| 80 | - // phpcs:ignore WordPress.Security.NonceVerification.Recommended | |
| 81 | - if ( ! isset( $_REQUEST['page'] ) || 'wp-debugging' !== sanitize_key( wp_unslash( $_REQUEST['page'] ) ) ) { | |
| 82 | - ( new Settings( self::$options, self::$config_path, $this->defined_constants ) ) | |
| 83 | - ->load_hooks(); | |
| 84 | - return; | |
| 85 | - } | |
| 86 | - | |
| 87 | 76 | if ( ! is_writable( self::$config_path ) ) { |
| 88 | 77 | echo '<div class="error notice is-dismissible"><p>'; |
| 89 | 78 | echo wp_kses_post( __( 'The <strong>WP Debugging</strong> plugin must have a <code>wp-config.php</code> file that is writable by the filesystem.', 'wp-debugging' ) ); |
| 90 | 79 | echo '</p></div>'; |
| @@ -92,8 +81,14 @@ | ||
| 92 | 81 | return false; |
| 93 | 82 | } |
| 94 | 83 | |
| 95 | 84 | $this->load_hooks(); |
| 85 | + add_action( | |
| 86 | + 'plugins_loaded', | |
| 87 | + function() { | |
| 88 | + \WP_Dependency_Installer::instance()->run( $this->dir ); | |
| 89 | + } | |
| 90 | + ); | |
| 96 | 91 | } |
| 97 | 92 | |
| 98 | 93 | /** |
| 99 | 94 | * Get the `wp-config.php` file path. |
| @@ -107,9 +102,8 @@ | ||
| 107 | 102 | public function get_config_path() { |
| 108 | 103 | $config_path = ABSPATH . 'wp-config.php'; |
| 109 | 104 | |
| 110 | 105 | if ( ! file_exists( $config_path ) ) { |
| 111 | - // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged | |
| 112 | 106 | if ( @file_exists( dirname( ABSPATH ) . '/wp-config.php' ) && ! @file_exists( dirname( ABSPATH ) . '/wp-settings.php' ) ) { |
| 113 | 107 | $config_path = dirname( ABSPATH ) . '/wp-config.php'; |
| 114 | 108 | } |
| 115 | 109 | } |
| @@ -131,14 +125,20 @@ | ||
| 131 | 125 | */ |
| 132 | 126 | public function load_hooks() { |
| 133 | 127 | add_action( |
| 134 | 128 | 'plugins_loaded', |
| 135 | - function () { | |
| 129 | + function() { | |
| 136 | 130 | ( new Settings( self::$options, self::$config_path, $this->defined_constants ) ) |
| 137 | 131 | ->load_hooks() |
| 138 | 132 | ->process_filter_constants(); |
| 139 | 133 | } |
| 140 | 134 | ); |
| 135 | + add_action( | |
| 136 | + 'init', | |
| 137 | + function () { | |
| 138 | + load_plugin_textdomain( 'wp-debugging' ); | |
| 139 | + } | |
| 140 | + ); | |
| 141 | 141 | add_filter( |
| 142 | 142 | 'wp_dependency_timeout', |
| 143 | 143 | function ( $timeout, $source ) { |
| 144 | 144 | $timeout = basename( $this->dir ) !== $source ? $timeout : 45; |
| @@ -147,14 +147,11 @@ | ||
| 147 | 147 | }, |
| 148 | 148 | 10, |
| 149 | 149 | 2 |
| 150 | 150 | ); |
| 151 | - add_action( | |
| 152 | - 'plugins_loaded', | |
| 153 | - function () { | |
| 154 | - \WP_Dependency_Installer::instance()->run( $this->dir ); | |
| 155 | - } | |
| 156 | - ); | |
| 151 | + | |
| 152 | + register_activation_hook( $this->file, [ $this, 'activate' ] ); | |
| 153 | + register_deactivation_hook( $this->file, [ $this, 'deactivate' ] ); | |
| 157 | 154 | } |
| 158 | 155 | |
| 159 | 156 | /** |
| 160 | 157 | * Run on activation. |
| @@ -185,9 +182,9 @@ | ||
| 185 | 182 | */ |
| 186 | 183 | public function deactivate() { |
| 187 | 184 | $restore_constants = get_site_option( 'wp_debugging_restore' ); |
| 188 | 185 | $remove_user_added = array_diff( self::$options, array_flip( $this->defined_constants ) ); |
| 189 | - $remove_constants = array_diff( array_flip( $this->defined_constants ), array_keys( (array) $restore_constants ) ); | |
| 186 | + $remove_constants = array_diff( array_flip( $this->defined_constants ), array_keys( $restore_constants ) ); | |
| 190 | 187 | $remove_constants = array_merge( $remove_constants, $remove_user_added ); |
| 191 | 188 | |
| 192 | 189 | ( new Settings( self::$options, self::$config_path, $this->defined_constants ) )->remove_constants( $remove_constants ); |
| 193 | 190 | |