Delete Duplicate Posts - Version 4.4.5

Version Description

  • 2020/07/06
  • Fix - automatically deactivate free version if pro version is activated - Thank you Jordi.
  • Fix - Missing link to privacy data.
  • Fix - Not correctly identifying original post when comparing with post meta values - Thank you Reinhard.
  • New - more details how long a process took is now stored in the log.
  • 242,749 downloads
Download this release

Release Info

Developer cleverplugins
Plugin Icon 128x128 Delete Duplicate Posts
Version 4.4.5
Comparing to
See all releases

Code changes from version 4.4.4 to 4.4.5

css/delete-duplicate-posts-min.css ADDED
@@ -0,0 +1 @@
 
1
+ #ddpprobutton{font-size:1.2em;width:100%;text-align:center}#ddpprobutton span{clear:both;display:block;line-height:.8em;font-size:.8em;margin-bottom:10px}.moneybackguarantee{text-align:center}.moneybackguarantee p{font-size:.9em}.statusdiv{background-color:#ffffff;padding:.8em;clear:both}#cp-ddp-reviewlink ul{float:left;width:100%;margin-bottom:10px}#cp-ddp-reviewlink ul li{float:left;margin-right:10px;vertical-align:middle;line-height:30px}#cp-ddp-reviewlinkul li .dashicons{line-height:30px;margin-right:5px}.tools_page_delete-duplicate-posts .updated{clear:both}#ddp_container #dashboard .spinner{float:left}.sidebarrow .faqbullets{padding-left:30px;font-size:.8em}.sidebarrow .faqbullets li{list-style-type:square}.sidebarrow .linklist{padding-left:20px}.sidebarrow .linklist li{list-style-type:square}.sidebarrow .linklist li a{text-decoration:none}.sidebarrow .linklist li a:hover{text-decoration:underline}.sidebarrow .linklist span{font-size:12px;color:#999;margin-left:8px;font-weight:400}.statusdiv h3{text-align:center}.statusdiv .dupelist{margin-bottom:10px}.statusdiv .warning{border:1px solid #ff0000;padding-top:5px;padding-bottom:5px;padding-left:10px;padding-right:10px;text-align:center}.statusdiv .center{text-align:center}#ddp_compare_metatag{margin-top:10px;margin-left:25px}.ddpcomparemethod .optiondesc{font-size:12px;color:#999;margin-left:8px;font-weight:400}.ddpcomparemethod .ddp-compare-details{display:none}.duplicatetable{display:none}.statusmessage{display:none}.ddp_content_wrapper{display:table;width:100%;table-layout:fixed}.ddp_content_cell{display:table-cell;height:500px;margin:0;padding:0px;vertical-align:top}#ddp_container{margin:0;padding:0 10px 0 0px;vertical-align:top;display:table-cell}#sidebar-container{width:260px;background:#ffffff;border:1px solid #ccd0d4;box-shadow:0 1px 1px rgba(0,0,0,0.04);margin:5px 15px 2px;padding:1px 12px}#sidebar-container .sidebarrow{float:left;width:100%;clear:both;margin-bottom:10px}#sidebar-container .sidebarrow:last-of-type{border-bottom:0px}#sidebar-container .sidebarrow img.logo{width:50%;margin-bottom:10px;display:block}#log{border:1px solid #ccd0d4;overflow-x:hidden;overflow-x:auto;max-height:280px;background:#ffffff;padding:10px}
css/delete-duplicate-posts.css CHANGED
@@ -1,3 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  .statusdiv {
2
  background-color: #ffffff;
3
  padding: .8em;
@@ -5,22 +29,22 @@
5
 
6
  }
7
  #cp-ddp-reviewlink ul {
8
- float: left;
9
- width: 100%;
10
- margin-bottom: 10px;
11
- }
12
  #cp-ddp-reviewlink ul li {
13
 
14
- float: left;
15
- margin-right: 10px;
16
- vertical-align: middle;
17
- line-height: 30px;
18
  }
19
 
20
  #cp-ddp-reviewlinkul li .dashicons {
21
- line-height: 30px;
22
- margin-right: 5px;
23
- }
24
 
