Featured Image From URL - Version 4.1.6

Version Description

  • New: feedback form on plugin deactivation; enhancement: Clean Metadata (option added to the new deactivation lightbox); enhancement: WP All Import (more documentation added); fix: Auto set featured media from post content (unduly overwriting local featured images); fix: Social Tags (it was not getting the largest image size for local images); deprecated: Quick Edit Column > height.
Download this release

Release Info

Developer marceljm
Plugin Icon 128x128 Featured Image From URL
Version 4.1.6
Comparing to
See all releases

Code changes from version 4.1.5 to 4.1.6

admin/api.php CHANGED
@@ -854,10 +854,84 @@ function fifu_get_and_save_sizes_api(WP_REST_Request $request) {
854
  $response = fifu_remote_post(esc_url_raw(rest_url()) . 'featured-image-from-url/v2/save_sizes_api/', $array);
855
  }
856
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
857
  function fifu_test_execution_time() {
858
  for ($i = 0; $i <= 120; $i++) {
859
  error_log($i);
860
  sleep(1);
 
861
  }
862
  return json_encode(array());
863
  }
@@ -919,6 +993,16 @@ add_action('rest_api_init', function () {
919
  return get_transient('fifu_token_for_get_and_save_sizes_api') == $json->token;
920
  },
921
  ));
 
 
 
 
 
 
 
 
 
 
922
  register_rest_route('featured-image-from-url/v2', '/rest_url_api/', array(
923
  'methods' => ['GET', 'POST'],
924
  'callback' => 'fifu_rest_url',
854
  $response = fifu_remote_post(esc_url_raw(rest_url()) . 'featured-image-from-url/v2/save_sizes_api/', $array);
855
  }
856
 
857
+ function fifu_api_pre_deactivate(WP_REST_Request $request) {
858
+ $email = filter_var($request['email'], FILTER_SANITIZE_EMAIL);
859
+ $email = filter_var($email, FILTER_VALIDATE_EMAIL) ? $email : null;
860
+ $description = $request['description'];
861
+ $temporary = (boolean) $request['temporary'];
862
+ fifu_send_feedback($email, $description, $temporary);
863
+ fifu_db_enable_clean();
864
+ deactivate_plugins('featured-image-from-url/featured-image-from-url.php');
865
+ return json_encode(array());
866
+ }
867
+
868
+ function fifu_api_feedback(WP_REST_Request $request) {
869
+ $email = filter_var($request['email'], FILTER_SANITIZE_EMAIL);
870
+ $email = filter_var($email, FILTER_VALIDATE_EMAIL) ? $email : null;
871
+ $description = $request['description'];
872
+ $temporary = (boolean) $request['temporary'];
873
+ fifu_send_feedback($email, $description, $temporary);
874
+ return json_encode(array());
875
+ }
876
+
877
+ function fifu_send_feedback($email, $description, $temporary) {
878
+ if (!$email && !$description)
879
+ return json_encode(array());
880
+
881
+ $aux = fifu_db_get_last_image();
882
+ $image = $aux ? fifu_db_get_last_image()[0]->meta_value : null;
883
+
884
+ $array = array(
885
+ 'headers' => array('Content-Type' => 'application/json; charset=utf-8'),
886
+ 'body' => json_encode(
887
+ array(
888
+ 'email' => $email,
889
+ 'description' => $description,
890
+ 'version' => fifu_version_number(),
891
+ 'temporary' => $temporary,
892
+ 'image' => $image,
893
+ 'fifu_auto_alt' => fifu_is_on('fifu_auto_alt'),
894
+ 'fifu_cdn_content' => fifu_is_on('fifu_cdn_content'),
895
+ 'fifu_cdn_crop' => fifu_is_on('fifu_cdn_crop'),
896
+ 'fifu_cdn_social' => fifu_is_on('fifu_cdn_social'),
897
+ 'fifu_check' => fifu_is_on('fifu_check'),
898
+ 'fifu_confirm_delete_all' => fifu_is_on('fifu_confirm_delete_all'),
899
+ 'fifu_content' => fifu_is_on('fifu_content'),
900
+ 'fifu_content_cpt' => fifu_is_on('fifu_content_cpt'),
901
+ 'fifu_content_page' => fifu_is_on('fifu_content_page'),
902
+ 'fifu_decode' => fifu_is_on('fifu_decode'),
903
+ 'fifu_dynamic_alt' => fifu_is_on('fifu_dynamic_alt'),
904
+ 'fifu_enable_default_url' => fifu_is_on('fifu_enable_default_url'),
905
+ 'fifu_fake' => fifu_is_on('fifu_fake'),
906
+ 'fifu_get_first' => fifu_is_on('fifu_get_first'),
907
+ 'fifu_grid_category' => fifu_is_on('fifu_grid_category'),
908
+ 'fifu_hide_cpt' => fifu_is_on('fifu_hide_cpt'),
909
+ 'fifu_hide_page' => fifu_is_on('fifu_hide_page'),
910
+ 'fifu_hide_post' => fifu_is_on('fifu_hide_post'),
911
+ 'fifu_lazy' => fifu_is_on('fifu_lazy'),
912
+ 'fifu_ovw_first' => fifu_is_on('fifu_ovw_first'),
913
+ 'fifu_photon' => fifu_is_on('fifu_photon'),
914
+ 'fifu_pop_first' => fifu_is_on('fifu_pop_first'),
915
+ 'fifu_query_strings' => fifu_is_on('fifu_query_strings'),
916
+ 'fifu_social' => fifu_is_on('fifu_social'),
917
+ 'fifu_social_image_only' => fifu_is_on('fifu_social_image_only'),
918
+ 'fifu_wc_lbox' => fifu_is_on('fifu_wc_lbox'),
919
+ 'fifu_wc_zoom' => fifu_is_on('fifu_wc_zoom'),
920
+ )
921
+ ),
922
+ 'method' => 'POST',
923
+ 'data_format' => 'body',
924
+ 'blocking' => false,
925
+ 'timeout' => 30,
926
+ );
927
+ fifu_remote_post(FIFU_SURVEY_ADDRESS . '/deactivate/', $array);
928
+ }
929
+
930
  function fifu_test_execution_time() {
931
  for ($i = 0; $i <= 120; $i++) {
932
  error_log($i);
933
  sleep(1);
934
+ //flush();
935
  }
936
  return json_encode(array());
937
  }
993
  return get_transient('fifu_token_for_get_and_save_sizes_api') == $json->token;
994
  },
