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' ), 'preview_image_data' => $this->get_preview_image_data(), 'default_image_url' => QUICKWEBP_PLUGIN_URL . 'public/assets/img/preview.jpg', )); } } /** * Persist dismissal of the contextual AVIF notice for the current user. */ public function dismiss_avif_notice() { if ( ! isset( $_GET['quickwebp_dismiss_avif_notice'] ) || ! current_user_can( 'manage_options' ) ) { return; } check_admin_referer( 'quickwebp_dismiss_avif_notice' ); update_user_meta( get_current_user_id(), 'quickwebp_avif_notice_dismissed', 1 ); wp_safe_redirect( remove_query_arg( array( 'quickwebp_dismiss_avif_notice', '_wpnonce' ) ) ); exit; } /** * Render the contextual AVIF upgrade notice outside QuickWebP screens. */ public function render_avif_notice() { global $quickwebp_surecart_client; if ( ! current_user_can( 'manage_options' ) || get_user_meta( get_current_user_id(), 'quickwebp_avif_notice_dismissed', true ) ) { return; } $screen = get_current_screen(); if ( $screen && false !== strpos( $screen->id, 'quickwebp' ) ) { return; } if ( $quickwebp_surecart_client && $quickwebp_surecart_client->license()->is_valid() ) { return; } $stats = get_option( 'quickwebp_optimization_stats', array() ); $image_count = absint( $stats['images_optimized'] ?? 0 ); $bytes_saved = absint( $stats['bytes_saved'] ?? 0 ); $installed_at = absint( get_option( 'quickwebp_installed_at', 0 ) ); $seven_days = 7 * DAY_IN_SECONDS; if ( $image_count < 20 && ( ! $installed_at || time() - $installed_at < $seven_days ) ) { return; } $avif_supported = function_exists( 'wp_image_editor_supports' ) && wp_image_editor_supports( array( 'mime_type' => 'image/avif' ) ); if ( ! $avif_supported ) { return; } $dismiss_url = wp_nonce_url( add_query_arg( 'quickwebp_dismiss_avif_notice', '1' ), 'quickwebp_dismiss_avif_notice' ); ?>
=' ); $license_valid = false; if ( $quickwebp_surecart_client ) { $license_valid = $quickwebp_surecart_client->license()->is_valid(); } //phpcs:ignore WordPress.Security.NonceVerification.Missing if ( isset( $_POST['quickwebp_settings_conversion'] ) ) { update_option( 'quickwebp_settings_onboarding_completed', '1' ); } // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound $wpmtk_is_active = in_array( 'wpmastertoolkit/wp-mastertoolkit.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ); $show_onboarding = '1' !== (string) get_option( 'quickwebp_settings_onboarding_completed', '0' ); $conversion = get_option( 'quickwebp_settings_conversion', quickwebp_settings_default( 'quickwebp_settings_conversion' ) ); $conversion_enabled = '1' === (string) $conversion; $save_original = get_option( 'quickwebp_settings_conversion_save_original', quickwebp_settings_default( 'quickwebp_settings_conversion_save_original' ) ); $save_original = is_array( $save_original ) ? $save_original : array(); $save_original_enabled = in_array( 'checked', $save_original, true ); $display_mode = get_option( 'quickwebp_settings_conversion_display_webp_mode', quickwebp_settings_default( 'quickwebp_settings_conversion_display_webp_mode' ) ); $conversion_quality = get_option( 'quickwebp_settings_conversion_quality', quickwebp_settings_default( 'quickwebp_settings_conversion_quality' ) ); $profile_label = __( 'Custom profile', 'quickwebp' ); if ( $conversion_enabled && ! $save_original_enabled ) { $profile_label = __( 'New site profile', 'quickwebp' ); } if ( $conversion_enabled && $save_original_enabled ) { $profile_label = __( 'Existing site profile', 'quickwebp' ); } $preview_image_data = $this->get_preview_image_data(); $preview_image_data_webp = $preview_image_data['1_' . $conversion_quality] ?? $preview_image_data['1_medium']; $preview_image_data_avif = $preview_image_data['2_' . $conversion_quality] ?? $preview_image_data['2_medium']; 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 ) ) { ?>get_error_message() ); ?>