25
  .tools_page_delete-duplicate-posts .updated {
26
  clear: both;
1
+ #ddpprobutton {
2
+ font-size: 1.2em;
3
+ width: 100%;
4
+ text-align: center;
5
+ }
6
+
7
+ #ddpprobutton span {
8
+ clear: both;
9
+ display: block;
10
+ line-height: .8em;
11
+ font-size: .8em;
12
+ margin-bottom: 10px;
13
+ }
14
+
15
+
16
+ .moneybackguarantee {
17
+ text-align: center;
18
+ }
19
+
20
+ .moneybackguarantee p {
21
+ font-size: .9em;
22
+
23
+ }
24
+
25
  .statusdiv {
26
  background-color: #ffffff;
27
  padding: .8em;
29
 
30
  }
31
  #cp-ddp-reviewlink ul {
32
+ float: left;
33
+ width: 100%;
34
+ margin-bottom: 10px;
35
+ }
36
  #cp-ddp-reviewlink ul li {
37
 
38
+ float: left;
39
+ margin-right: 10px;
40
+ vertical-align: middle;
41
+ line-height: 30px;
42
  }
43
 
44
  #cp-ddp-reviewlinkul li .dashicons {
45
+ line-height: 30px;
46
+ margin-right: 5px;
47
+ }
48
 