995
  ));
996
+ register_rest_route('featured-image-from-url/v2', '/pre_deactivate/', array(
997
+ 'methods' => 'POST',
998
+ 'callback' => 'fifu_api_pre_deactivate',
999
+ 'permission_callback' => 'fifu_get_private_data_permissions_check',
1000
+ ));
1001
+ register_rest_route('featured-image-from-url/v2', '/feedback/', array(
1002
+ 'methods' => 'POST',
1003
+ 'callback' => 'fifu_api_feedback',
1004
+ 'permission_callback' => 'fifu_get_private_data_permissions_check',
1005
+ ));
1006
  register_rest_route('featured-image-from-url/v2', '/rest_url_api/', array(
1007
  'methods' => ['GET', 'POST'],
1008
  'callback' => 'fifu_rest_url',
admin/cli-commands.php CHANGED
@@ -4,13 +4,9 @@ class fifu_cli extends WP_CLI_Command {
4
 
5
  // admin
6
 
7
- function column($args) {
8
- update_option('fifu_column_height', $args[0], 'no');
9
- //WP_CLI::line($args[0]);
10
- }
11
-
12
  function reset() {
13
  fifu_reset_settings();
 
14
  }
15
 
16
  // automatic
4
 
5
  // admin
6
 
 
 
 
 
 
7
  function reset() {
8
  fifu_reset_settings();
9
+ //WP_CLI::line($args[0]);
10
  }
11
 
12
  // automatic
admin/column.php CHANGED
@@ -1,5 +1,7 @@
1
  <?php
2
 
 
 
3
  add_action('admin_init', 'fifu_column');
4
  add_filter('admin_head', 'fifu_admin_add_css_js');
5
 
@@ -41,7 +43,7 @@ function fifu_admin_add_css_js() {
41
 
42
  function fifu_column_head($default) {
43
  $fifu = fifu_get_strings_quick_edit();
44
- $height = get_option('fifu_column_height');
45
  $default['featured_image'] = "<center style='max-width:{$height}px;min-width:{$height}px'><span class='dashicons dashicons-camera' style='font-size:20px; cursor:help;' title='{$fifu['tip']['column']()}'></span><div style='display:none'>FIFU</div></center>";
46
  return $default;
47
  }
@@ -49,7 +51,7 @@ function fifu_column_head($default) {
49
  function fifu_ctgr_column_content($internal_image, $column, $term_id) {
50
  if ($column == 'featured_image') {
51
  $border = '';
52
- $height = get_option('fifu_column_height');
53
  $width = $height * 1.;
54
 
55
  $is_ctgr = true;
@@ -71,7 +73,7 @@ function fifu_ctgr_column_content($internal_image, $column, $term_id) {
71
  function fifu_column_content($column, $post_id) {
72
  if ($column == 'featured_image') {
73
  $border = '';
74
- $height = get_option('fifu_column_height');
75
  $width = $height * 1.;
76
 
77
  $is_ctgr = false;
@@ -99,7 +101,7 @@ function fifu_optimized_column_image($url) {
99
  }
100
 
101
  if (fifu_is_on('fifu_photon')) {
102
- $height = get_option('fifu_column_height');
103
  return fifu_jetpack_photon_url($url, fifu_get_photon_args($height, $height));
104
  }
105
 
1
  <?php
2
 
3
+ define('FIFU_COLUMN_HEIGHT', 40);
4
+
5
  add_action('admin_init', 'fifu_column');
6
  add_filter('admin_head', 'fifu_admin_add_css_js');
7
 
43
 
44
  function fifu_column_head($default) {
45
  $fifu = fifu_get_strings_quick_edit();
46
+ $height = FIFU_COLUMN_HEIGHT;
47
  $default['featured_image'] = "<center style='max-width:{$height}px;min-width:{$height}px'><span class='dashicons dashicons-camera' style='font-size:20px; cursor:help;' title='{$fifu['tip']['column']()}'></span><div style='display:none'>FIFU</div></center>";
48
  return $default;
49
  }
51
  function fifu_ctgr_column_content($internal_image, $column, $term_id) {
52
  if ($column == 'featured_image') {
53
  $border = '';
54
+ $height = FIFU_COLUMN_HEIGHT;
55
  $width = $height * 1.;
56
 
57
  $is_ctgr = true;
73
  function fifu_column_content($column, $post_id) {
74
  if ($column == 'featured_image') {
75
  $border = '';
76
+ $height = FIFU_COLUMN_HEIGHT;
77
  $width = $height * 1.;
78
 
79
  $is_ctgr = false;
101
  }
102
 
103
  if (fifu_is_on('fifu_photon')) {
104
+ $height = FIFU_COLUMN_HEIGHT;
105
  return fifu_jetpack_photon_url($url, fifu_get_photon_args($height, $height));
106
  }
107
 
admin/db.php CHANGED
@@ -317,6 +317,16 @@ class FifuDb {
317
  );
318
  }
319
 
 
 
 
 
 
 
 
 
 
 
320
  // get attachments without post
321
  function get_attachments_without_post($post_id) {
322
  $result = $this->wpdb->get_results("
@@ -1570,6 +1580,11 @@ function fifu_db_get_last($meta_key) {
1570
  return $db->get_last($meta_key);
1571
  }
1572
 
 
 
 
 
 
1573
  /* wordpress importer */
1574
 
1575
  function fifu_db_delete_thumbnail_id_without_attachment() {
317
  );
318
  }
319
 
320
+ function get_last_image() {
321
+ return $this->wpdb->get_results("
322
+ SELECT pm.meta_value
323
+ FROM " . $this->postmeta . " pm
324
+ WHERE pm.meta_key = 'fifu_image_url'
325
+ ORDER BY pm.meta_id DESC
326
+ LIMIT 1"
327
+ );
328
+ }
329
+
330
  // get attachments without post
331
  function get_attachments_without_post($post_id) {
332
  $result = $this->wpdb->get_results("
1580
  return $db->get_last($meta_key);
1581
  }
1582
 
1583
+ function fifu_db_get_last_image() {
1584
+ $db = new FifuDb();
1585
+ return $db->get_last_image();
1586
+ }
1587
+
1588
  /* wordpress importer */
1589
 
1590
  function fifu_db_delete_thumbnail_id_without_attachment() {
admin/html/menu.html CHANGED
@@ -28,22 +28,6 @@
28
  <br>
29
 
30
  <div id="tabs-k">
31
- <div class="box">
32
- <h2><?php $fifu['title']['column']() ?></h2>
33
- <div class="greybox">
34
- <?php $fifu['column']['desc']() ?>
35
- </div>
36
- <br>
37
- <form
38
- id="fifu_form_column"
39
- action="javascript:void(0)"
40
- method="post">
41
- <?php wp_nonce_field(FIFU_ACTION_SETTINGS, 'nonce_fifu_form_column'); ?>
42
- <input id="fifu_input_column_height" type="text" name="fifu_input_column_height" value="<?php echo $column_height; ?>" placeholder="<?php $fifu['detail']['eg']() ?> 64" size="4">
43
- <input type="submit" value="<?php $fifu['button']['submit']() ?>" >
44
- </form>
45
- </div>
46
-
47
  <div class="box">
48
  <h2><?php $fifu['title']['reset']() ?></h2>
49
  <div class="greybox">
@@ -117,21 +101,6 @@
117
  <b><?php $fifu['cli']['column']['eg']() ?></b>
118
  </th>
119
  </tr>
120
- <tr class="color">
121
- <th>
122
- <?php $fifu['tab']['admin']() ?>
123
- </th>
124
- <th>
125
- <?php $fifu['title']['column']() ?>
126
- </th>
127
- <th></th>
128
- <th>
129
- wp fifu column &lt;integer&gt;
130
- </th>
131
- <th>
132
- 32, 64, 128...
133
- </th>
134
- </tr>
135
  <tr class="color">
136
  <th>
137
  <?php $fifu['tab']['admin']() ?>
@@ -5845,7 +5814,7 @@
5845
  <h3>How NOT to configure WP All Import</h3>
5846
  <table style="width:100%;text-align:left">
5847
  <tr class="color">
5848
- <th>
5849
  <b>Section</b>
5850
  </th>
5851
  <th>
@@ -5876,6 +5845,22 @@
5876
  DON'T add FIFU custom fields
5877
  </th>
5878
  </tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5879
  </table>
5880
  <br>
5881
  <hr>
28
  <br>
29
 
30
  <div id="tabs-k">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  <div class="box">
32
  <h2><?php $fifu['title']['reset']() ?></h2>
33
  <div class="greybox">
101
  <b><?php $fifu['cli']['column']['eg']() ?></b>
102
  </th>
103
  </tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
104
  <tr class="color">
105
  <th>
106
  <?php $fifu['tab']['admin']() ?>
5814
  <h3>How NOT to configure WP All Import</h3>
5815
  <table style="width:100%;text-align:left">
5816
  <tr class="color">
5817
+ <th style="width:15%">
5818
  <b>Section</b>
5819
  </th>
5820
  <th>
5845
  DON'T add FIFU custom fields
5846
  </th>
5847
  </tr>
5848
+ <tr class="color">
5849
+ <th>
5850
+ Record Matching
5851
+ </th>
5852
+ <th>
5853
+ DON'T check "Update existing products with the data in your file > Update all data".
5854
+ </th>
5855
+ </tr>
5856
+ <tr class="color">
5857
+ <th>
5858
+ Record Matching
5859
+ </th>
5860
+ <th>
5861
+ DON'T check "Update existing products with the data in your file > Choose which data to update > Images > Update all images".
5862
+ </th>
5863
+ </tr>
5864
  </table>
5865
  <br>
5866
  <hr>
admin/html/support-data.html CHANGED
@@ -2,7 +2,7 @@
2
 
3
  <div class="header-box">
4
  <h1 style="color:white;padding-left:20px"><span class="dashicons dashicons-info" style="font-size:30px"></span><span style="padding-left:20px"><?php _e('Status') ?></span></h1>
5
- <button id="fifu-clipboard" style="width:150px;float:right;height:50%;position:relative;top:12px;left:-10px">Copy to clipboard</button>
6
  </div>
7
 
8
  <div id="tabs-top" style="float:left">
@@ -29,7 +29,6 @@ fifu_cdn_content:<?php echo $enable_cdn_content ?>;
29
  fifu_cdn_crop:<?php echo $enable_cdn_crop ?>;
30
  fifu_cdn_social:<?php echo $enable_cdn_social ?>;
31
  fifu_check:<?php echo $enable_check ?>;
32
- fifu_column_height:<?php echo $column_height ?>;
33
  fifu_confirm_delete_all:<?php echo $enable_confirm_delete_all ?>;
34
  fifu_confirm_delete_all_time:<?php echo $enable_confirm_delete_all_time ?>;
35
  fifu_content:<?php echo $enable_content ?>;
2
 
3
  <div class="header-box">
4
  <h1 style="color:white;padding-left:20px"><span class="dashicons dashicons-info" style="font-size:30px"></span><span style="padding-left:20px"><?php _e('Status') ?></span></h1>
5
+ <button id="fifu-clipboard" style="width:150px;float:right;position:absolute;left:870px;top:40px;">Copy to clipboard</button>
6
  </div>
7
 
8
  <div id="tabs-top" style="float:left">
29
  fifu_cdn_crop:<?php echo $enable_cdn_crop ?>;
30
  fifu_cdn_social:<?php echo $enable_cdn_social ?>;
31
  fifu_check:<?php echo $enable_check ?>;
 
32
  fifu_confirm_delete_all:<?php echo $enable_confirm_delete_all ?>;
33
  fifu_confirm_delete_all_time:<?php echo $enable_confirm_delete_all_time ?>;
34
  fifu_content:<?php echo $enable_content ?>;
admin/html/troubleshooting.html CHANGED
@@ -9,6 +9,22 @@
9
  <div id="tabs-top" style="float:left">
10
  <ul>
11
  <div id="tabs-t" style="padding:1em 1.4em; position: relative; top: -25px;">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  <div class="box">
13
  <table>
14
  <tr>
@@ -18,7 +34,7 @@
18
  </tr>
19
  </table>
20
  <div class="greybox" style="position: relative; top: -10px">
21
- "Replace Not Found Image" nor working:<br>
22
  1) disable "Theme Settings > Performance > Lazy loading > Lazy loading for images"<br>
23
  </div>
24
  </div>
9
  <div id="tabs-top" style="float:left">
10
  <ul>
11
  <div id="tabs-t" style="padding:1em 1.4em; position: relative; top: -25px;">
12
+ <div class="box">
13
+ <table>
14
+ <tr>
15
+ <td style="border-bottom:none">2022-10-11</td>
16
+ <td style="border-bottom:none"><h3> Elementor</h3></td>
17
+ <td style="border-bottom:none">plugin</td>
18
+ </tr>
19
+ </table>
20
+ <div class="greybox" style="position: relative; top: -10px">
21
+ "Archive Products" widget displays a small category image when FIFU > Settings > Performance > Lazy Load is enabled:<br>
22
+ 1) access "Appearance > your theme > Customize > Additional CSS";<br>
23
+ 2) add:<br>
24
+ &nbsp;&nbsp;&nbsp;&nbsp;li.product-category>a{width:100%;}<br>
25
+ 3) publish.
26
+ </div>
27
+ </div>
28
  <div class="box">
29
  <table>
30
  <tr>
34
  </tr>
35
  </table>
36
  <div class="greybox" style="position: relative; top: -10px">
37
+ "Replace Not Found Image" not working:<br>
38
  1) disable "Theme Settings > Performance > Lazy loading > Lazy loading for images"<br>
39
  </div>
40
  </div>
admin/menu.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- define('FIFU_SETTINGS', serialize(array('fifu_social', 'fifu_social_image_only', 'fifu_skip', 'fifu_lazy', 'fifu_photon', 'fifu_cdn_social', 'fifu_cdn_crop', 'fifu_cdn_content', 'fifu_reset', 'fifu_content', 'fifu_content_page', 'fifu_content_cpt', 'fifu_enable_default_url', 'fifu_spinner_db', 'fifu_spinner_nth', 'fifu_fake', 'fifu_default_url', 'fifu_default_cpt', 'fifu_wc_lbox', 'fifu_wc_zoom', 'fifu_hide_page', 'fifu_hide_post', 'fifu_hide_cpt', 'fifu_get_first', 'fifu_pop_first', 'fifu_ovw_first', 'fifu_query_strings', 'fifu_confirm_delete_all', 'fifu_run_delete_all', 'fifu_column_height', 'fifu_decode', 'fifu_check', 'fifu_grid_category', 'fifu_auto_alt', 'fifu_dynamic_alt', 'fifu_data_clean')));
4
  define('FIFU_ACTION_SETTINGS', '/wp-admin/admin.php?page=featured-image-from-url');
5
 
6
  define('FIFU_SLUG', 'featured-image-from-url');
@@ -130,7 +130,6 @@ function fifu_support_data() {
130
  $enable_confirm_delete_all_time = get_option('fifu_confirm_delete_all_time');
131
  $enable_run_delete_all = get_option('fifu_run_delete_all');
132
  $enable_run_delete_all_time = get_option('fifu_run_delete_all_time');
133
- $column_height = get_option('fifu_column_height');
134
  $enable_decode = get_option('fifu_decode');
135
  $enable_check = get_option('fifu_check');
136
  $enable_grid_category = get_option('fifu_grid_category');
@@ -190,7 +189,6 @@ function fifu_get_menu_html() {
190
  $enable_confirm_delete_all_time = get_option('fifu_confirm_delete_all_time');
191
  $enable_run_delete_all = get_option('fifu_run_delete_all');
192
  $enable_run_delete_all_time = get_option('fifu_run_delete_all_time');
193
- $column_height = get_option('fifu_column_height');
194
  $enable_decode = get_option('fifu_decode');
195
  $enable_check = get_option('fifu_check');
196
  $enable_grid_category = get_option('fifu_grid_category');
@@ -243,7 +241,6 @@ function fifu_get_setting($type) {
243
  $arr1 = array('fifu_spinner_nth');
244
  $arrEmpty = array('fifu_default_url', 'fifu_skip');
245
  $arrDefaultType = array('fifu_default_cpt');
246
- $arr40 = array('fifu_column_height');
247
  $arr1000 = array('fifu_spinner_db');
248
  $arrOn = array('fifu_wc_zoom', 'fifu_wc_lbox');
249
  $arrOnNo = array('fifu_fake', 'fifu_social');
@@ -256,8 +253,6 @@ function fifu_get_setting($type) {
256
  update_option($type, 1);
257
  else if (in_array($type, $arrDefaultType))
258
  update_option($type, "post,page,product", 'no');
259
- else if (in_array($type, $arr40))
260
- update_option($type, "40", 'no');
261
  else if (in_array($type, $arr1000))
262
  update_option($type, 1000, 'no');
263
  else if (in_array($type, $arrOn))
@@ -359,9 +354,6 @@ function fifu_update_menu_options() {
359
  if (fifu_is_valid_nonce('nonce_fifu_form_run_delete_all'))
360
  fifu_update_option('fifu_input_run_delete_all', 'fifu_run_delete_all');
361
 
362
- if (fifu_is_valid_nonce('nonce_fifu_form_column'))
363
- fifu_update_option('fifu_input_column_height', 'fifu_column_height');
364
-
365
  if (fifu_is_valid_nonce('nonce_fifu_form_decode'))
366
  fifu_update_option('fifu_input_decode', 'fifu_decode');
367
 
@@ -418,7 +410,7 @@ function fifu_update_option($input, $field) {
418
  return;
419
  }
420
 
421
- $arr_int = array('fifu_column_height', 'fifu_fake_created', 'fifu_spinner_db', 'fifu_spinner_nth');
422
  if (in_array($field, $arr_int)) {
423
  if (filter_var($value, FILTER_VALIDATE_INT))
424
  update_option($field, $value);
1
  <?php
2
 
3
+ define('FIFU_SETTINGS', serialize(array('fifu_social', 'fifu_social_image_only', 'fifu_skip', 'fifu_lazy', 'fifu_photon', 'fifu_cdn_social', 'fifu_cdn_crop', 'fifu_cdn_content', 'fifu_reset', 'fifu_content', 'fifu_content_page', 'fifu_content_cpt', 'fifu_enable_default_url', 'fifu_spinner_db', 'fifu_spinner_nth', 'fifu_fake', 'fifu_default_url', 'fifu_default_cpt', 'fifu_wc_lbox', 'fifu_wc_zoom', 'fifu_hide_page', 'fifu_hide_post', 'fifu_hide_cpt', 'fifu_get_first', 'fifu_pop_first', 'fifu_ovw_first', 'fifu_query_strings', 'fifu_confirm_delete_all', 'fifu_run_delete_all', 'fifu_decode', 'fifu_check', 'fifu_grid_category', 'fifu_auto_alt', 'fifu_dynamic_alt', 'fifu_data_clean')));
4
  define('FIFU_ACTION_SETTINGS', '/wp-admin/admin.php?page=featured-image-from-url');
5
 
6
  define('FIFU_SLUG', 'featured-image-from-url');
130
  $enable_confirm_delete_all_time = get_option('fifu_confirm_delete_all_time');
131
  $enable_run_delete_all = get_option('fifu_run_delete_all');
132
  $enable_run_delete_all_time = get_option('fifu_run_delete_all_time');
 
133
  $enable_decode = get_option('fifu_decode');
134
  $enable_check = get_option('fifu_check');
135
  $enable_grid_category = get_option('fifu_grid_category');
189
  $enable_confirm_delete_all_time = get_option('fifu_confirm_delete_all_time');
190
  $enable_run_delete_all = get_option('fifu_run_delete_all');
191
  $enable_run_delete_all_time = get_option('fifu_run_delete_all_time');
 
192
  $enable_decode = get_option('fifu_decode');
193
  $enable_check = get_option('fifu_check');
194
  $enable_grid_category = get_option('fifu_grid_category');
241
  $arr1 = array('fifu_spinner_nth');
242
  $arrEmpty = array('fifu_default_url', 'fifu_skip');
243
  $arrDefaultType = array('fifu_default_cpt');
 
244
  $arr1000 = array('fifu_spinner_db');
245
  $arrOn = array('fifu_wc_zoom', 'fifu_wc_lbox');
246
  $arrOnNo = array('fifu_fake', 'fifu_social');
253
  update_option($type, 1);
254
  else if (in_array($type, $arrDefaultType))
255
  update_option($type, "post,page,product", 'no');
 
 
256
  else if (in_array($type, $arr1000))
257
  update_option($type, 1000, 'no');
258
  else if (in_array($type, $arrOn))
354
  if (fifu_is_valid_nonce('nonce_fifu_form_run_delete_all'))
355
  fifu_update_option('fifu_input_run_delete_all', 'fifu_run_delete_all');
356
 
 
 
 
357
  if (fifu_is_valid_nonce('nonce_fifu_form_decode'))
358
  fifu_update_option('fifu_input_decode', 'fifu_decode');
359
 
410
  return;
411
  }
412
 
413
+ $arr_int = array('fifu_fake_created', 'fifu_spinner_db', 'fifu_spinner_nth');
414
  if (in_array($field, $arr_int)) {
415
  if (filter_var($value, FILTER_VALIDATE_INT))
416
  update_option($field, $value);
admin/meta-box.php CHANGED
@@ -116,6 +116,10 @@ function fifu_remove_first_image($data, $postarr) {
116
  if (!$_POST || !isset($_POST['fifu_input_url']) || isset($_POST['fifu_ignore_auto_set']))
117
  return $data;
118
 
 
 
 
 
119
  $content = $postarr['post_content'];
120
  if (!$content)
121
  return $data;
@@ -176,7 +180,7 @@ function fifu_save_properties($post_id) {
176
  $url = esc_url_raw(rtrim($_POST['fifu_input_url']));
177
  if (!$ignore) {
178
  $first = fifu_first_url_in_content($post_id);
179
- if ($first && fifu_is_on('fifu_get_first') && (!$url || fifu_is_on('fifu_ovw_first')))
180
  $url = $first;
181
  }
182
  fifu_update_or_delete($post_id, 'fifu_image_url', $url);
116
  if (!$_POST || !isset($_POST['fifu_input_url']) || isset($_POST['fifu_ignore_auto_set']))
117
  return $data;
118
 
119
+ $post_id = $postarr['ID'];
120
+ if (fifu_has_local_featured_image($post_id))
121
+ return $data;
122
+
123
  $content = $postarr['post_content'];
124
  if (!$content)
125
  return $data;
180
  $url = esc_url_raw(rtrim($_POST['fifu_input_url']));
181
  if (!$ignore) {
182
  $first = fifu_first_url_in_content($post_id);
183
+ if ($first && fifu_is_on('fifu_get_first') && (!$url || fifu_is_on('fifu_ovw_first')) && !fifu_has_local_featured_image($post_id))
184
  $url = $first;
185
  }
186
  fifu_update_or_delete($post_id, 'fifu_image_url', $url);
admin/strings.php CHANGED
@@ -210,9 +210,6 @@ function fifu_get_strings_settings() {
210
  $fifu['title']['dev'] = function () {
211
  _e("Integrate your plugin with FIFU", FIFU_SLUG);
212
  };
213
- $fifu['title']['column'] = function () {
214
- _e("Quick Edit Column", FIFU_SLUG);
215
- };
216
  $fifu['title']['reset'] = function () {
217
  _e("Reset Settings", FIFU_SLUG);
218
  };
@@ -508,11 +505,6 @@ function fifu_get_strings_settings() {
508
  _e("Product category video", FIFU_SLUG);
509
  };
510
 
511
- // column
512
- $fifu['column']['desc'] = function () {
513
- _e("The plugin adds a \"Quick Edit\" column to \"Posts > All Posts\". Below you can choose the height (px) of the images in the column. To disable that, just uncheck \"Quick Edit\" in the Screen Options.", FIFU_SLUG);
514
- };
515
-
516
  // cli
517
  $fifu['cli']['desc'] = function () {
518
  _e("Configure FIFU via command line.", FIFU_SLUG);
210
  $fifu['title']['dev'] = function () {
211
  _e("Integrate your plugin with FIFU", FIFU_SLUG);
212
  };
 
 
 
213
  $fifu['title']['reset'] = function () {
214
  _e("Reset Settings", FIFU_SLUG);
215
  };
505
  _e("Product category video", FIFU_SLUG);
506
  };
507
 
 
 
 
 
 
508
  // cli
509
  $fifu['cli']['desc'] = function () {
510
  _e("Configure FIFU via command line.", FIFU_SLUG);
featured-image-from-url.php CHANGED
@@ -4,11 +4,11 @@
4
  * Plugin Name: Featured Image from URL (FIFU)
5
  * Plugin URI: https://fifu.app/
6
  * Description: Use an external image/video/audio as featured image/video/audio of a post or WooCommerce product.
7
- * Version: 4.1.5
8
  * Author: fifu.app
9
  * Author URI: https://fifu.app/
10
  * WC requires at least: 4.0
11
- * WC tested up to: 6.9.4
12
  * Text Domain: featured-image-from-url
13
  * License: GPLv3
14
  * License URI: https://www.gnu.org/licenses/gpl-3.0.html
@@ -100,8 +100,7 @@ add_filter('network_admin_plugin_action_links_' . plugin_basename(__FILE__), 'fi
100
 
101
  function fifu_action_links($links) {
102
  $links[] = '<a href="' . esc_url(get_admin_url(null, 'admin.php?page=featured-image-from-url')) . '">' . __('Settings') . '</a>';
103
- $links[] = '<a style="color:black">' . __('Support') . ':</a>';
104
- $links[] = '<br><center style="width:200px;color:white;background-color:#02a0d2;border-radius:0px 30px">marcel@fifu.app</center>';
105
  return $links;
106
  }
107
 
@@ -111,10 +110,12 @@ function fifu_row_meta($plugin_meta, $plugin_file, $plugin_data, $status) {
111
  if (strpos($plugin_file, 'featured-image-from-url.php') !== false) {
112
  $tag_review = '<a title="If you are enjoying FIFU, please give it a 5-star rating =]" href="https://wordpress.org/support/plugin/featured-image-from-url/reviews/?filter=5" target="_blank"><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span></a>';
113
  $tag_pro = '<a href="https://fifu.app/" target="_blank"><span style="padding:5px;color:white;background-color:#1da867">Upgrade to <b>PRO</b></span></a>';
 
114
  $ref = '<a href="https://referral.fifu.app" target="_blank">Affiliate program</a>';
115
  $new_links = array(
116
- 'review' => $tag_review,
117
  'pro' => $tag_pro,
 
118
  'affiliate' => $ref,
119
  );
120
  $plugin_meta = array_merge($plugin_meta, $new_links);
@@ -122,3 +123,17 @@ function fifu_row_meta($plugin_meta, $plugin_file, $plugin_data, $status) {
122
  return $plugin_meta;
123
  }
124
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  * Plugin Name: Featured Image from URL (FIFU)
5
  * Plugin URI: https://fifu.app/
6
  * Description: Use an external image/video/audio as featured image/video/audio of a post or WooCommerce product.
7
+ * Version: 4.1.6
8
  * Author: fifu.app
9
  * Author URI: https://fifu.app/
10
  * WC requires at least: 4.0
11
+ * WC tested up to: 7.0.0
12
  * Text Domain: featured-image-from-url
13
  * License: GPLv3
14
  * License URI: https://www.gnu.org/licenses/gpl-3.0.html
100
 
101
  function fifu_action_links($links) {
102
  $links[] = '<a href="' . esc_url(get_admin_url(null, 'admin.php?page=featured-image-from-url')) . '">' . __('Settings') . '</a>';
103
+ // $links[] = '<a style="color:black">' . __('Support') . ':</a>';
 
104
  return $links;
105
  }
106
 
110
  if (strpos($plugin_file, 'featured-image-from-url.php') !== false) {
111
  $tag_review = '<a title="If you are enjoying FIFU, please give it a 5-star rating =]" href="https://wordpress.org/support/plugin/featured-image-from-url/reviews/?filter=5" target="_blank"><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span></a>';
112
  $tag_pro = '<a href="https://fifu.app/" target="_blank"><span style="padding:5px;color:white;background-color:#1da867">Upgrade to <b>PRO</b></span></a>';
113
+ $email = '<a style="width:184px;padding:5px;color:white;background-color:#02a0d2"><b>Support</b>: marcel@fifu.app</a>';
114
  $ref = '<a href="https://referral.fifu.app" target="_blank">Affiliate program</a>';
115
  $new_links = array(
116
+ 'email' => $email,
117
  'pro' => $tag_pro,
118
+ 'review' => $tag_review,
119
  'affiliate' => $ref,
120
  );
121
  $plugin_meta = array_merge($plugin_meta, $new_links);
123
  return $plugin_meta;
124
  }
125
 
126
+ function fifu_uninstall() {
127
+ wp_enqueue_script('jquery-block-ui', 'https://cdnjs.cloudflare.com/ajax/libs/jquery.blockUI/2.70/jquery.blockUI.min.js');
128
+ wp_enqueue_style('fancy-box-css', 'https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.7/jquery.fancybox.css');
129
+ wp_enqueue_script('fancy-box-js', 'https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.7/jquery.fancybox.min.js');
130
+ wp_enqueue_style('fifu-uninstall-css', plugins_url('includes/html/css/uninstall.css', __FILE__), array(), fifu_version_number());
131
+ wp_enqueue_script('fifu-uninstall-js', plugins_url('includes/html/js/uninstall.js', __FILE__), array('jquery'), fifu_version_number());
132
+ wp_localize_script('fifu-uninstall-js', 'fifuUninstallVars', [
133
+ 'restUrl' => esc_url_raw(rest_url()),
134
+ 'nonce' => wp_create_nonce('wp_rest'),
135
+ ]);
136
+ }
137
+
138
+ add_action('admin_footer', 'fifu_uninstall');
139
+
includes/external-post.php CHANGED
@@ -7,6 +7,10 @@ function fifu_remove_first_image_ext($data, $postarr) {
7
  if (isset($_POST['fifu_input_url']) || isset($_POST['fifu_ignore_auto_set']))
8
  return $data;
9
 
 
 
 
 
10
  $content = $postarr['post_content'];
11
  if (!$content)
12
  return $data;
@@ -32,7 +36,7 @@ function fifu_save_properties_ext($post_id) {
32
 
33
  $url = esc_url_raw(rtrim(fifu_first_url_in_content($post_id)));
34
 
35
- if ((!isset($_POST['action']) || $_POST['action'] != 'elementor_ajax') && $url && fifu_is_on('fifu_get_first')) {
36
  update_post_meta($post_id, 'fifu_image_url', fifu_convert($url));
37
  fifu_db_update_fake_attach_id($post_id);
38
  return;
7
  if (isset($_POST['fifu_input_url']) || isset($_POST['fifu_ignore_auto_set']))
8
  return $data;
9
 
10
+ $post_id = $postarr['ID'];
11
+ if (fifu_has_local_featured_image($post_id))
12
+ return $data;
13
+
14
  $content = $postarr['post_content'];
15
  if (!$content)
16
  return $data;
36
 
37
  $url = esc_url_raw(rtrim(fifu_first_url_in_content($post_id)));
38
 
39
+ if ((!isset($_POST['action']) || $_POST['action'] != 'elementor_ajax') && $url && fifu_is_on('fifu_get_first') && !fifu_has_local_featured_image($post_id)) {
40
  update_post_meta($post_id, 'fifu_image_url', fifu_convert($url));
41
  fifu_db_update_fake_attach_id($post_id);
42
  return;
includes/html/css/uninstall.css ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ button.uninstall {
2
+ background-color: #4CAF50; /* Green */
3
+ border: none;
4
+ color: white;
5
+ padding: 15px 32px;
6
+ text-align: center;
7
+ text-decoration: none;
8
+ display: inline-block;
9
+ font-size: 16px;
10
+ margin: 4px 2px;
11
+ cursor: pointer;
12
+ }
includes/html/js/uninstall.js ADDED
@@ -0,0 +1,106 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(document).ready(function ($) {
2
+ jQuery('a#deactivate-featured-image-from-url').click(function (e) {
3
+ e.preventDefault();
4
+ box = `
5
+ <h2>Why are you deactivating FIFU?</h2>
6
+ <b>Description (optional)</b>
7
+ <br>
8
+ <textarea id="fifu-description" style="width:100%;height:135px;padding:10px;font-size:13px" placeholder="Doesn't work with a theme, plugin or URL...&#013;Works well, but I would need a new or pro feature...&#013;Worried about SEO, performance or copyright...&#013;I wished it worked with my local images...&#013;I didn't understand how it works...&#013;Others..."></textarea>
9
+ <br><br>
10
+ <b>Email (optional)</b>
11
+ <br>
12
+ <input id="fifu-email" style="width:100%;padding:10px;font-size:13px" placeholder="example@mail.com"></input>
13
+ <center>
14
+ We'll reply you in a few hours. 90% of issues are solved with one or two messages.
15
+ </center>
16
+ <br>
17
+ <table>
18
+ <tr>
19
+ <td><button class="uninstall" style="background-color:#f44336" id="pre-deactivate">Clean metadata and deactivate</button></td>
20
+ <td><button class="uninstall" style="width:100%;background-color:#008CBA" id="deactivate">Deactivate</button></td>
21
+ </tr>
22
+ <tr>
23
+ <td style="color:black;text-align:center">if you don't intend to use FIFU again</td>
24
+ <td style="color:black;text-align:center">if it's a temporary deactivation</td>
25
+ </tr>
26
+ </table>
27
+ `;
28
+ jQuery.fancybox.open(box);
29
+ });
30
+
31
+ jQuery(document).on("click", "button#deactivate", function () {
32
+ let description = jQuery('textarea#fifu-description').val();
33
+ let email = jQuery('input#fifu-email').val();
34
+ let temporary = true;
35
+
36
+ if (description || email) {
37
+ jQuery('.fancybox-slide').block({message: 'Please wait...', css: {backgroundColor: 'none', border: 'none', color: 'white'}});
38
+ setTimeout(function () {
39
+ send_feedback(description, email, temporary);
40
+ }, 250);
41
+ }
42
+
43
+ href = jQuery('a#deactivate-featured-image-from-url').attr('href');
44
+ window.location.href = href;
45
+ });
46
+
47
+ jQuery(document).on("click", "button#pre-deactivate", function () {
48
+ let description = jQuery('textarea#fifu-description').val();
49
+ let email = jQuery('input#fifu-email').val();
50
+ let temporary = false;
51
+
52
+ jQuery('.fancybox-slide').block({message: 'Please wait...', css: {backgroundColor: 'none', border: 'none', color: 'white'}});
53
+ setTimeout(function () {
54
+ jQuery.ajax({
55
+ method: "POST",
56
+ url: fifuUninstallVars.restUrl + 'featured-image-from-url/v2/pre_deactivate/',
57
+ data: {
58
+ "description": description,
59
+ "email": email,
60
+ "temporary": temporary,
61
+ },
62
+ async: false,
63
+ beforeSend: function (xhr) {
64
+ xhr.setRequestHeader('X-WP-Nonce', fifuUninstallVars.nonce);
65
+ },
66
+ success: function (data) {
67
+ href = jQuery('a#deactivate-featured-image-from-url').attr('href');
68
+ window.location.href = href;
69
+ },
70
+ error: function (jqXHR, textStatus, errorThrown) {
71
+ console.log(jqXHR);
72
+ console.log(textStatus);
73
+ console.log(errorThrown);
74
+ },
75
+ complete: function () {
76
+ // jQuery('.fancybox-slide').unblock();
77
+ }
78
+ });
79
+ }, 250);
80
+ });
81
+ });
82
+
83
+ function send_feedback(description, email, temporary) {
84
+ jQuery.ajax({
85
+ method: "POST",
86
+ url: fifuUninstallVars.restUrl + 'featured-image-from-url/v2/feedback/',
87
+ data: {
88
+ "description": description,
89
+ "email": email,
90
+ "temporary": temporary,
91
+ },
92
+ async: false,
93
+ beforeSend: function (xhr) {
94
+ xhr.setRequestHeader('X-WP-Nonce', fifuUninstallVars.nonce);
95
+ },
96
+ success: function (data) {
97
+ },
98
+ error: function (jqXHR, textStatus, errorThrown) {
99
+ console.log(jqXHR);
100
+ console.log(textStatus);
101
+ console.log(errorThrown);
102
+ },
103
+ complete: function () {
104
+ }
105
+ });
106
+ }
includes/thumbnail.php CHANGED
@@ -85,7 +85,7 @@ function fifu_add_social_tags() {
85
 
86
  $post_id = get_the_ID();
87
  $url = fifu_main_image_url($post_id, true);
88
- $url = $url ? $url : get_the_post_thumbnail_url($post_id);
89
  $title = str_replace("'", "&#39;", get_the_title($post_id));
90
  $description = str_replace("'", "&#39;", wp_strip_all_tags(get_post_field('post_excerpt', $post_id)));
91
 
85
 
86
  $post_id = get_the_ID();
87
  $url = fifu_main_image_url($post_id, true);
88
+ $url = $url ? $url : get_the_post_thumbnail_url($post_id, 'large');
89
  $title = str_replace("'", "&#39;", get_the_title($post_id));
90
  $description = str_replace("'", "&#39;", wp_strip_all_tags(get_post_field('post_excerpt', $post_id)));
91
 
includes/util.php CHANGED
@@ -51,6 +51,18 @@ function fifu_get_post_types_str() {
51
  return $str;
52
  }
53
 
 
 
 
 
 
 
 
 
 
 
 
 
54
  function fifu_get_delimiter($property, $html) {
55
  $delimiter = explode($property . '=', $html);
56
  return $delimiter ? substr($delimiter[1], 0, 1) : null;
51
  return $str;
52
  }
53
 
54
+ function fifu_has_local_featured_image($post_id) {
55
+ $att_id = get_post_thumbnail_id($post_id);
56
+ if (!$att_id)
57
+ return false;
58
+
59
+ $att_post = get_post($att_id);
60
+ if (!$att_post)
61
+ return false;
62
+
63
+ return $att_post->post_author != FIFU_AUTHOR;
64
+ }
65
+
66
  function fifu_get_delimiter($property, $html) {
67
  $delimiter = explode($property . '=', $html);
68
  return $delimiter ? substr($delimiter[1], 0, 1) : null;
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: marceljm
3
  Donate link: https://donorbox.org/fifu
4
  Tags: featured, image, url, video, woocommerce
5
  Requires at least: 5.3
6
- Tested up to: 6.0.2
7
- Stable tag: 4.1.5
8
  License: GPLv3
9
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -260,20 +260,20 @@ Featured Image, Figurë e Zgjedhur, Image mise en avant, Uitgelichte afbeelding,
260
 
261
  == Changelog ==
262
 
 
 
 
263
  = 4.1.5 =
264
  * New: FIFU Shortcodes > Edition forms; enhancement: Auto set featured image using post title and search engine (can limit the search to a list of sites); deprecated: Image Validation; fix: Lazy Load (JS error).
265
 
266
  = 4.1.4 =
267
  * Enhancement: Status > Copy to Clipboard; fix: conflict with Web Stories plugin; deprecated: Product Gallery > Number of Fields.
268
 
269
- = 4.1.3 =
270
- * New option: Fast Buy > custom field; enhancement: WP All Import add-on (documentation added); fix: Lazy Load (conflict with Slider Revolution plugin); fix: conflict with Web Stories plugin; deprecated: Featured Slider > number of fields; deprecated: Unsplash Image Sizes.
271
-
272
  = others =
273
  * [more](https://fifu.app/changelog)
274
 
275
 
276
  == Upgrade Notice ==
277
 
278
- = 4.1.5 =
279
- * New: FIFU Shortcodes > Edition forms; enhancement: Auto set featured image using post title and search engine (can limit the search to a list of sites); deprecated: Image Validation; fix: Lazy Load (JS error).
3
  Donate link: https://donorbox.org/fifu
4
  Tags: featured, image, url, video, woocommerce
5
  Requires at least: 5.3
6
+ Tested up to: 6.0.3
7
+ Stable tag: 4.1.6
8
  License: GPLv3
9
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
10
 
260
 
261
  == Changelog ==
262
 
263
+ = 4.1.6 =
264
+ * New: feedback form on plugin deactivation; enhancement: Clean Metadata (option added to the new deactivation lightbox); enhancement: WP All Import (more documentation added); fix: Auto set featured media from post content (unduly overwriting local featured images); fix: Social Tags (it was not getting the largest image size for local images); deprecated: Quick Edit Column > height.
265
+
266
  = 4.1.5 =
267
  * New: FIFU Shortcodes > Edition forms; enhancement: Auto set featured image using post title and search engine (can limit the search to a list of sites); deprecated: Image Validation; fix: Lazy Load (JS error).
268
 
269
  = 4.1.4 =
270
  * Enhancement: Status > Copy to Clipboard; fix: conflict with Web Stories plugin; deprecated: Product Gallery > Number of Fields.
271
 
 
 
 
272
  = others =
273
  * [more](https://fifu.app/changelog)
274
 
275
 
276
  == Upgrade Notice ==
277
 
278
+ = 4.1.6 =
279
+ * New: feedback form on plugin deactivation; enhancement: Clean Metadata (option added to the new deactivation lightbox); enhancement: WP All Import (more documentation added); fix: Auto set featured media from post content (unduly overwriting local featured images); fix: Social Tags (it was not getting the largest image size for local images); deprecated: Quick Edit Column > height.