PluginProbe
WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance / 3.5.0
WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance v3.5.0
4.7.0 4.6.1 4.6.0 4.5.5 4.5.4 4.5.3 4.5.2 3.2.20 3.2.21 3.2.22 3.2.3 3.2.5 3.2.6 3.2.7 3.2.9 3.3.0 3.3.1 3.3.2 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.7.0 3.7.1 All 111 releases
wp-optimize / templates / images / smush.php

smush.php in WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance 3.5.0, at templates/images/smush.php

181 lines 13.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php if (!defined('WPO_VERSION')) die('No direct access allowed'); ?>
2 <div id="wpo_smush_settings">
3 <div class="wpo-info">
4 <a class="wpo-info__trigger" href="#"><span class="dashicons dashicons-sos"></span> <?php esc_html_e('How to use the image compression feature', 'wp-optimize'); ?> <span class="wpo-info__close"><?php esc_html_e('Close', 'wp-optimize'); ?></span></a>
5 <div class="wpo-info__content">
6 <p><strong><?php esc_html_e('Not sure how to use the image compression feature?', 'wp-optimize'); ?></strong> <br><?php esc_html_e('Watch our howto video below.', 'wp-optimize'); ?></p>
7 <div class="wpo-video-preview">
8 <a href="https://vimeo.com/333938451" data-embed="https://player.vimeo.com/video/333938451?color=df6926&title=0&byline=0&portrait=0" target="_blank"><img src="<?php echo esc_url(trailingslashit(WPO_PLUGIN_URL) . 'images/notices/image-compression-video-preview.png'); ?>" alt="<?php esc_attr_e('Video preview', 'wp-optimize'); ?>" /></a>
9 </div>
10 <small>(<?php esc_html_e('Loads a video hosted on vimeo.com', 'wp-optimize'); ?>) - <?php $wp_optimize->wp_optimize_url('https://vimeo.com/333938451', __('Open the video in a new window', 'wp-optimize')); ?></small>
11 </div>
12 </div>
13 <p>
14 <?php
15 printf(__('Note: Image optimization feature is offered via %s free API', 'wp-optimize'), '<a href="https://resmush.it/" target="_blank">reSmush.it</a>');
16 ?>
17 </p>
18 <div class="wpo-fieldgroup">
19 <div class="autosmush wpo-fieldgroup__subgroup<?php echo $smush_options['autosmush'] ? ' active' : ''; ?>">
20 <label class="switch" for="smush-automatically">
21 <input type="checkbox" id="smush-automatically" <?php checked($smush_options['autosmush']); ?> >
22 <span class="slider round"></span>
23 </label>
24 <label for="smush-automatically"><?php esc_html_e('Automatically compress newly-added images', 'wp-optimize');?>
25 <span tabindex="0" data-tooltip="<?php echo esc_attr__('The images will be added to a background queue, which will start automatically within the next hour.', 'wp-optimize').' '.esc_attr__('This prevents the site from being slowed down during media uploads.', 'wp-optimize').' '.esc_attr__('The time taken to complete the compression will depend upon the size and quantity of the images.', 'wp-optimize');?>"><span class="dashicons dashicons-editor-help"></span> </span>
26 </label>
27 </div>
28
29 <div class="wpo-fieldgroup__subgroup">
30 <label class="switch">
31 <input type="checkbox" id="smush-show-metabox" class="smush-options" <?php checked($smush_options['show_smush_metabox']); ?> >
32 <span class="slider round"></span>
33 </label>
34 <label for="smush-show-metabox" class="smush-options">
35 <?php
36 esc_html_e('Show compression meta-box on an image\'s dashboard media page.', 'wp-optimize');
37 $message = __('The image compression metabox allows you to compress specific images from the media library.', 'wp-optimize');
38 $message .= ' ';
39 $message .= __('But if you are using a solution other than WP-Optimize to compress your images, you can hide these metaboxes by disabling this switch.', 'wp-optimize')
40 ?>
41 <span tabindex="0" data-tooltip="<?php echo esc_attr($message);?>"><span class="dashicons dashicons-editor-help"></span> </span>
42 </label>
43 </div>
44
45 <div class="compression_options">
46 <h3><?php esc_html_e('Compression options', 'wp-optimize');?></h3>
47 <input type="radio" id="enable_lossy_compression" name="compression_level" <?php checked($smush_options['image_quality'], 60); ?> class="smush-options compression_level">
48 <label for="enable_lossy_compression"><?php esc_html_e('Prioritize maximum compression', 'wp-optimize');?></label>
49 <?php
50 $message = __('Uses lossy compression to ensure maximum savings per image.', 'wp-optimize');
51 $message .= ' ';
52 $message .= __('The resulting images are of a slightly lower quality', 'wp-optimize');
53 ?>
54 <span tabindex="0" data-tooltip="<?php echo esc_attr($message); ?>"><span class="dashicons dashicons-editor-help"></span> </span>
55 <br>
56 <input type="radio" id="enable_lossless_compression" <?php checked($smush_options['image_quality'], 92); ?>name="compression_level" class="smush-options compression_level">
57 <label for="enable_lossless_compression"><?php esc_html_e('Prioritize retention of detail', 'wp-optimize');?></label>
58 <span tabindex="0" data-tooltip="<?php esc_attr_e('Uses lossless compression, which results in much better image quality but lower file size savings per image', 'wp-optimize');?>"><span class="dashicons dashicons-editor-help"></span> </span>
59 <br>
60 <input id="enable_custom_compression" <?php checked($custom); ?> type="radio" name="compression_level" class="smush-options compression_level">
61 <label for="enable_custom_compression"><?php esc_html_e('Custom', 'wp-optimize');?></label>
62 <br>
63 <div class="smush-options custom_compression" <?php if (!$custom) echo 'style="display:none;"';?> >
64 <span class="slider-start"><?php esc_html_e('Maximum compression', 'wp-optimize');?></span>
65 <input id="custom_compression_slider" class="compression_level" data-max="<?php esc_attr_e('Maximum Compression', 'wp-optimize'); ?>" type="range" step="5" value="<?php echo esc_attr($smush_options['image_quality']); ?>" min="65" max="90" list="number" />
66 <datalist id="number">
67 <option value="65"/>
68 <option value="70"/>
69 <option value="75"/>
70 <option value="80"/>
71 <option value="85"/>
72 <option value="90"/>
73 </datalist>
74 <span class="slider-end"><?php esc_html_e('Best image quality', 'wp-optimize');?></span>
75 </div>
76 <p><?php esc_html_e('Not sure what to choose?', 'wp-optimize'); ?> <?php $wp_optimize->wp_optimize_url('https://getwpo.com/lossy-vs-lossless-image-compression-a-guide-to-the-trade-off-between-image-size-and-quality/', __('Read our article "Lossy vs Lossless image compression"', 'wp-optimize')); ?></p>
77
78 <?php if (WPO_USE_WEBP_CONVERSION) : ?>
79 <h3><?php esc_html_e('WebP conversion', 'wp-optimize');?></h3>
80
81 <?php if ($does_server_allows_local_webp_conversion) : ?>
82 <input type="checkbox" id="enable_webp_conversion" name="webp_conversion" <?php checked($smush_options['webp_conversion']); ?> class="smush-options webp_conversion">
83 <label for="enable_webp_conversion"><?php esc_html_e('Create WebP version of image', 'wp-optimize');?></label>
84 <span tabindex="0" data-tooltip="<?php esc_attr_e('Creates WebP image format and serves it whenever possible.', 'wp-optimize');?>"><span class="dashicons dashicons-editor-help"></span> </span>
85 <br>
86
87 <?php
88 $converters = WP_Optimize()->get_options()->get_option('webp_converters', false);
89 if ($smush_options['webp_conversion'] && !empty($converters)) {
90 printf('<p>%1$s <strong>%2$s</strong></p>', esc_html__('Available WebP conversion tools:', 'wp-optimize'), esc_html(implode(', ', $converters)));
91 }
92 ?>
93 <?php else: ?>
94 <?php printf('<p>%1$s</p>', esc_html__('Note: Local WebP conversion tools are not allowed on your server.', 'wp-optimize')); ?>
95 <?php endif; ?>
96
97 <?php endif; ?>
98 </div>
99 <button type="button" class="button button-link wpo-toggle-advanced-options"><span class="text"><span class="dashicons dashicons-arrow-down-alt2"></span> <span class="wpo-toggle-advanced-options__text-show"><?php esc_html_e('Show advanced options', 'wp-optimize');?></span><span class="wpo-toggle-advanced-options__text-hide"><?php esc_html_e('Hide advanced options', 'wp-optimize');?></span></span></button>
100 <div class="smush-advanced wpo-advanced-options">
101 <?php if ($does_server_allows_local_webp_conversion && !empty($converters)) : ?>
102 <button type="button" id="wpo_reset_webp_serving_method" class="wpo_primary_small button"><?php esc_html_e('Reset WebP serving method', 'wp-optimize'); ?></button>
103 <span id="wpo_reset_webp_serving_method_done" class="display-none"><span class="dashicons dashicons-yes"></span> <?php esc_html_e('The WebP serving method has been reset', 'wp-optimize');?></span>
104 <?php endif; ?>
105 <div class="compression_server">
106 <h3><?php esc_html_e('Compression service', 'wp-optimize');?></h3>
107 <div> <input type="radio" name="compression_server" id="resmushit" value="resmushit" <?php checked($smush_options['compression_server'], 'resmushit'); ?> >
108 <label for="resmushit">
109 <h4><?php esc_html_e('reSmush.it', 'wp-optimize');?></h4>
110 <p><?php esc_html_e('Can keep EXIF data', 'wp-optimize');?></p>
111 <small><?php esc_html_e('Service provided by reSmush.it', 'wp-optimize'); ?></small>
112 </label>
113 </div>
114 </div>
115 <br>
116 <h3><?php esc_html_e('More options', 'wp-optimize');?></h3>
117 <div class="image_options">
118 <input type="checkbox" id="smush-preserve-exif" class="smush-options preserve_exif" <?php checked($smush_options['preserve_exif']); ?> >
119 <label for="smush-preserve-exif" class="smush-options preserve_exif"><?php esc_html_e('Preserve EXIF data', 'wp-optimize');?></label>
120 <br>
121 <input type="checkbox" id="smush-backup-original" class="smush-options" <?php checked($smush_options['back_up_original']); ?> >
122 <label for="smush-backup-original"><?php esc_html_e('Backup original images', 'wp-optimize');?></label>
123 <span tabindex="0" data-tooltip="<?php esc_attr_e('The original images are stored alongside the compressed images, you can visit the edit screen of the individual images in the Media Library to restore them.', 'wp-optimize');?>"><span class="dashicons dashicons-editor-help"></span> </span>
124 <br>
125 <input type="checkbox" id="smush-backup-delete" class="smush-options" <?php checked($smush_options['back_up_delete_after']); ?> >
126 <label for="smush-backup-delete"><?php esc_html_e('Automatically delete image backups after', 'wp-optimize');?><input id="smush-backup-delete-days" type="number" min="1" value="<?php echo (0 !== intval($smush_options['back_up_delete_after_days'])) ? intval($smush_options['back_up_delete_after_days']) : 50; ?>"><?php esc_html_e('days', 'wp-optimize');?></label><label> — <?php esc_html_e('or', 'wp-optimize'); ?></label> <button type="button" id="wpo_smush_delete_backup_btn" class="wpo_primary_small button"><?php esc_html_e('Delete all backup images now', 'wp-optimize'); ?></button>
127 <img id="wpo_smush_delete_backup_spinner" class="display-none" src="<?php echo esc_url(admin_url('images/spinner-2x.gif')); ?>" alt="...">
128 <span id="wpo_smush_delete_backup_done" class="dashicons dashicons-yes display-none save-done"></span>
129 <br>
130 <button type="button" id="wpo_smush_mark_all_as_uncompressed_btn" class="wpo_primary_small button"><?php esc_html_e('Mark all images as uncompressed', 'wp-optimize'); ?></button>
131 <br>
132 <br>
133 <button type="button" id="wpo_smush_restore_all_compressed_images_btn" class="wpo_primary_small button"><?php esc_html_e('Restore all compressed images', 'wp-optimize'); ?></button>
134 <?php
135 $message = __('Only the original image will be restored.', 'wp-optimize');
136 $message .= ' ';
137 $message .= __('In order to restore the other sizes, you should use a plugin such as "Regenerate Thumbnails".', 'wp-optimize');
138 ?>
139 <span tabindex="0" data-tooltip="<?php echo esc_attr($message);?>"><span class="dashicons dashicons-editor-help"></span> </span>
140 </div>
141 </div>
142 <div class="save-options">
143 <img id="wpo_smush_images_save_options_spinner" class="display-none" src="<?php echo esc_url(admin_url('images/spinner-2x.gif')); ?>" alt="...">
144 <span id="wpo_smush_images_save_options_done" class="display-none"><span class="dashicons dashicons-yes"></span> <?php esc_html_e('Saved options', 'wp-optimize');?></span>
145 <span id="wpo_smush_images_save_options_fail" class="display-none"><span class="dashicons dashicons-no"></span> <?php esc_html_e('Failed to save options', 'wp-optimize');?></span>
146 </div>
147 </div>
148
149 <div class="uncompressed-images">
150 <h3><?php esc_html_e('Uncompressed images', 'wp-optimize');?></h3>
151 <?php if (is_multisite()) : ?>
152 <div id="wpo_uncompressed_images_sites_select_container">
153 <label for="wpo_uncompressed_images_sites_select"><?php esc_html_e('Select site', 'wp-optimize');?> </label>
154 <select id="wpo_uncompressed_images_sites_select">
155 <?php foreach ($sites as $site) : ?>
156 <option value="<?php echo esc_attr($site->blog_id); ?>"><?php echo esc_html($site->domain . $site->path); ?></option>
157 <?php endforeach; ?>
158 </select>
159 </div>
160 <?php endif; ?>
161 <div class="wpo_smush_images_buttons_wrap">
162 <div class="smush-select-actions. align-left">
163 <a href="javascript:;" id="wpo_smush_images_select_all"><?php esc_html_e('Select all', 'wp-optimize');?></a> /
164 <a href="javascript:;" id="wpo_smush_images_select_none"><?php esc_html_e('Select none', 'wp-optimize');?></a>
165 </div>
166 <div class="smush-refresh-icon align-right">
167 <a href="javascript:;" id="wpo_smush_images_refresh" class="wpo-refresh-button"><?php esc_html_e('Refresh image list', 'wp-optimize');?>
168 <span class="dashicons dashicons-image-rotate"></span>
169 </a>
170 <img class="wpo_smush_images_loader" width="16" height="16" src="<?php echo esc_url(admin_url('/images/spinner-2x.gif')); ?>" />
171 </div>
172 </div>
173 <div id="wpo_smush_images_grid"></div>
174 <div class="smush-actions">
175 <input type="button" id="wpo_smush_images_btn" class="wpo_primary_small button-primary align-left" value="<?php esc_attr_e('Compress the selected images', 'wp-optimize'); ?>" />
176 <input type="button" id="wpo_smush_mark_as_compressed" class="wpo_primary_small button align-left" value="<?php esc_attr_e('Mark as already compressed', 'wp-optimize'); ?>" />
177 <input type="button" id="wpo_smush_get_logs" class="wpo_smush_get_logs wpo_primary_small button-primary align-right" value="<?php esc_attr_e('View logs', 'wp-optimize'); ?>" />
178 </div>
179 </div>
180 </div>
181