* @copyright Copyright (c) 2020 Samuel Marshall / JCH Optimize
* @license GNU/GPLv3, or later. See LICENSE file
*
* If LICENSE file missing, see .
*/
namespace JchOptimize\WordPress\Admin\Settings;
use JchOptimize\Core\Admin\MultiSelectItems;
use JchOptimize\Core\FeatureHelpers\ResponsiveImages;
use JchOptimize\WordPress\Container\ContainerFactory;
use function __;
use function array_key_exists;
use function array_unshift;
use function call_user_func;
use function call_user_func_array;
use function esc_attr_e;
use function explode;
use function get_option;
use function htmlspecialchars;
use function in_array;
use function is_array;
use function is_multisite;
use function ucfirst;
use function wp_create_nonce;
use const JSON_HEX_AMP;
use const JSON_HEX_APOS;
use const JSON_HEX_QUOT;
use const JSON_HEX_TAG;
use const JSON_UNESCAPED_SLASHES;
use const JSON_UNESCAPED_UNICODE;
class ControlRenderer
{
/**
* @param string $key
* @param string $settingName
* @param array|string $defaultValue
* @param mixed ...$args
*
* @return void
* @psalm-suppress InvalidGlobal
*/
public static function render(string $key, string $settingName, array|string $defaultValue, ...$args): void
{
if (defined('JCH_OPTIMIZE_GET_WORDPRESS_SETTINGS')) {
global $jchParams;
$jchParams[$settingName] = $defaultValue;
return;
}
list($function, $proOnly) = static::extract($key);
if ($proOnly && !JCH_PRO) {
$html = '
'
. __('Only available in Pro Version!', 'jch-optimize')
. '