49
  .tools_page_delete-duplicate-posts .updated {
50
  clear: both;
delete-duplicate-posts.php CHANGED
@@ -5,7 +5,7 @@ Plugin Name: Delete Duplicate Posts
5
  Plugin Script: delete-duplicate-posts.php
6
  Plugin URI: https://cleverplugins.com
7
  Description: Remove duplicate blogposts on your blog! Searches and removes duplicate posts and their post meta tags. You can delete posts, pages and other Custom Post Types enabled on your website.
8
- Version: 4.4.4
9
  Author: cleverplugins.com
10
  Author URI: https://cleverplugins.com
11
  Min WP Version: 4.7
@@ -16,71 +16,78 @@ Domain Path: /languages
16
  /*
17
  TODO - Lav så man kan vælge imellem trash og delete (check site opsætning?)
18
  */
19
- // Create a helper function for easy SDK access.
 
 
20
 
21
- if ( !function_exists( 'ddp_fs' ) ) {
 
 
 
22
  // Create a helper function for easy SDK access.
23
- function ddp_fs()
24
- {
25
- global $ddp_fs ;
26
-
27
- if ( !isset( $ddp_fs ) ) {
28
- // Include Freemius SDK.
29
- require_once dirname( __FILE__ ) . '/freemius/start.php';
30
- define( 'CP_DDP_FREEMIUS_STATE', 'cp_ddp_freemius_state' );
31
- // Check anonymous mode.
32
- $cp_ddp_freemius_state = get_site_option( CP_DDP_FREEMIUS_STATE, 'anonymous' );
33
- $is_anonymous = 'anonymous' === $cp_ddp_freemius_state || 'skipped' === $cp_ddp_freemius_state;
34
- $is_premium = false;
35
- $is_anonymous = ( $is_premium ? false : $is_anonymous );
36
- $ddp_fs = fs_dynamic_init( array(
37
- 'id' => '925',
38
- 'slug' => 'delete-duplicate-posts',
39
- 'type' => 'plugin',
40
- 'public_key' => 'pk_0af9f9e83f00e23728a55430a57dd',
41
- 'is_premium' => false,
42
- 'premium_suffix' => 'Pro',
43
- 'has_addons' => false,
44
- 'has_paid_plans' => true,
45
- 'trial' => array(
46
- 'days' => 7,
47
- 'is_require_payment' => true,
48
- ),
49
- 'anonymous_mode' => $is_anonymous,
50
- 'menu' => array(
51
- 'slug' => 'delete-duplicate-posts.php',
52
- 'first-path' => 'admin.php?page=delete-duplicate-posts.php',
53
- 'support' => false,
54
- 'affiliation' => false,
55
- 'parent' => array(
56
- 'slug' => 'tools.php',
57
- ),
58
- ),
59
- 'is_live' => true,
60
- ) );
 
 
61
  }
62
 
63
- return $ddp_fs;
 
 
 
64
  }
65
 
66
- // Init Freemius.
67
- ddp_fs();
68
- // Signal that SDK was initiated.
69
- do_action( 'ddp_fs_loaded' );
70
- }
71
-
72
- ddp_fs()->add_action( 'after_uninstall', 'ddp_fs_uninstall_cleanup' );
73
- // clean-up when uninstalled
74
- function ddp_fs_uninstall_cleanup()
75
- {
76
- global $wpdb ;
77
- $wpdb->query( $wpdb->prepare( 'DROP TABLE IF EXISTS %s', $wpdb->prefix . 'ddp_log' ) );
78
- delete_option( 'ddp_deleted_duplicates' );
79
- delete_option( 'delete_duplicate_posts_options_v4' );
80
- delete_option( 'cp_ddp_freemius_state' );
81
  }
82
 
83
- require plugin_dir_path( __FILE__ ) . 'vendor/autoload.php';
84
  add_action( 'admin_init', array( 'PAnD', 'init' ) );
85
 
86
  if ( !class_exists( 'Delete_Duplicate_Posts' ) ) {
@@ -221,7 +228,7 @@ if ( !class_exists( 'Delete_Duplicate_Posts' ) ) {
221
  ?></h3>
222
 
223
  <p><?php
224
- echo esc_html__( 'Gathering non-sensitive diagnostic data about the plugin install helps us improve the plugin.', 'delete-duplicate-posts' ) . ' <a href="' . esc_url( '/' ) . '" target="_blank">' . esc_html__( 'Read more about what we collect.', 'delete-duplicate-posts' ) . '</a>' ;
225
  ?></p>
226
 
227
  <p>
@@ -243,7 +250,7 @@ if ( !class_exists( 'Delete_Duplicate_Posts' ) ) {
243
  ?>" />
244
 
245
  </div>
246
- <?php
247
  }
248
 
249
  }
@@ -277,7 +284,7 @@ if ( !class_exists( 'Delete_Duplicate_Posts' ) ) {
277
  <span class="dashicons dashicons-smiley"></span><a href="#" class="cp-ddp-dismiss-review-notice dismiss-this" target="_blank" rel="noopener">I already did</a>
278
  </p>
279
  </div>
280
- <?php
281
  }
282
 
283
  }
@@ -347,6 +354,7 @@ if ( !class_exists( 'Delete_Duplicate_Posts' ) ) {
347
  self::timerstart( 'return_duplicates' );
348
  $options = self::get_options();
349
  $comparemethod = 'titlecompare';
 
350
  global $ddp_fs ;
351
  $currstep = ( isset( $_POST['step'] ) ? absint( $_POST['step'] ) : 0 );
352
 
@@ -436,7 +444,8 @@ if ( !class_exists( 'Delete_Duplicate_Posts' ) ) {
436
  if ( !isset( $json_response['dupescount'] ) ) {
437
  $json_response['dupescount'] = 0;
438
  }
439
- self::log( 'Found ' . $json_response['dupescount'] . ' duplicates' );
 
440
  } else {
441
  $json_response['msg'] = __( 'Error: Choose post types to check.', 'delete-duplicate-posts' );
442
  $return_duplicates_time = self::timerstop( 'return_duplicates' );
@@ -447,7 +456,9 @@ if ( !class_exists( 'Delete_Duplicate_Posts' ) ) {
447
  wp_send_json_error( $json_response );
448
  }
449
 
450
- $return_duplicates_time = self::timerstop( 'return_duplicates' );
 
 
451
  $json_response['msg'] = $json_response['dupescount'] . ' duplicates found. Showing up to ' . $viewlimit . ' Time: ' . $return_duplicates_time . ' sec.';
452
  // @todo i8n
453
  if ( $return ) {
@@ -689,7 +700,7 @@ if ( !class_exists( 'Delete_Duplicate_Posts' ) ) {
689
  $pluginver = self::get_plugin_version();
690
  wp_enqueue_style(
691
  'delete-duplicate-posts',
692
- plugins_url( '/css/delete-duplicate-posts.css', __FILE__ ),
693
  array(),
694
  $pluginver
695
  );
@@ -1342,25 +1353,16 @@ if ( !class_exists( 'Delete_Duplicate_Posts' ) ) {
1342
  ?>
1343
 
1344
  <?php
1345
-
1346
  if ( function_exists( 'ddp_fs' ) ) {
1347
  global $ddp_fs ;
1348
- // Only loads beacon for registered users
1349
-
1350
- if ( $ddp_fs->is_registered() ) {
1351
- echo '<script type="text/javascript">!function(e,t,n){function a(){var e=t.getElementsByTagName("script")[0],n=t.createElement("script");n.type="text/javascript",n.async=!0,n.src="https://beacon-v2.helpscout.net",e.parentNode.insertBefore(n,e)}if(e.Beacon=n=function(t,n,a){e.Beacon.readyQueue.push({method:t,options:n,data:a})},n.readyQueue=[],"complete"===t.readyState)return a();e.attachEvent?e.attachEvent("onload",a):e.addEventListener("load",a,!1)}(window,document,window.Beacon||function(){});</script><script type="text/javascript">window.Beacon("init", "3ad4aee5-9cb0-4ad7-8f06-0002958ad6ab")</script>' ;
1352
- //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1353
- }
1354
-
1355
  }
1356
-
1357
  ?>
1358
 
1359
- </div>
1360
  </div>
1361
-
1362
  </div>
1363
- <?php
 
 
1364
  }
1365
 
1366
  }
5
  Plugin Script: delete-duplicate-posts.php
6
  Plugin URI: https://cleverplugins.com
7
  Description: Remove duplicate blogposts on your blog! Searches and removes duplicate posts and their post meta tags. You can delete posts, pages and other Custom Post Types enabled on your website.
8
+ Version: 4.4.5
9
  Author: cleverplugins.com
10
  Author URI: https://cleverplugins.com
11
  Min WP Version: 4.7
16
  /*
17
  TODO - Lav så man kan vælge imellem trash og delete (check site opsætning?)
18
  */
19
+ if ( !defined( 'ABSPATH' ) ) {
20
+ exit;
21
+ }
22
 
23
+ if ( function_exists( 'ddp_fs' ) ) {
24
+ ddp_fs()->set_basename( false, __FILE__ );
25
+ } else {
26
+ // DO NOT REMOVE THIS IF, IT IS ESSENTIAL FOR THE `function_exists` CALL ABOVE TO PROPERLY WORK.
27
  // Create a helper function for easy SDK access.
28
+
29
+ if ( !function_exists( 'ddp_fs' ) ) {
30
+ // Create a helper function for easy SDK access.
31
+ function ddp_fs()
32
+ {
33
+ global $ddp_fs ;
34
+
35
+ if ( !isset( $ddp_fs ) ) {
36
+ // Include Freemius SDK.
37
+ require_once dirname( __FILE__ ) . '/freemius/start.php';
38
+ define( 'CP_DDP_FREEMIUS_STATE', 'cp_ddp_freemius_state' );
39
+ // Check anonymous mode.
40
+ $cp_ddp_freemius_state = get_site_option( CP_DDP_FREEMIUS_STATE, 'anonymous' );
41
+ $is_anonymous = 'anonymous' === $cp_ddp_freemius_state || 'skipped' === $cp_ddp_freemius_state;
42
+ $is_premium = false;
43
+ $is_anonymous = ( $is_premium ? false : $is_anonymous );
44
+ $ddp_fs = fs_dynamic_init( array(
45
+ 'id' => '925',
46
+ 'slug' => 'delete-duplicate-posts',
47
+ 'type' => 'plugin',
48
+ 'public_key' => 'pk_0af9f9e83f00e23728a55430a57dd',
49
+ 'is_premium' => false,
50
+ 'premium_suffix' => 'Pro',
51
+ 'has_addons' => false,
52
+ 'has_paid_plans' => true,
53
+ 'anonymous_mode' => $is_anonymous,
54
+ 'menu' => array(
55
+ 'slug' => 'delete-duplicate-posts.php',
56
+ 'first-path' => 'admin.php?page=delete-duplicate-posts.php',
57
+ 'support' => false,
58
+ 'affiliation' => false,
59
+ 'parent' => array(
60
+ 'slug' => 'tools.php',
61
+ ),
62
+ ),
63
+ 'is_live' => true,
64
+ ) );
65
+ }
66
+
67
+ return $ddp_fs;
68
  }
69
 
70
+ // Init Freemius.
71
+ ddp_fs();
72
+ // Signal that SDK was initiated.
73
+ do_action( 'ddp_fs_loaded' );
74
  }
75
 
76
+ ddp_fs()->add_action( 'after_uninstall', 'ddp_fs_uninstall_cleanup' );
77
+ // clean-up when uninstalled
78
+ function ddp_fs_uninstall_cleanup()
79
+ {
80
+ global $wpdb ;
81
+ $wpdb->query( $wpdb->prepare( 'DROP TABLE IF EXISTS %s', $wpdb->prefix . 'ddp_log' ) );
82
+ delete_option( 'ddp_deleted_duplicates' );
83
+ delete_option( 'delete_duplicate_posts_options_v4' );
84
+ delete_option( 'cp_ddp_freemius_state' );
85
+ }
86
+
87
+ require plugin_dir_path( __FILE__ ) . 'vendor/autoload.php';
88
+ // ... Your plugin's main file logic ...
 
 
89
  }
90
 
 
91
  add_action( 'admin_init', array( 'PAnD', 'init' ) );
92
 
93
  if ( !class_exists( 'Delete_Duplicate_Posts' ) ) {
228
  ?></h3>
229
 
230
  <p><?php
231
+ echo esc_html__( 'Gathering non-sensitive diagnostic data about the plugin install helps us improve the plugin.', 'delete-duplicate-posts' ) . ' <a href="' . esc_url( 'https://cleverplugins.com/docs/install/non-sensitive-diagnostic-data/' ) . '" target="_blank" rel="noopener">' . esc_html__( 'Read more about what we collect.', 'delete-duplicate-posts' ) . '</a>' ;
232
  ?></p>
233
 
234
  <p>
250
  ?>" />
251
 
252
  </div>
253
+ <?php
254
  }
255
 
256
  }
284
  <span class="dashicons dashicons-smiley"></span><a href="#" class="cp-ddp-dismiss-review-notice dismiss-this" target="_blank" rel="noopener">I already did</a>
285
  </p>
286
  </div>
287
+ <?php
288
  }
289
 
290
  }
354
  self::timerstart( 'return_duplicates' );
355
  $options = self::get_options();
356
  $comparemethod = 'titlecompare';
357
+ $return_duplicates_time = false;
358
  global $ddp_fs ;
359
  $currstep = ( isset( $_POST['step'] ) ? absint( $_POST['step'] ) : 0 );
360
 
444
  if ( !isset( $json_response['dupescount'] ) ) {
445
  $json_response['dupescount'] = 0;
446
  }
447
+ $return_duplicates_time = self::timerstop( 'return_duplicates' );
448
+ self::log( $json_response['dupescount'] . ' duplicates found in ' . $return_duplicates_time . ' sec.' );
449
  } else {
450
  $json_response['msg'] = __( 'Error: Choose post types to check.', 'delete-duplicate-posts' );
451
  $return_duplicates_time = self::timerstop( 'return_duplicates' );
456
  wp_send_json_error( $json_response );
457
  }
