Optimus – WordPress Image Optimizer - Version 1.4.7

Version Description

  • Improved the bulk optimizer
Download this release

Release Info

Developer keycdn
Plugin Icon 128x128 Optimus – WordPress Image Optimizer
Version 1.4.7
Comparing to
See all releases

Code changes from version 1.4.6 to 1.4.7

inc/optimus_management.class.php CHANGED
@@ -66,21 +66,42 @@ class Optimus_Management
66
  * Bulk optimizer page
67
  *
68
  * @since 1.3.8
69
- * @change 1.3.8
70
  *
71
  */
72
 
73
  public static function bulk_optimizer_page() {
74
  global $wpdb;
75
 
 
 
 
 
 
 
 
 
 
 
 
76
  if (!empty($_GET['ids'])) {
77
  $ids = implode(',', array_map('intval', explode('-', $_GET['ids'])));
78
- $condition = "AND ID IN($ids)";
79
  } else {
80
- $condition = "";
81
  }
82
 
83
- $query = "SELECT ID, post_title, post_mime_type FROM $wpdb->posts WHERE post_type = 'attachment' AND post_mime_type LIKE 'image/%' $condition ORDER BY ID DESC";
 
 
 
 
 
 
 
 
 
 
84
  $assets = $wpdb->get_results($query, ARRAY_A);
85
  $count = count($assets);
86
 
66
  * Bulk optimizer page
67
  *
68
  * @since 1.3.8
69
+ * @change 1.4.7
70
  *
71
  */
72
 
73
  public static function bulk_optimizer_page() {
74
  global $wpdb;
75
 
76
+ /* Get plugin options */
77
+ $options = Optimus::get_options();
78
+
79
+ /* Check if images are already optimized */
80
+ if ( $options['webp_convert'] ) {
81
+ $optimus_query = '%optimus%webp";i:1%';
82
+ } else {
83
+ $optimus_query = '%optimus%';
84
+ }
85
+
86
+ /* Check if specific IDs are selected */
87
  if (!empty($_GET['ids'])) {
88
  $ids = implode(',', array_map('intval', explode('-', $_GET['ids'])));
89
+ $id_query = "AND ID IN($ids)";
90
  } else {
91
+ $id_query = "";
92
  }
93
 
94
+ /* Image query */
95
+ $query = "SELECT $wpdb->posts.ID, $wpdb->posts.post_title, $wpdb->posts.post_mime_type
96
+ FROM $wpdb->posts, $wpdb->postmeta
97
+ WHERE $wpdb->posts.ID = $wpdb->postmeta.post_id
98
+ AND $wpdb->posts.post_type = 'attachment'
99
+ AND $wpdb->posts.post_mime_type LIKE 'image/%'
100
+ AND $wpdb->postmeta.meta_key = '_wp_attachment_metadata'
101
+ AND $wpdb->postmeta.meta_value NOT LIKE '$optimus_query'
102
+ $id_query
103
+ ORDER BY $wpdb->posts.ID DESC";
104
+
105
  $assets = $wpdb->get_results($query, ARRAY_A);
106
  $count = count($assets);
107
 
inc/optimus_request.class.php CHANGED
@@ -86,7 +86,7 @@ class Optimus_Request
86
  * Image optimization for wp retina 2x
87
  *
88
  * @since 1.4.6
89
- * @change 1.4.6
90
  *
91
  * @param integer $attachment_id Attachment ID
92
  * @param string $upload_path_file_retina Retina file path
@@ -107,15 +107,6 @@ class Optimus_Request
107
  // get optimus plugin options
108
  $options = Optimus::get_options();
109
 
110
- // set cURL options
111
- add_action(
112
- 'http_api_curl',
113
- array(
114
- __CLASS__,
115
- 'set_curl_options'
116
- )
117
- );
118
-
119
  // set https scheme
120
  if ( $options['secure_transport'] && Optimus_HQ::is_unlocked() ) {
121
  self::$_remote_scheme = 'https';
@@ -148,7 +139,7 @@ class Optimus_Request
148
  * Build optimization for a upload image including previews
149
  *
150
  * @since 0.0.1
151
- * @change 1.4.2
152
  *
153
  * @param array $upload_data Incoming upload information
154
  * @param integer $attachment_id Attachment ID
@@ -224,15 +215,6 @@ class Optimus_Request
224
  );
225
  }
226
 
227
- /* Set cURL options */
228
- add_action(
229
- 'http_api_curl',
230
- array(
231
- __CLASS__,
232
- 'set_curl_options'
233
- )
234
- );
235
-
236
  /* Set https scheme */
237
  if ( $options['secure_transport'] && Optimus_HQ::is_unlocked() ) {
238
  self::$_remote_scheme = 'https';
@@ -291,13 +273,15 @@ class Optimus_Request
291
  )
292
  );
