PluginProbe
Elementor Website Builder – more than just a page builder / 3.7.3
Elementor Website Builder – more than just a page builder v3.7.3
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 4.0.8 All 454 releases
← All changes | modules/system-info/reporters/server.php +29 -100 4.3.1 → 3.7.3 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 );
@@ -301,10 +290,11 @@
301 290 }
302 291
303 292 /**
304 293 * Get write permissions.
305 - * Check whether the required paths for have writing permissions.
306 294 *
295 + * Check whether the required folders has writing permissions.
296 + *
307 297 * @since 1.9.0
308 298 * @access public
309 299 *
310 300 * @return array {
@@ -314,31 +304,39 @@
314 304 * @type bool $warning Whether to display a warning. True if some required
315 305 * folders don't have writing permissions, False otherwise.
316 306 * }
317 307 */
318 - public function get_write_permissions(): array {
308 + public function get_write_permissions() {
319 309 $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 ),
310 + ABSPATH => 'WordPress root directory',
323 311 ];
324 312
325 - $paths_permissions = $this->get_paths_permissions( $paths_to_check );
313 + $write_problems = [];
326 314
327 - $write_problems = [];
315 + $wp_upload_dir = wp_upload_dir();
328 316
329 - if ( ! $paths_permissions[ static::KEY_PATH_UPLOADS_DIR ]['write'] ) {
330 - $write_problems[] = 'WordPress uploads directory';
317 + if ( $wp_upload_dir['error'] ) {
318 + $write_problems[] = 'WordPress root uploads directory';
331 319 }
332 320
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';
321 + $elementor_uploads_path = $wp_upload_dir['basedir'] . '/elementor';
322 +
323 + if ( is_dir( $elementor_uploads_path ) ) {
324 + $paths_to_check[ $elementor_uploads_path ] = 'Elementor uploads directory';
335 325 }
336 326
337 - if ( $paths_permissions[ self::KEY_PATH_HTACCESS_FILE ]['exists'] && ! $paths_permissions[ self::KEY_PATH_HTACCESS_FILE ]['write'] ) {
338 - $write_problems[] = '.htaccess file';
327 + $htaccess_file = ABSPATH . '/.htaccess';
328 +
329 + if ( file_exists( $htaccess_file ) ) {
330 + $paths_to_check[ $htaccess_file ] = '.htaccess file';
339 331 }
340 332
333 + foreach ( $paths_to_check as $dir => $description ) {
334 + if ( ! is_writable( $dir ) ) {
335 + $write_problems[] = $description;
336 + }
337 + }
338 +
341 339 if ( $write_problems ) {
342 340 $value = 'There are some writing permissions issues with the following directories/files:' . "\n\t\t - ";
343 341
344 342 $value .= implode( "\n\t\t - ", $write_problems );
@@ -347,9 +345,9 @@
347 345 }
348 346
349 347 return [
350 348 'value' => $value,
351 - 'warning' => (bool) $write_problems,
349 + 'warning' => ! ! $write_problems,
352 350 ];
353 351 }
354 352
355 353 /**
@@ -409,76 +407,7 @@
409 407 }
410 408
411 409 return [
412 410 '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 411 ];
483 412 }
484 413 }