458
 
459
+ if ( !$return_duplicates_time ) {
460
+ $return_duplicates_time = self::timerstop( 'return_duplicates' );
461
+ }
462
  $json_response['msg'] = $json_response['dupescount'] . ' duplicates found. Showing up to ' . $viewlimit . ' Time: ' . $return_duplicates_time . ' sec.';
463
  // @todo i8n
464
  if ( $return ) {
700
  $pluginver = self::get_plugin_version();
701
  wp_enqueue_style(
702
  'delete-duplicate-posts',
703
+ plugins_url( '/css/delete-duplicate-posts-min.css', __FILE__ ),
704
  array(),
705
  $pluginver
706
  );
1353
  ?>
1354
 
1355
  <?php
 
1356
  if ( function_exists( 'ddp_fs' ) ) {
1357
  global $ddp_fs ;
 
 
 
 
 
 
 
1358
  }
 
1359
  ?>
1360
 
 
1361
  </div>
 
1362
  </div>
1363
+
1364
+ </div>
1365
+ <?php
1366
  }
1367
 
1368
  }
readme.txt CHANGED
@@ -4,8 +4,8 @@ Tags: delete duplicate posts, delete duplicate,
4
  License: GPLv2 or later
5
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
6
  Requires at least: 4.7
7
- Tested up to: 5.4.1
8
- Stable tag: 4.4.4
9
  Requires PHP: 5.6