293
 
294
- /* get retina image [WP Retina 2x] */
295
  if ( function_exists( 'wr2x_get_retina' ) ) {
296
  $upload_path_file_retina = wr2x_get_retina( $upload_path_file );
 
 
297
  }
298
 
299
  /* Request: Optimize retina image [WP Retina 2x] */
300
- if ( $upload_path_file_retina ) {
301
  self::_do_image_action(
302
  $upload_path_file_retina,
303
  array(
@@ -326,8 +310,8 @@ class Optimus_Request
326
  )
327
  );
328
 
329
- /* convert retina image to webp [WP Retina 2x] */
330
- if ( $upload_path_file_retina ) {
331
  self::_do_image_action(
332
  $upload_path_file_retina,
333
  array(
@@ -463,34 +447,10 @@ class Optimus_Request
463
  ),
464
  array(
465
  'body' => file_get_contents($file),
466
- 'timeout' => 180
467
- )
468
- );
469
- }
470
-
471
-
472
- /**
473
- * Set cURL request options
474
- *
475
- * @since 1.1.9
476
- * @change 1.3.0
477
- *
478
- * @param object $handle cURL handle with default options
479
- * @return object $handle cURL handle with added options
480
- */
481
-
482
- public static function set_curl_options(&$handle)
483
- {
484
- curl_setopt(
485
- $handle,
486
- CURLOPT_BINARYTRANSFER,
487
- true
488
- );
489
- curl_setopt(
490
- $handle,
491
- CURLOPT_HTTPHEADER,
492
- array(
493
- 'Accept: image/*'
494
  )
495
  );
496
  }
86
  * Image optimization for wp retina 2x
87
  *
88
  * @since 1.4.6
89
+ * @change 1.4.7
90
  *
91
  * @param integer $attachment_id Attachment ID
92
  * @param string $upload_path_file_retina Retina file path
107
  // get optimus plugin options
108
  $options = Optimus::get_options();
109
 
 
 
 
 
 
 
 
 
 
110
  // set https scheme
111
  if ( $options['secure_transport'] && Optimus_HQ::is_unlocked() ) {
112
  self::$_remote_scheme = 'https';
139
  * Build optimization for a upload image including previews
140
  *
141
  * @since 0.0.1
142
+ * @change 1.4.7
143
  *
144
  * @param array $upload_data Incoming upload information
145
  * @param integer $attachment_id Attachment ID
215
  );
216
  }
217
 
 
 
 
 
 
 
 
 
 
218
  /* Set https scheme */
219
  if ( $options['secure_transport'] && Optimus_HQ::is_unlocked() ) {
220
  self::$_remote_scheme = 'https';
273
  )
274
  );
275
 
276
+ /* Get retina image [WP Retina 2x] */
277
  if ( function_exists( 'wr2x_get_retina' ) ) {
278
  $upload_path_file_retina = wr2x_get_retina( $upload_path_file );
279
+ } else {
280
+ $upload_path_file_retina = false;
281
  }
282
 
283
  /* Request: Optimize retina image [WP Retina 2x] */
