options = $options; add_action( 'admin_init', [ $this, 'init' ] ); } /** * Start the engine running * * @return void */ public function init() { $this->settings_options = [ [ 'option_group' => Limit_Image_Size::OPTION_NAME, 'option_name' => Limit_Image_Size::OPTION_NAME, 'args' => [ 'sanitize_callback' => [ $this, 'sanitize_settings' ] ], ], ]; $this->settings_sections = [ [ 'id' => 'adminoptimizer-limit-image-size', 'title' => '', 'description' => __( 'Set a maximum file size, width, or height for image uploads. Enter 0 to disable an individual limit; uploaded images must meet every enabled limit.', 'admin-optimizer' ), 'menu_slug' => Limit_Image_Size::OPTION_NAME, 'option_name' => Limit_Image_Size::OPTION_NAME, 'fields' => [ [ 'type' => 'callback', 'title' => __( 'Set image upload size limit', 'admin-optimizer' ), 'id' => 'image-upload-file-limit', 'callback' => [ $this, 'render_size_limit_field' ], ], [ 'type' => 'callback', 'title' => __( 'Set image max width limit', 'admin-optimizer' ), 'id' => 'image-upload-width-limit', 'callback' => [ $this, 'render_width_limit_field' ], ], [ 'type' => 'callback', 'title' => __( 'Set image max height limit', 'admin-optimizer' ), 'id' => 'image-upload-height-limit', 'callback' => [ $this, 'render_height_limit_field' ], ], ], ], ]; $this->setup(); } /** * Render File size limit field * * @return void */ public function render_size_limit_field() { ?> get_server_upload_limit(); if ( $limit > $server_limit ) { $limit = $server_limit; } $options['file_limit'] = $limit; } return $options; } /** * Get server upload limit * * @return float */ public function get_server_upload_limit() { $server_limit = wp_max_upload_size(); // returned data in bytes. $server_limit = round( $server_limit / 1024, -2 ); // convert to kilobytes. return $server_limit; } /** * Render Settings page * * @return void */ public function render_settings_page() { ?>