10
 
11
  Get rid of duplicate posts and pages on your blog!
@@ -39,6 +39,14 @@ You should restore the backup you took of your website before you ran this tool.
39
 
40
  == Changelog ==
41
 
 
 
 
 
 
 
 
 
42
  = 4.4.4 =
43
  * 2020/06/08
44
  * Code cleanup and security hardening.
@@ -222,4 +230,4 @@ You should restore the backup you took of your website before you ran this tool.
222
  * First release
223
 
224
  == Upgrade Notice ==
225
- 4.3 Contains security fixes, please update now.
4
  License: GPLv2 or later
5
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
6
  Requires at least: 4.7
7
+ Tested up to: 5.4.2
8
+ Stable tag: 4.4.5
9
  Requires PHP: 5.6
10
 
11
  Get rid of duplicate posts and pages on your blog!
39
 
40
  == Changelog ==
41
 
42
+ = 4.4.5 =
43
+ * 2020/07/06
44
+ * Fix - automatically deactivate free version if pro version is activated - Thank you Jordi.
45
+ * Fix - Missing link to privacy data.
46
+ * Fix - Not correctly identifying original post when comparing with post meta values - Thank you Reinhard.
47
+ * New - more details how long a process took is now stored in the log.
48
+ * 242,749 downloads
49
+
50
  = 4.4.4 =
