plugin_name = $plugin_name; $this->version = $version; } /** * Enqueue scripts and styles * */ public function enqueue_scripts_styles( $hook_suffix ) { if ( $hook_suffix == 'toplevel_page_quickwebp-settings' || $hook_suffix == 'media_page_quickwebp-settings' ) { $admin_main_settings_assets = include( QUICKWEBP_PLUGIN_PATH . 'public/assets/build/admin-main-settings.asset.php' ); wp_enqueue_style( 'quickwebpoi_admin_main_settings', QUICKWEBP_PLUGIN_URL . 'public/assets/build/admin-main-settings.css', array(), $admin_main_settings_assets['version'], 'all' ); wp_enqueue_script( 'quickwebpoi_admin_main_settings', QUICKWEBP_PLUGIN_URL . 'public/assets/build/admin-main-settings.js', $admin_main_settings_assets['dependencies'], $admin_main_settings_assets['version'], true ); wp_localize_script( 'quickwebpoi_admin_main_settings', 'QUICKWEBP_ADMIN_SETTINGS', array( 'ajaxUrl' => admin_url( 'admin-ajax.php' ), 'nonce' => wp_create_nonce( 'image_optimize_nonce' ), )); } } /** * add_settings_menu * * @return void */ public function add_settings_menu() { add_submenu_page( 'upload.php', __('Quickwebp Settings', QUICKWEBP_TEXT_DOMAIN), __('Quickwebp', QUICKWEBP_TEXT_DOMAIN), 'manage_options', 'quickwebp-settings', array( $this, 'render_settings_page' ) ); } /** * render_settings_page * * @return void */ public function render_settings_page() { global $is_nginx; require_once QUICKWEBP_PLUGIN_PATH . 'admin/templates/page-settings.php'; } /** * render_component * * @param mixed $data * @return void */ public function render_component( $data = array() ) { $data['type'] = $data['type'] ?? 'text'; $data['name'] = $data['name'] ?? ''; $file_name = $data['type'] == 'text' || $data['type'] == 'email' || $data['type'] == 'tel' || $data['type'] == 'number' ? 'text' : $data['type']; $path_to_component = QUICKWEBP_PLUGIN_PATH . 'admin/components/' . $file_name . '.php'; if( file_exists( $path_to_component ) ) { ?>

Settings', QUICKWEBP_TEXT_DOMAIN ), esc_url( admin_url( 'upload.php?page=quickwebp-settings' ) ) ); } return array_merge( $new_actions, $plugin_actions ); } /** * Show notice */ public function show_notice_if_library_not_exist() { $library_to_use = get_option( 'quickwebp_settings_library', quickwebp_settings_default('quickwebp_settings_library') ); switch ($library_to_use) { case 'gd': if ( ! extension_loaded('gd') ) { add_action( 'admin_notices', function() { ?>

add(); } else { $result = $rules->remove(); } if ( is_wp_error( $result ) ) { add_action( 'admin_notices', function() use ( $result ) { ?>

get_error_message() ); ?>

is_conversion_enabled_from_request_or_option(); if ( ! $conversion_enabled ) { return 'disabled'; } $save_original = $this->is_save_original_enabled_from_request_or_option(); if ( ! $save_original ) { return 'disabled'; } if ( 'disabled' === $value ) { return 'picture'; } return $value; } /** * Get whether original images should be preserved. */ private function is_save_original_enabled_from_request_or_option() { if ( isset( $_POST['quickwebp_settings_conversion_save_original'] ) ) { $raw_value = wp_unslash( $_POST['quickwebp_settings_conversion_save_original'] ); if ( is_array( $raw_value ) ) { $raw_value = array_map( 'sanitize_text_field', $raw_value ); return in_array( 'checked', $raw_value, true ); } return false; } $saved_value = get_option( 'quickwebp_settings_conversion_save_original', quickwebp_settings_default( 'quickwebp_settings_conversion_save_original' ) ); $saved_value = is_array( $saved_value ) ? $saved_value : array(); return in_array( 'checked', $saved_value, true ); } /** * Get whether image conversion is enabled. */ private function is_conversion_enabled_from_request_or_option() { if ( isset( $_POST['quickwebp_settings_conversion'] ) ) { $raw_value = wp_unslash( $_POST['quickwebp_settings_conversion'] ); $raw_value = sanitize_text_field( (string) $raw_value ); return '1' === $raw_value; } $saved_value = get_option( 'quickwebp_settings_conversion', quickwebp_settings_default( 'quickwebp_settings_conversion' ) ); return '1' === (string) $saved_value; } }