<?php class ActionScheduler_Compatibility { public static function convert_hr_to_bytes($value) { if (function_exists('wp_convert_hr_to_bytes')) { return wp_convert_hr_to_bytes($value); } $value = strtolower(trim($value)); $bytes = (int) $value; if (false !== strpos($value, 'g')) { $bytes *= GB_IN_BYTES; } elseif (false !== strpos($value, 'm')) { $bytes *= MB_IN_BYTES; } elseif (false !== strpos($value, 'k')) { $bytes *= KB_IN_BYTES; } return min($bytes, PHP_INT_MAX); } public static function raise_memory_limit() { if (function_exists('wp_raise_memory_limit')) { return wp_raise_memory_limit('admin'); } $current_limit = @ini_get('memory_limit'); $current_limit_int = self::convert_hr_to_bytes($current_limit); if (-1 === $current_limit_int) { return false; } $wp_max_limit = WP_MAX_MEMORY_LIMIT; $wp_max_limit_int = self::convert_hr_to_bytes($wp_max_limit); $filtered_limit = apply_filters('admin_memory_limit', $wp_max_limit); $filtered_limit_int = self::convert_hr_to_bytes($filtered_limit); if (-1 === $filtered_limit_int || $filtered_limit_int > $wp_max_limit_int && $filtered_limit_int > $current_limit_int) { if (false !== @ini_set('memory_limit', $filtered_limit)) { return $filtered_limit; } else { return false; } } elseif (-1 === $wp_max_limit_int || $wp_max_limit_int > $current_limit_int) { if (false !== @ini_set('memory_limit', $wp_max_limit)) { return $wp_max_limit; } else { return false; } } return false; } public static function raise_time_limit($limit = 0) { if ($limit < ini_get('max_execution_time')) { return; } if (function_exists('wc_set_time_limit')) { wc_set_time_limit($limit); } elseif (function_exists('set_time_limit') && false === strpos(ini_get('disable_functions'), 'set_time_limit') && !ini_get('safe_mode')) { @set_time_limit($limit); } } }