PluginProbe
StoreEngine — Complete eCommerce Solution with Memberships, Licensing, Affiliates & More / 2.2.0
StoreEngine — Complete eCommerce Solution with Memberships, Licensing, Affiliates & More v2.2.0
2.3.0 2.2.0 2.1.1 2.1.0 2.0.0 1.10.0 1.9.1 1.9.0 1.2.1 1.2.2 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 All 59 releases
storeengine / includes / classes / tools.php

tools.php in StoreEngine — Complete eCommerce Solution with Memberships, Licensing, Affiliates & More 2.2.0, at includes/classes/tools.php

244 lines 7.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace StoreEngine\Classes;
4
5 use StoreEngine\Utils\Helper;
6
7 if ( ! defined( 'ABSPATH' ) ) {
8 exit;
9 }
10
11 class Tools {
12
13 private function get_memory_limit() {
14 // WP memory limit.
15 $wp_memory_limit = WP_MEMORY_LIMIT;
16 if ( function_exists( 'memory_get_usage' ) ) {
17 // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
18 $wp_memory_limit = max( $wp_memory_limit, @ini_get( 'memory_limit' ) );
19 }
20
21 return $wp_memory_limit;
22 }
23
24 private function get_curl_version(): string {
25 $curl_version = '';
26 if ( function_exists( 'curl_version' ) ) {
27 $curl_version = curl_version();
28 $curl_version = $curl_version['version'] . ', ' . $curl_version['ssl_version'];
29 }
30
31 return $curl_version ?: __( 'N/A', 'storeengine' );
32 }
33
34 public function get_wordpress_environment_status(): array {
35 $theme = wp_get_theme();
36 $currentTheme = sprintf( '%s – %s', $theme->display( 'Name' ), $theme->display( 'Version' ) );
37 if ( $theme->parent() ) {
38 $parentTheme = sprintf( '%s – %s', $theme->parent()->display( 'Name' ), $theme->parent()->display( 'Version' ) );
39 } else {
40 $parentTheme = __( 'N/A', 'storeengine' );
41 }
42
43 /** @noinspection PhpUndefinedConstantInspection */
44 return apply_filters(
45 'storeengine/tools/wordpress_environment_status',
46 [
47 [
48 'label' => __( 'Home URL', 'storeengine' ),
49 'value' => get_bloginfo( 'url' ),
50 ],
51 [
52 'label' => __( 'Site URL', 'storeengine' ),
53 'value' => get_bloginfo( 'wpurl' ),
54 ],
55 [
56 'label' => __( 'WordPress Version', 'storeengine' ),
57 'value' => get_bloginfo( 'version' ),
58 ],
59 [
60 'label' => __( 'StoreEngine Version', 'storeengine' ),
61 'value' => defined( 'STOREENGINE_VERSION' ) ? STOREENGINE_VERSION : '',
62 ],
63 [
64 'label' => __( 'StoreEngine Database Version', 'storeengine' ),
65 'value' => defined( 'STOREENGINE_DB_VERSION' ) ? STOREENGINE_DB_VERSION : '',
66 ],
67 [
68 'label' => __( 'StoreEngine PRO Version', 'storeengine' ),
69 'value' => defined( 'STOREENGINE_PRO_VERSION' ) ? STOREENGINE_PRO_VERSION : __( 'N/A', 'storeengine' ),
70 ],
71 [
72 'label' => __( 'StoreEngine PRO Database Version', 'storeengine' ),
73 'value' => defined( 'STOREENGINE_PRO_DB_VERSION' ) ? STOREENGINE_PRO_DB_VERSION : __( 'N/A', 'storeengine' ),
74 ],
75 [
76 'label' => __( 'Current Theme', 'storeengine' ),
77 'value' => $currentTheme,
78 ],
79 [
80 'label' => __( 'Parent Theme', 'storeengine' ),
81 'value' => $parentTheme,
82 ],
83 [
84 'label' => __( 'Is FSE Theme', 'storeengine' ),
85 'value' => Helper::is_fse_theme(),
86 ],
87 [
88 'label' => __( 'Language', 'storeengine' ),
89 'value' => get_locale(),
90 ],
91 [
92 'label' => __( 'User Language', 'storeengine' ),
93 'value' => get_user_locale(),
94 ],
95 [
96 'label' => __( 'WordPress Multisite', 'storeengine' ),
97 'value' => is_multisite() ? __( 'Yes', 'storeengine' ) : __( 'No', 'storeengine' ),
98 ],
99 [
100 'label' => __( 'Timezone', 'storeengine' ),
101 'value' => wp_timezone_string(),
102 ],
103 [
104 'label' => __( 'WordPress Memory Limit', 'storeengine' ),
105 'value' => $this->get_memory_limit(),
106 ],
107 [
108 'label' => __( 'WordPress Max Memory Limit', 'storeengine' ),
109 'value' => defined( 'WP_MAX_MEMORY_LIMIT' ) ? WP_MAX_MEMORY_LIMIT : __( 'N/A', 'storeengine' ),
110 ],
111 [
112 'label' => __( 'WordPress Max File Upload Size', 'storeengine' ),
113 'value' => size_format( wp_max_upload_size() ),
114 ],
115 [
116 'label' => __( 'WP Caching', 'storeengine' ),
117 'value' => defined( 'WP_CACHE' ) && WP_CACHE,
118 ],
119 [
120 'label' => __( 'External object cache', 'storeengine' ),
121 'value' => ! ! wp_using_ext_object_cache(),
122 ],
123 [
124 'label' => __( 'WordPress Cron', 'storeengine' ),
125 'value' => ! ( defined( 'DISABLE_WP_CRON' ) && DISABLE_WP_CRON ),
126 ],
127 [
128 'label' => __( 'WordPress Debug Mode', 'storeengine' ),
129 'value' => defined( 'WP_DEBUG' ) && WP_DEBUG,
130 ],
131 [
132 'label' => __( 'WordPress Debug Log', 'storeengine' ),
133 'value' => defined( 'WP_DEBUG_LOG' ) && WP_DEBUG_LOG,
134 ],
135 [
136 'label' => __( 'WP Debug Log Path', 'storeengine' ),
137 'value' => ini_get( 'error_log' ) ? str_replace( ABSPATH, '/', ini_get( 'error_log' ) ) : __( 'N/A', 'storeengine' ),
138 ],
139 [
140 'label' => __( 'WordPress Script Debug', 'storeengine' ),
141 'value' => defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG,
142 ],
143 [
144 'label' => __( 'WordPress Debug Display', 'storeengine' ),
145 'value' => defined( 'WP_DEBUG_DISPLAY' ) && WP_DEBUG_DISPLAY,
146 ],
147 ]
148 );
149 }
150
151 public function get_server_environment_status(): array {
152 // phpcs:disable
153 global $wpdb;
154
155 $os = php_uname( 's' );
156 if ( php_uname( 's' ) == 'Darwin' ) {
157 $os = 'MacOS';
158 }
159
160 return apply_filters(
161 'storeengine/tools/server_environment_status',
162 [
163 [
164 'label' => __( 'OS', 'storeengine' ),
165 'value' => sprintf( "%s – %s (%s)", $os, php_uname( 'r' ), php_uname( 'm' ) ),
166 ],
167 [
168 'label' => __( 'Server Software', 'storeengine' ),
169 'value' => isset( $_SERVER['SERVER_SOFTWARE'] ) ? sanitize_text_field( wp_unslash( $_SERVER['SERVER_SOFTWARE'] ) ) : __( 'N/A', 'storeengine' ),
170 ],
171 [
172 'label' => __( 'PHP Version', 'storeengine' ),
173 'value' => phpversion(),
174 ],
175 [
176 'label' => __( 'PHP Post Max Size', 'storeengine' ),
177 'value' => @ini_get( 'post_max_size' ),
178 ],
179 [
180 'label' => __( 'PHP Max Execution Time', 'storeengine' ),
181 'value' => @ini_get( 'max_execution_time' ),
182 ],
183 [
184 'label' => __( 'PHP max input vars', 'storeengine' ),
185 'value' => @ini_get( 'max_input_vars' ),
186 ],
187 [
188 'label' => __( 'Max post size', 'storeengine' ),
189 'value' => ini_get( 'post_max_size' ),
190 ],
191 [
192 'label' => __( 'Max upload size', 'storeengine' ),
193 'value' => @ini_get( 'upload_max_filesize' ),
194 ],
195 [
196 'label' => __( 'PHP fsockopen enabled', 'storeengine' ),
197 'value' => function_exists( 'fsockopen' ),
198 ],
199 [
200 'label' => __( 'PHP Ext. cURL', 'storeengine' ),
201 'value' => extension_loaded( 'curl' ) && function_exists( 'curl_init' ) ? phpversion( 'curl' ) : __( 'N/A', 'storeengine' ),
202 ],
203 [
204 'label' => __( 'cURL version', 'storeengine' ),
205 'value' => $this->get_curl_version(),
206 ],
207 [
208 'label' => __( 'Suhosin installed', 'storeengine' ),
209 'value' => extension_loaded( 'suhosin' ),
210 ],
211 [
212 'label' => __( 'MySQL version', 'storeengine' ),
213 'value' => $wpdb->db_version(),
214 ],
215 [
216 'label' => __( 'Default timezone', 'storeengine' ),
217 'value' => date_default_timezone_get(),
218 ],
219 [
220 'label' => __( 'PHP SOAP Client enabled', 'storeengine' ),
221 'value' => class_exists( 'SoapClient' ),
222 ],
223 [
224 'label' => __( 'PHP DOMDocument enabled', 'storeengine' ),
225 'value' => class_exists( 'DOMDocument' ),
226 ],
227 [
228 'label' => __( 'PHP Ext. Zip', 'storeengine' ),
229 'value' => extension_loaded( 'zip' ),
230 ],
231 [
232 'label' => __( 'PHP Ext. gZip', 'storeengine' ),
233 'value' => is_callable( 'gzopen' ),
234 ],
235 [
236 'label' => __( 'PHP Ext. Multibyte string', 'storeengine' ),
237 'value' => extension_loaded( 'mbstring' ),
238 ],
239 ]
240 );
241 // phpcs:enable
242 }
243 }
244