PluginProbe
Elementor Website Builder – more than just a page builder / 3.6.2
Elementor Website Builder – more than just a page builder v3.6.2
4.3.2 4.3.1 4.3.0 4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 All 455 releases
← All changes | modules/system-info/reporters/server.php +30 -110 4.3.1 → 3.6.2 View file →
@@ -1,9 +1,8 @@
1 1 <?php
2 2 namespace Elementor\Modules\System_Info\Reporters;
3 3
4 4 use Elementor\Api;
5 -use Elementor\Utils;
6 5
7 6 if ( ! defined( 'ABSPATH' ) ) {
8 7 exit; // Exit if accessed directly.
9 8 }
@@ -17,13 +16,8 @@
17 16 * @since 1.0.0
18 17 */
19 18 class Server extends Base {
20 19
21 - const KEY_PATH_WP_CONTENT_DIR = 'wp_content';
22 - const KEY_PATH_UPLOADS_DIR = 'uploads';
23 - const KEY_PATH_ELEMENTOR_UPLOADS_DIR = 'elementor_uploads';
24 - const KEY_PATH_HTACCESS_FILE = '.htaccess';
25 -
26 20 /**
27 21 * Get server environment reporter title.
28 22 *
29 23 * Retrieve server environment reporter title.
@@ -98,9 +92,9 @@
98 92 * }
99 93 */
100 94 public function get_software() {
101 95 return [
102 - 'value' => Utils::get_super_global_value( $_SERVER, 'SERVER_SOFTWARE' ),
96 + 'value' => $_SERVER['SERVER_SOFTWARE'],
103 97 ];
104 98 }
105 99
106 100 /**
@@ -122,16 +116,11 @@
122 116 public function get_php_version() {
123 117 $result = [
124 118 'value' => PHP_VERSION,
125 119 ];
126 - $recommended_php_version = '7.4';
127 120
128 - if ( version_compare( $result['value'], $recommended_php_version, '<' ) ) {
129 - $result['recommendation'] = sprintf(
130 - /* translators: %s: Recommended PHP version. */
131 - esc_html__( 'We recommend using PHP version %s or higher.', 'elementor' ),
132 - $recommended_php_version
133 - );
121 + if ( version_compare( $result['value'], '5.4', '<' ) ) {
122 + $result['recommendation'] = _x( 'We recommend to use php 5.4 or higher', 'System Info', 'elementor' );
134 123
135 124 $result['warning'] = true;
136 125 }
137 126
@@ -153,9 +142,9 @@
153 142 * }
154 143 */
155 144 public function get_php_memory_limit() {
156 145 $result = [
157 - 'value' => (string) ini_get( 'memory_limit' ),
146 + 'value' => (string) get_cfg_var( 'memory_limit' ),
158 147 ];
159 148
160 149 $min_recommended_memory = '128M';
161 150 $preferred_memory = '256M';
@@ -165,10 +154,10 @@
165 154 $min_recommended_bytes = wp_convert_hr_to_bytes( $min_recommended_memory );
166 155
167 156 if ( $memory_limit_bytes < $min_recommended_bytes ) {
168 157 $result['recommendation'] = sprintf(
169 - /* translators: 1: Minimum recommended_memory, 2: Preferred memory, 3: WordPress wp-config memory documentation. */
170 - __( 'We recommend setting memory to at least %1$s. (%2$s or higher is preferred) For more information, read about <a href="%3$s">how to increase memory allocated to PHP</a>.', 'elementor' ),
158 + /* translators: 1: Minimum recommended_memory, 2: Preferred memory, 3: WordPress wp-config memory documentation. */
159 + _x( 'We recommend setting memory to at least %1$s. (%2$sMB or higher is preferred) For more information, read about <a href="%3$s">how to Increase memory allocated to PHP</a>.', 'System Info', 'elementor' ),
171 160 $min_recommended_memory,
172 161 $preferred_memory,
173 162 'https://go.elementor.com/wordpress-wp-config-memory/'
174 163 );
@@ -285,26 +274,18 @@
285 274 global $wpdb;
286 275
287 276 $db_server_version = $wpdb->get_results( "SHOW VARIABLES WHERE `Variable_name` IN ( 'version_comment', 'innodb_version' )", OBJECT_K );
288 277
289 - $db_server_version_string = $db_server_version['version_comment']->Value . ' v';
290 -
291 - // On some hosts, `innodb_version` is empty, in PHP 8.1.
292 - if ( isset( $db_server_version['innodb_version'] ) ) {
293 - $db_server_version_string .= $db_server_version['innodb_version']->Value;
294 - } else {
295 - $db_server_version_string .= $wpdb->get_var( 'SELECT VERSION() AS version' );
296 - }
297 -
298 278 return [
299 - 'value' => $db_server_version_string,
279 + 'value' => $db_server_version['version_comment']->Value . ' v' . $db_server_version['innodb_version']->Value,
300 280 ];
301 281 }
302 282
303 283 /**
304 284 * Get write permissions.
305 - * Check whether the required paths for have writing permissions.
306 285 *
286 + * Check whether the required folders has writing permissions.
287 + *
307 288 * @since 1.9.0
308 289 * @access public
309 290 *
310 291 * @return array {
@@ -314,31 +295,39 @@
314 295 * @type bool $warning Whether to display a warning. True if some required
315 296 * folders don't have writing permissions, False otherwise.
316 297 * }
317 298 */
318 - public function get_write_permissions(): array {
299 + public function get_write_permissions() {
319 300 $paths_to_check = [
320 - static::KEY_PATH_HTACCESS_FILE => $this->get_system_path( static::KEY_PATH_HTACCESS_FILE ),
321 - static::KEY_PATH_UPLOADS_DIR => $this->get_system_path( static::KEY_PATH_UPLOADS_DIR ),
322 - static::KEY_PATH_ELEMENTOR_UPLOADS_DIR => $this->get_system_path( static::KEY_PATH_ELEMENTOR_UPLOADS_DIR ),
301 + ABSPATH => 'WordPress root directory',
323 302 ];
324 303
325 - $paths_permissions = $this->get_paths_permissions( $paths_to_check );
304 + $write_problems = [];
326 305
327 - $write_problems = [];
306 + $wp_upload_dir = wp_upload_dir();
328 307
329 - if ( ! $paths_permissions[ static::KEY_PATH_UPLOADS_DIR ]['write'] ) {
330 - $write_problems[] = 'WordPress uploads directory';
308 + if ( $wp_upload_dir['error'] ) {
309 + $write_problems[] = 'WordPress root uploads directory';
331 310 }
332 311
333 - if ( $paths_permissions[ self::KEY_PATH_ELEMENTOR_UPLOADS_DIR ]['exists'] && ! $paths_permissions[ self::KEY_PATH_ELEMENTOR_UPLOADS_DIR ]['write'] ) {
334 - $write_problems[] = 'Elementor uploads directory';
312 + $elementor_uploads_path = $wp_upload_dir['basedir'] . '/elementor';
313 +
314 + if ( is_dir( $elementor_uploads_path ) ) {
315 + $paths_to_check[ $elementor_uploads_path ] = 'Elementor uploads directory';
335 316 }
336 317
337 - if ( $paths_permissions[ self::KEY_PATH_HTACCESS_FILE ]['exists'] && ! $paths_permissions[ self::KEY_PATH_HTACCESS_FILE ]['write'] ) {
338 - $write_problems[] = '.htaccess file';
318 + $htaccess_file = ABSPATH . '/.htaccess';
319 +
320 + if ( file_exists( $htaccess_file ) ) {
321 + $paths_to_check[ $htaccess_file ] = '.htaccess file';
339 322 }
340 323
324 + foreach ( $paths_to_check as $dir => $description ) {
325 + if ( ! is_writable( $dir ) ) {
326 + $write_problems[] = $description;
327 + }
328 + }
329 +
341 330 if ( $write_problems ) {
342 331 $value = 'There are some writing permissions issues with the following directories/files:' . "\n\t\t - ";
343 332
344 333 $value .= implode( "\n\t\t - ", $write_problems );
@@ -347,9 +336,9 @@
347 336 }
348 337
349 338 return [
350 339 'value' => $value,
351 - 'warning' => (bool) $write_problems,
340 + 'warning' => ! ! $write_problems,
352 341 ];
353 342 }
354 343
355 344 /**
@@ -409,76 +398,7 @@
409 398 }
410 399
411 400 return [
412 401 'value' => 'Connected',
413 - ];
414 - }
415 -
416 - /**
417 - * @param $paths [] Paths to check permissions.
418 - * @return array []{exists: bool, read: bool, write: bool, execute: bool}
419 - */
420 - public function get_paths_permissions( $paths ): array {
421 - $permissions = [];
422 -
423 - foreach ( $paths as $key_path => $path ) {
424 - $permissions[ $key_path ] = $this->get_path_permissions( $path );
425 - }
426 -
427 - return $permissions;
428 - }
429 -
430 - /**
431 - * Get path by path key.
432 - *
433 - * @param $path_key
434 - * @return string
435 - */
436 - public function get_system_path( $path_key ): string {
437 - switch ( $path_key ) {
438 - case static::KEY_PATH_WP_CONTENT_DIR:
439 - return WP_CONTENT_DIR;
440 -
441 - case static::KEY_PATH_HTACCESS_FILE:
442 - return file_exists( ABSPATH . '/.htaccess' ) ? ABSPATH . '/.htaccess' : '';
443 -
444 - case static::KEY_PATH_UPLOADS_DIR:
445 - return wp_upload_dir()['basedir'] ?? '';
446 -
447 - case static::KEY_PATH_ELEMENTOR_UPLOADS_DIR:
448 - if ( empty( wp_upload_dir()['basedir'] ) ) {
449 - return '';
450 - }
451 -
452 - $elementor_uploads_dir = wp_upload_dir()['basedir'] . '/elementor';
453 -
454 - return is_dir( $elementor_uploads_dir ) ? $elementor_uploads_dir : '';
455 -
456 - default:
457 - return '';
458 - }
459 - }
460 -
461 - /**
462 - * Check the permissions of a path.
463 - *
464 - * @param $path
465 - * @return array{exists: bool, read: bool, write: bool, execute: bool}
466 - */
467 - public function get_path_permissions( $path ): array {
468 - if ( empty( $path ) ) {
469 - return [
470 - 'exists' => false,
471 - 'read' => false,
472 - 'write' => false,
473 - 'execute' => false,
474 - ];
475 - }
476 -
477 - return [
478 - 'exists' => true,
479 - 'read' => is_readable( $path ),
480 - 'write' => is_writeable( $path ),
481 - 'execute' => is_executable( $path ),
482 402 ];
483 403 }
484 404 }