284
+ if ( ! empty($upload_path_file_retina) ) {
285
  self::_do_image_action(
286
  $upload_path_file_retina,
287
  array(
310
  )
311
  );
312
 
313
+ /* Convert retina image to webp [WP Retina 2x] */
314
+ if ( ! empty($upload_path_file_retina) ) {
315
  self::_do_image_action(
316
  $upload_path_file_retina,
317
  array(
447
  ),
448
  array(
449
  'body' => file_get_contents($file),
450
+ 'timeout' => 180,
451
+ 'headers' => array(
452
+ 'Accept' => 'image/*'
453
+ )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
454
  )
455
  );
456
  }
inc/optimus_settings.class.php CHANGED
@@ -114,7 +114,7 @@ class Optimus_Settings
114
  </p>
115
 
116
  <p class="description">
117
- <?php _e("In addition to the original image, Optimus compresses the registered image sizes in WordPress. [<a href=\"https://optimus.io/support/compression-of-thumbnail-images-in-wordpress/\" target=\"_blank\">Details</a>]", "optimus"); ?>
118
  </p>
119
  <br>
120
  <p class="description">
@@ -136,7 +136,7 @@ class Optimus_Settings
136
  </label>
137
 
138
  <p class="description">
139
- <?php _e("Optimus only compresses preview images (Thumbnails). Original images uploaded to WordPress are not affected. [<a href=\"https://optimus.io/support/optimization-of-original-images/\" target=\"_blank\">Details</a>]", "optimus"); ?>
140
  </p>
141
  </fieldset>
142
  </td>
@@ -154,7 +154,7 @@ class Optimus_Settings
154
  </label>
155
 
156
  <p class="description">
157
- <?php _e("Only <a href=\"https://optimus.io\" target=\"_blank\">Optimus HQ</a>. Active option keeps EXIF-, copyright and photo creation information in images. Size reduction is less significant. [<a href=\"https://optimus.io/support/remove-metadata-from-images/\" target=\"_blank\">Details</a>]", "optimus"); ?>
158
  </p>
159
  </fieldset>
160
  </td>
@@ -172,7 +172,7 @@ class Optimus_Settings
172
  </label>
173
 
174
  <p class="description">
175
- <?php _e("Only <a href=\"https://optimus.io\" target=\"_blank\">Optimus HQ</a>. It is recommended to use the <a href=\"https://wordpress.org/plugins/cache-enabler/\">Cache Enabler plugin</a> to integrate the WebP images. [<a href=\"https://optimus.io/support/convert-jpeg-and-png-to-webp-image-format/\" target=\"_blank\">Details</a>]", "optimus"); ?>
176
  </p>
177
  </fieldset>
178
  </td>
@@ -208,7 +208,7 @@ class Optimus_Settings
208
  </label>
209
 
210
  <p class="description">
211
- <?php _e("This setting prevents the automatic optimization during the upload process. Images need to be optimized via the Media Library later on. [<a href=\"https://optimus.io/support/image-bulk-optimization/\" target=\"_blank\">Details</a>]", "optimus"); ?>
212
  </p>
213
  </fieldset>
214
  </td>
114
  </p>
115
 
116
  <p class="description">
117
+ <?php _e("In addition to the original image, Optimus compresses the registered image sizes in WordPress. [<a href=\"https://optimus.keycdn.com/support/optimus-settings/#compression-thumbnail-images\" target=\"_blank\">Details</a>]", "optimus"); ?>
118
  </p>
119
  <br>
120
  <p class="description">
136
  </label>
137
 
138
  <p class="description">
139
+ <?php _e("Optimus only compresses preview images (Thumbnails). Original images uploaded to WordPress are not affected. [<a href=\"https://optimus.keycdn.com/support/optimus-settings/#optimization-original-images\" target=\"_blank\">Details</a>]", "optimus"); ?>
140
  </p>
141
  </fieldset>
142
  </td>
154
  </label>
155
 
156
  <p class="description">
157
+ <?php _e("Only <a href=\"https://optimus.io\" target=\"_blank\">Optimus HQ</a>. Active option keeps EXIF-, copyright and photo creation information in images. Size reduction is less significant. [<a href=\"https://optimus.keycdn.com/support/optimus-settings/#remove-metadata\" target=\"_blank\">Details</a>]", "optimus"); ?>
158
  </p>
159
  </fieldset>
160
  </td>
172
  </label>
173
 
174
  <p class="description">
175
+ <?php _e("Only <a href=\"https://optimus.io\" target=\"_blank\">Optimus HQ</a>. It is recommended to use the <a href=\"https://wordpress.org/plugins/cache-enabler/\">Cache Enabler plugin</a> to integrate the WebP images. [<a href=\"https://optimus.keycdn.com/support/optimus-settings/#convert-to-webp\" target=\"_blank\">Details</a>]", "optimus"); ?>
176
  </p>
177
  </fieldset>
178
  </td>
208
  </label>
209
 
210
  <p class="description">
211
+ <?php _e("This setting prevents the automatic optimization during the upload process. Images need to be optimized via the Media Library later on. [<a href=\"https://optimus.keycdn.com/support/image-bulk-optimization/\" target=\"_blank\">Details</a>]", "optimus"); ?>
212
  </p>
213
  </fieldset>
214
  </td>
js/scripts.js CHANGED
@@ -91,4 +91,9 @@ jQuery(document).ready(function() {
91
  jQuery('<option>').val('optimus_bulk_optimizer').text(optimusOptimize.bulkAction).appendTo('select[name="action"]')
92
  jQuery('<option>').val('optimus_bulk_optimizer').text(optimusOptimize.bulkAction).appendTo('select[name="action2"]')
93
  }
 
 
 
 
 
94
  });
91
  jQuery('<option>').val('optimus_bulk_optimizer').text(optimusOptimize.bulkAction).appendTo('select[name="action"]')
92
  jQuery('<option>').val('optimus_bulk_optimizer').text(optimusOptimize.bulkAction).appendTo('select[name="action2"]')
93
  }
94
+
95
+ var i = location.search.split('=');
96
+ if (i[0] == '?_optimus_action' && i[1] == 'rekey') {
97
+ jQuery("input[value='optimus/optimus.php']").prop('checked', true)
98
+ }
99
  });
optimus.php CHANGED
@@ -7,11 +7,11 @@ Author: KeyCDN
7
  Author URI: https://www.keycdn.com