51
  * 2020/06/08
52
  * Code cleanup and security hardening.
230
  * First release
231
 
232
  == Upgrade Notice ==
233
+ 4.4.5 Contains several different fixes and improvements, please update now.
sidebar.php CHANGED
@@ -28,9 +28,15 @@ if ( $ddp_deleted_duplicates ) {
28
 
29
  ?>
30
 
 
 
 
 
 
 
31
  <div class="sidebarrow">
32
  <h3>Need help?</h3>
33
- <p><a href="https://wordpress.org/support/plugin/delete-duplicate-posts/" target="_blank"><?php
34
  esc_html_e( 'Support Forum on WordPress.org', 'delete-duplicate-posts' );
35
  ?></a></p>
36
  </div>
@@ -56,11 +62,7 @@ if ( !$ddp_fs->is_registered() && !$ddp_fs->is_pending_activation() ) {
56
  }
57
 
58
  ?>
59
- <div class="sidebarrow">
60
- <p class="warning"><?php
61
- esc_html_e( 'We recommend you always make a backup before running this tool. Changes are permanent!', 'delete-duplicate-posts' );
62
- ?></p>
63
- </div>
64
 
65
  <?php
66
  $display_promotion = true;
@@ -68,6 +70,7 @@ $display_promotion = true;
68
  if ( $display_promotion ) {
69
  ?>
70
  <div class="sidebarrow">
 
71
  <h3><span class="dashicons dashicons-star-filled"></span> DDP Pro <span class="dashicons dashicons-star-filled"></span></h3>
72
  <ul class="linklist">
73
  <li><strong>New compare method</strong> - Compare by meta tag <span>Use with WooCommerce (compare SKU) or other plugins</span></li>
@@ -83,18 +86,15 @@ if ( $display_promotion ) {
83
 
84
  <a href="<?php
85
  echo esc_url( $ddp_fs->pricing_url() ) ;
86
- ?>" class="button button-primary"><?php
87
  echo 'Click here' ;
88
- ?></a>
89
  <p><center><em>$14.99/year - discount for more sites</em></center></p>
90
- <p>7-day free trial available!</p>
91
- <ul class="faqbullets">
92
- <li>We ask for your payment information to reduce fraud and provide a seamless subscription experience.</li>
93
- <li>CANCEL ANYTIME before the trial ends to avoid being charged.</li>
94
- <li>We will send you an email reminder BEFORE your trial ends.</li>
95
- <li>We accept Visa, Mastercard, American Express and PayPal.</li>
96
- <li>Upgrade, downgrade or cancel any time.</li>
97
- </ul>
98
  </div><!-- .sidebarrow -->
99
  <?php
100
  }
@@ -105,16 +105,16 @@ if ( $display_promotion ) {
105
  <h3><?php
106
  esc_html_e( 'Our other plugins', 'delete-duplicate-posts' );
107
  ?></h3>
108
- <a href="https://wpsecurityninja.com" target="_blank" style="float: right;"><img src="<?php
109
  echo esc_url( plugin_dir_url( __FILE__ ) . 'images/security-ninja-logo.png' ) ;
110
  ?>" alt="Visit wpsecurityninja.com" class="logo"></a>
111
- <p>Protect your website with <a href="https://wordpress.org/plugins/security-ninja/" target="_blank">wordpress.org/plugins/security-ninja/</a><br/>
112
  <p>Read more on <a href="https://wpsecurityninja.com/">wpsecurityninja.com</a></p>
113
  <br />
114
- <a href="https://cleverplugins.com" target="_blank" style="float: right;"><img src="<?php
115
  echo esc_url( plugin_dir_url( __FILE__ ) . 'images/seoboosterlogo.png' ) ;
116
  ?>" alt="Visit cleverplugins.com" class="logo"></a>
117
- <p>SEO Booster is a powerful tool for anyone serious about SEO. <a href="https://wordpress.org/plugins/seo-booster/" target="_blank">wordpress.org/plugins/seo-booster/</a><br/>
118
  <p>Read more on <a href="https://cleverplugins.com/">cleverplugins.com</a></p>
119
 
120
  </div><!-- .sidebarrow -->
28
 
29
  ?>
30
 
31
+ <div class="sidebarrow">
32
+ <p class="warning"><?php
33
+ esc_html_e( 'We recommend you always make a backup before running this tool. Changes are permanent!', 'delete-duplicate-posts' );
34
+ ?></p>
35
+ </div>
36
+
37
  <div class="sidebarrow">
38
  <h3>Need help?</h3>
39
+ <p><a href="https://wordpress.org/support/plugin/delete-duplicate-posts/" target="_blank" rel="noopener"><?php
40
  esc_html_e( 'Support Forum on WordPress.org', 'delete-duplicate-posts' );
41
  ?></a></p>
42
  </div>
62
  }
63
 
64
  ?>
65
+
 
 
 
 
66
 
67
  <?php
68
  $display_promotion = true;
70
  if ( $display_promotion ) {
71
  ?>
72
  <div class="sidebarrow">
73
+ <hr>
74
  <h3><span class="dashicons dashicons-star-filled"></span> DDP Pro <span class="dashicons dashicons-star-filled"></span></h3>
75
  <ul class="linklist">
76
  <li><strong>New compare method</strong> - Compare by meta tag <span>Use with WooCommerce (compare SKU) or other plugins</span></li>
86
 
87
  <a href="<?php
88
  echo esc_url( $ddp_fs->pricing_url() ) ;
89
+ ?>" class="button button-primary" id="ddpprobutton"><?php
90
  echo 'Click here' ;
91
+ ?><span>$14.99 /year</span></a>
92
  <p><center><em>$14.99/year - discount for more sites</em></center></p>
93
+ <div class="moneybackguarantee">
94
+ <p><strong>Money Back Guarantee!</strong></p>
95
+ <p>You are fully protected by our 100% Money Back Guarantee. If during the next 30 days you experience an issue that makes the plugin unusable and we are unable to resolve it, we'll happily consider offering a full refund of your money.</p>
96
+ </div>
97
+ <hr>
 
 
 
98
  </div><!-- .sidebarrow -->
99
  <?php
100
  }
105
  <h3><?php
106
  esc_html_e( 'Our other plugins', 'delete-duplicate-posts' );
107
  ?></h3>
108
+ <a href="https://wpsecurityninja.com" target="_blank" style="float: right;" rel="noopener"><img src="<?php
109
  echo esc_url( plugin_dir_url( __FILE__ ) . 'images/security-ninja-logo.png' ) ;
110
  ?>" alt="Visit wpsecurityninja.com" class="logo"></a>
111
+ <p>Protect your website with <a href="https://wordpress.org/plugins/security-ninja/" target="_blank" rel="noopener">wordpress.org/plugins/security-ninja/</a><br/>
112
  <p>Read more on <a href="https://wpsecurityninja.com/">wpsecurityninja.com</a></p>
113
  <br />
114
+ <a href="https://cleverplugins.com" target="_blank" style="float: right;" rel="noopener"><img src="<?php
115
  echo esc_url( plugin_dir_url( __FILE__ ) . 'images/seoboosterlogo.png' ) ;
116
  ?>" alt="Visit cleverplugins.com" class="logo"></a>
117
+ <p>SEO Booster is a powerful tool for anyone serious about SEO. <a href="https://wordpress.org/plugins/seo-booster/" target="_blank" rel="noopener">wordpress.org/plugins/seo-booster/</a><br/>
118
  <p>Read more on <a href="https://cleverplugins.com/">cleverplugins.com</a></p>
119
 
120
  </div><!-- .sidebarrow -->