/var/www/p4ela.net/www/wp-content/plugins/image-optimization
Edit: /var/www/p4ela.net/www/wp-content/plugins/image-optimization/image-optimization.php (5248B)
=' ) ) {
$this->requirements_errors[] = sprintf(
'%1$s
%2$s',
sprintf(
/* translators: %s: PHP version. */
esc_html__( 'Update to PHP version %s and get back to optimizing!', 'image-optimization' ),
'7.4',
),
esc_html__( 'Show me how', 'image-optimization' )
);
$can_start = false;
}
if ( count( $this->get_missing_extensions_list() ) ) {
$missed_extensions = $this->get_missing_extensions_list();
$this->requirements_errors[] = sprintf(
esc_html__( 'The following required PHP extensions are missing: %s', 'image-optimization' ),
implode( ', ', $missed_extensions )
);
$can_start = false;
}
if ( ! $this->is_db_json_supported() ) {
$this->requirements_errors[] = sprintf(
/* translators: 1: MySQL minimum version. 2: MariaDB minimum version. */
esc_html__(
'The database server version is outdated. Update to MySQL version %1$s or MariaDB version %2$s.',
'image-optimization'
),
'5.7',
'10.2'
);
$can_start = false;
}
$upload_dir = wp_upload_dir();
if ( ! wp_is_writable( $upload_dir['basedir'] ) ) {
$this->requirements_errors[] = esc_html__(
'Your site doesn’t have the necessary read/write permissions for your file system to use this plugin. Please contact your hosting provider to resolve this matter.',
'image-optimization',
);
$can_start = false;
}
return $can_start;
}
/**
* Retrieve an array of missing extensions mentioned in self::REQUIRED_EXTENSIONS.
*
* @access private
* @return array Missing extensions.
*/
private function get_missing_extensions_list(): array {
$output = [];
foreach ( self::REQUIRED_EXTENSIONS as $extension ) {
if ( ! extension_loaded( $extension ) ) {
$output[] = $extension;
}
}
return $output;
}
public function is_db_json_supported(): bool {
global $wpdb;
$result = $wpdb->query("
SELECT JSON_EXTRACT('[1, 2]', '$[1]');
");
return false !== $result;
}
/**
* Renders an admin notice if the setup did not meet requirements.
*
* Fired by `admin_notices` action hook.
*
* @access public
* @return void
*/
public function add_requirements_error() {
$message = sprintf(
'
%s
',
esc_html__( 'Image Optimizer isn’t running because:', 'image-optimization' )
);
$message .= '
';
foreach ( $this->requirements_errors as $error ) {
$message .= sprintf(
'%s%s%s',
'- ',
$error,
'
'
);
}
$message .= '
';
$html_message = sprintf( '
%s
', wpautop( $message ) );
echo wp_kses_post( $html_message );
}
/**
* Initialize the plugin.
*
* Validates that PHP version is sufficient. Checks for basic plugin requirements,
* if one check fail don't continue, if all check have passed include the plugin class.
*
* Fired by `plugins_loaded` action hook.
*
* @access public
*/
public function init() {
if ( ! $this->plugin_can_start() ) {
add_action( 'admin_notices', [ $this, 'add_requirements_error' ] );
} else {
// Once we get here, We have passed all validation checks, so we can safely include our plugin
require_once 'plugin.php';
}
}
}
// Instantiate ImageOptimization.
new ImageOptimization();