8
  Plugin URI: https://optimus.io
9
  License: GPLv2 or later
10
- Version: 1.4.6
11
  */
12
 
13
  /*
14
- Copyright (C) 2012-2015 KeyCDN
15
 
16
  This program is free software; you can redistribute it and/or modify
17
  it under the terms of the GNU General Public License as published by
7
  Author URI: https://www.keycdn.com
8
  Plugin URI: https://optimus.io
9
  License: GPLv2 or later
10
+ Version: 1.4.7
11
  */
12
 
13
  /*
14
+ Copyright (C) 2012-2016 KeyCDN
15
 
16
  This program is free software; you can redistribute it and/or modify
17
  it under the terms of the GNU General Public License as published by
readme.txt CHANGED
@@ -2,7 +2,7 @@
2
  Contributors: keycdn
3
  Tags: images, optimize, compress, progressive, performance, png, jpeg, webp, image optimizer, wordpress image optimizer, optimize image, optimize jpg, optimize jpeg, optimize png, compress image, progressive jpeg, progressive jpg
4
  Requires at least: 3.8
5
- Tested up to: 4.5
6
  Stable tag: trunk
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -39,20 +39,20 @@ Optimus supports the conversion of images to the new [*WebP* image format](https
39
  > It is recommended to use the [WordPress Cache Enabler](https://wordpress.org/plugins/cache-enabler/) plugin to integrate the converted WebP images.
40
 
41
  = Features =
42
- * [Progressive JPEGs](https://optimus.io/support/progressive-jpegs/)
43
  * Reduction of file size *without loss in quality*
44
  * Optimization of all preview images of a photo
45
  * No adjustments to code necessary
46
  * Optional: no removal of EXIF and IPTC metadata
47
  * Optional: HTTPS connection for the image transfer (Optimus HQ)
48
- * Optional: [conversion to the WebP](https://optimus.io/support/convert-jpeg-and-png-to-webp-image-format/) image format (Optimus HQ)
49
- * Optional: Disable automatic optimizaion during upload process
50
  * Optimized for WordPress Mobile Apps and Windows Live Writer
51
  * More advantageous PageSpeed, influencing the Ranking Factor
52
  * Faster load times for blog pages
53
  * Support for WooCommerce
54
  * WordPress multisite-support
55
- * [Bulk optimization](https://optimus.io/support/image-bulk-optimization/) (optimize existing images)
56
  * Optimize images generated by [WP Retina 2x](https://wordpress.org/plugins/wp-retina-2x/) (incl. conversion to WebP)
57
 
58
 
@@ -88,6 +88,9 @@ Optimus supports the conversion of images to the new [*WebP* image format](https
88
 
89
  == Changelog ==
90
 
 
 
 
91
  = 1.4.6 =
92
  * Added support for WP Retina 2x
93
 
2
  Contributors: keycdn
3
  Tags: images, optimize, compress, progressive, performance, png, jpeg, webp, image optimizer, wordpress image optimizer, optimize image, optimize jpg, optimize jpeg, optimize png, compress image, progressive jpeg, progressive jpg
4
  Requires at least: 3.8
5
+ Tested up to: 4.6
6
  Stable tag: trunk
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
39
  > It is recommended to use the [WordPress Cache Enabler](https://wordpress.org/plugins/cache-enabler/) plugin to integrate the converted WebP images.
40
 
41
  = Features =
42
+ * [Progressive JPEGs](https://optimus.keycdn.com/support/progressive-jpeg/)
43
  * Reduction of file size *without loss in quality*
44
  * Optimization of all preview images of a photo
45
  * No adjustments to code necessary
46
  * Optional: no removal of EXIF and IPTC metadata
47
  * Optional: HTTPS connection for the image transfer (Optimus HQ)
48
+ * Optional: [conversion to the WebP](https://optimus.keycdn.com/support/convert-jpeg-and-png-to-webp-image-format/) image format (Optimus HQ)
49
+ * Optional: Disable automatic optimization during upload process
50
  * Optimized for WordPress Mobile Apps and Windows Live Writer
51
  * More advantageous PageSpeed, influencing the Ranking Factor
52
  * Faster load times for blog pages
53
  * Support for WooCommerce
54
  * WordPress multisite-support
55
+ * [Bulk optimization](https://optimus.keycdn.com/support/image-bulk-optimization/) (optimize existing images)
56
  * Optimize images generated by [WP Retina 2x](https://wordpress.org/plugins/wp-retina-2x/) (incl. conversion to WebP)
57
 
58
 
88
 
89
  == Changelog ==
90
 
91
+ = 1.4.7 =
92
+ * Improved the bulk optimizer
93
+
94
  = 1.4.6 =
95
  * Added support for WP Retina 2x
96