kollapsminoriteten/wp-content/plugins/wp-maximum-upload-file-size/inc/class-wmufs-helper.php

214 lines
8.2 KiB
PHP

<?php
// Read plugin header data.
$wmufs_plugin_data = get_plugin_data( WMUFS_PLUGIN_URL );
/**
* WordPress check upload file size.
* @return string
*/
function wmufs_wp_minimum_upload_file_size() {
$wp_size = wp_max_upload_size();
if ( ! $wp_size ) {
$wp_size = 'unknown';
return $wp_size;
}
return esc_html( size_format( $wp_size ) );
}
/**
* Minimum upload size set by hosting provider.
* @return string
*/
function wmufs_wp_upload_size_by_from_hosting() {
$ini_size = ini_get( 'upload_max_filesize' );
if ( ! $ini_size ) {
$ini_size = 'unknown';
} elseif ( is_numeric( $ini_size ) ) {
$ini_size .= ' bytes';
} else {
$ini_size .= 'B';
}
return $ini_size;
}
/**
* @param string $from
* @return int|null
*/
function convertToBytes( string $from ): ?int {
$units = [ 'B', 'KB', 'MB', 'GB', 'TB', 'PB' ];
$number = substr( $from, 0, - 2 );
$suffix = strtoupper( substr( $from, - 2 ) );
//B or no suffix
if ( is_numeric( substr( $suffix, 0, 1 ) ) ) {
return preg_replace( '/[^\d]/', '', $from );
}
$exponent = array_flip( $units )[ $suffix ] ?? null;
if ( $exponent === null ) { //phpcs:ignore
return null;
}
return (int) $number * ( 1024 ** $exponent );
}
/**
* Check zipArchive extension enable from hosting.
* @return bool
*/
function wmufs_check_zip_extension(): bool
{
$extension = '';
$extension = in_array( 'zip', get_loaded_extensions() );
return $extension;
}
/**
* Check MBstring extension enable from hosting.
* @return bool
*/
function wmufs_check_mbstring_extension(): bool
{
$extension = '';
$extension = in_array( 'mbstring', get_loaded_extensions() );
return $extension;
}
/**
* Check dom extension
* @return bool
*/
function wmufs_check_dom_extension(): bool
{
$extension = '';
$extension = in_array( 'dom', get_loaded_extensions() );
return $extension;
}
// Minimum PHP version.
$wmufs_current_php_version = phpversion();
$wmufs_minimum_php_version = $wmufs_plugin_data['RequiresPHP'] ? $wmufs_plugin_data['RequiresPHP'] : '5.6';
$wmufs_php_version_status = $wmufs_current_php_version < $wmufs_minimum_php_version ? 0 : 1;
// Minimum WordPress Version.
$wmufs_wp_current_version = get_bloginfo( 'version' );
$wmufs_minimum_wp_version = $wmufs_plugin_data['RequiresWP'] ? $wmufs_plugin_data['RequiresWP'] : '4.4';
$wmufs_wp_version_status = $wmufs_wp_current_version < $wmufs_minimum_wp_version ? 0 : 1;
// Minimum Woocommerce Version.
if ( class_exists('woocommerce') ) {
$wmufs_wc_current_version = WC_VERSION;
}else {
$wmufs_wc_current_version = 'Not Active Woocommerce';
}
$wmufs_minimum_wc_version = isset( $wmufs_plugin_data['WC requires at least'] ) ? $wmufs_plugin_data['WC requires at least'] : '3.2';
$wmufs_wc_status = $wmufs_wc_current_version < $wmufs_minimum_wc_version ? 0 : 1;
// WordPress minimum upload size .
$wmufs_wp_minimum_upload_file_size = '40MB';
// Minimum WordPress upload size..
$wmufs_wp_upload_size_status = convertToBytes( wmufs_wp_minimum_upload_file_size() ) < convertToBytes( $wmufs_wp_minimum_upload_file_size ) ? 0 : 1;
// Minimum upload file size from hosting provider.
$wmufs_wp_upload_size_status_from_hosting = convertToBytes( wmufs_wp_upload_size_by_from_hosting() ) < convertToBytes( $wmufs_wp_minimum_upload_file_size ) ? 0 : 1;
// PHP Limit Time
$wmufs_php_minimum_limit_time = '120';
$wmufs_php_current_limit_time = ini_get('max_execution_time');
$wmufs_php_limit_time_status = $wmufs_php_minimum_limit_time <= $wmufs_php_current_limit_time ? 1 : 0;
// Check if zipArchie extension is enable in hosting.
$wmufs_check_zip_extension_status = wmufs_check_zip_extension() != '1' ? 0 : '1';
// Check MBstring extension from hsoting.
$wmufs_check_mbstring_extension_status = wmufs_check_mbstring_extension() != '1' ? 0 : '1';
// Check dom extension.
$wmufs_check_dom_extension_status = wmufs_check_dom_extension() != '1' ? 0 : '1';
$system_status = array(
array(
'title' => esc_html__( 'PHP Version', 'wp-maximum-upload-file-size' ),
'version' => esc_html__('Current Version : ', 'wp-maximum-upload-file-size') . $wmufs_current_php_version,
'status' => $wmufs_php_version_status,
'success_message' => esc_html__( '- ok', 'wp-maximum-upload-file-size' ),
'error_message' => esc_html__( 'Recommend Version : ', 'wp-maximum-upload-file-size' ) . $wmufs_minimum_php_version,//phpcs:ignore
),
array(
'title' => esc_html__( 'WordPress Version', 'wp-maximum-upload-file-size' ),
'version' => $wmufs_wp_current_version,
'status' => $wmufs_wp_version_status,
'success_message' => esc_html__( '- ok', 'wp-maximum-upload-file-size' ),
'error_message' => esc_html__( 'Recommend : ', 'wp-maximum-upload-file-size') . $wmufs_minimum_wp_version , //phpcs:ignore
),
array(
'title' => esc_html__( 'Woocommerce Version', 'wp-maximum-upload-file-size' ),
'version' => $wmufs_wc_current_version,
'status' => $wmufs_wc_status,
'success_message' => esc_html__( '- ok', 'wp-maximum-upload-file-size' ),
'error_message' => esc_html__( 'Recommend : ', 'wp-maximum-upload-file-size') . $wmufs_minimum_wc_version, //phpcs:ignore
),
array(
'title' => esc_html__( 'Maximum Upload Limit set by WordPress', 'wp-maximum-upload-file-size' ),
'version' => wmufs_wp_minimum_upload_file_size(),
'status' => $wmufs_wp_upload_size_status,
'success_message' => esc_html__( '- ok', 'wp-maximum-upload-file-size' ),
'error_message' => esc_html__( 'Recommend : ', 'wp-maximum-upload-file-size' ) . $wmufs_wp_minimum_upload_file_size, //phpcs:ignore
),
array(
'title' => esc_html__( 'Maximum Upload Limit Set By Hosting Provider', 'wp-maximum-upload-file-size' ),
'version' => wmufs_wp_upload_size_by_from_hosting(),
'status' => $wmufs_wp_upload_size_status_from_hosting,
'success_message' => esc_html__( '- ok', 'wp-maximum-upload-file-size' ),
'error_message' => esc_html__( 'Recommend : ', 'wp-maximum-upload-file-size' ) . $wmufs_wp_minimum_upload_file_size, //phpcs:ignore
),
array(
'title' => esc_html__( 'PHP Limit Time', 'wp-maximum-upload-file-size' ),
'version' => esc_html__('Current Limit Time: ', 'wp-maximum-upload-file-size') . $wmufs_php_current_limit_time,
'status' => $wmufs_php_limit_time_status,
'success_message' => esc_html__( '- Ok', 'wp-maximum-upload-file-size' ),
'error_message' => esc_html__( 'Recommend : ', 'wp-maximum-upload-file-size' ) . $wmufs_php_minimum_limit_time, //phpcs:ignore
),
array(
'title' => esc_html__( 'zipArchive Extension', 'wp-maximum-upload-file-size' ),
'version' => '',
'status' => $wmufs_check_zip_extension_status,
'success_message' => esc_html__( 'Enable', 'wp-maximum-upload-file-size' ),
'error_message' => esc_html__( 'Please enable zip extension from hosting.', 'wp-maximum-upload-file-size' ),
),
array(
'title' => esc_html__( 'MBString extension', 'wp-maximum-upload-file-size' ),
'version' => '',
'status' => $wmufs_check_mbstring_extension_status,
'success_message' => esc_html__( 'Enable', 'wp-maximum-upload-file-size' ),
'error_message' => esc_html__( 'Please enable MBString extension from hosting.', 'wp-maximum-upload-file-size' ),
),
array(
'title' => esc_html__( 'Dom extension', 'wp-maximum-upload-file-size' ),
'version' => '',
'status' => $wmufs_check_dom_extension_status,
'success_message' => esc_html__( 'Enable', 'wp-maximum-upload-file-size' ),
'error_message' => esc_html__( 'Dom extension is not enable from hosting.', 'wp-maximum-upload-file-size' ),
),
);