Duplicate Post - Version 3.2.3

Version Description

Fixes some bugs and incompatibilities with CF7, WPML, and custom post types with custom capabilities

Download this release

Release Info

Developer lopo
Plugin Icon 128x128 Duplicate Post
Version 3.2.3
Comparing to
See all releases

Code changes from version 3.2.2 to 3.2.3

duplicate-post-admin.php CHANGED
@@ -5,8 +5,8 @@ if(!is_admin())
5
 
6
  require_once (dirname(__FILE__).'/duplicate-post-options.php');
7
 
8
- require_once (dirname(__FILE__).'/compat/duplicate-post-wpml.php');
9
- require_once (dirname(__FILE__).'/compat/duplicate-post-jetpack.php');
10
 
11
  /**
12
  * Wrapper for the option 'duplicate_post_version'
@@ -192,7 +192,7 @@ function duplicate_post_show_update_notice() {
192
  if(!current_user_can( 'manage_options')) return;
193
  $class = 'notice is-dismissible';
194
  $message = '<strong>'.sprintf(__("What's new in Duplicate Post version %s:", 'duplicate-post'), DUPLICATE_POST_CURRENT_VERSION).'</strong><br/>';
195
- $message .= esc_html__('Simple compatibility with Gutenberg user interface: enable "Admin bar" under the Settings', 'duplicate-post').' '.esc_html__('"Slug" option unset by default on new installations', 'duplicate-post').'<br/>';
196
  $message .= '<em><a href="https://duplicate-post.lopo.it/">'.esc_html__('Check out the documentation', 'duplicate-post').'</a> — '.sprintf(__('Please <a href="%s">review the settings</a> to make sure it works as you expect.', 'duplicate-post'), admin_url('options-general.php?page=duplicatepost')).'</em><br/>';
197
  $message .= esc_html__('Serving the WordPress community since November 2007.', 'duplicate-post').' <strong>'.sprintf(wp_kses(__('Help me develop the plugin and provide support by <a href="%s">donating even a small sum</a>.', 'duplicate-post'), array( 'a' => array( 'href' => array() ) ) ), "https://duplicate-post.lopo.it/donate").'</strong>';
198
  global $wp_version;
@@ -294,6 +294,7 @@ function duplicate_post_save_as_new_post($status = ''){
294
 
295
  // Copy the post and insert it
296
  if (isset($post) && $post!=null) {
 
297
  $new_id = duplicate_post_create_duplicate($post, $status);
298
 
299
  if ($status == ''){
5
 
6
  require_once (dirname(__FILE__).'/duplicate-post-options.php');
7
 
8
+ include_once (dirname(__FILE__).'/compat/duplicate-post-wpml.php');
9
+ include_once (dirname(__FILE__).'/compat/duplicate-post-jetpack.php');
10
 
11
  /**
12
  * Wrapper for the option 'duplicate_post_version'
192
  if(!current_user_can( 'manage_options')) return;
193
  $class = 'notice is-dismissible';
194
  $message = '<strong>'.sprintf(__("What's new in Duplicate Post version %s:", 'duplicate-post'), DUPLICATE_POST_CURRENT_VERSION).'</strong><br/>';
195
+ $message .= esc_html__('Fixes for some bugs and incompatibilities with CF7, WPML, and custom post types with custom capabilities.', 'duplicate-post').'<br/>';
196
  $message .= '<em><a href="https://duplicate-post.lopo.it/">'.esc_html__('Check out the documentation', 'duplicate-post').'</a> — '.sprintf(__('Please <a href="%s">review the settings</a> to make sure it works as you expect.', 'duplicate-post'), admin_url('options-general.php?page=duplicatepost')).'</em><br/>';
197
  $message .= esc_html__('Serving the WordPress community since November 2007.', 'duplicate-post').' <strong>'.sprintf(wp_kses(__('Help me develop the plugin and provide support by <a href="%s">donating even a small sum</a>.', 'duplicate-post'), array( 'a' => array( 'href' => array() ) ) ), "https://duplicate-post.lopo.it/donate").'</strong>';
198
  global $wp_version;
294
 
295
  // Copy the post and insert it
296
  if (isset($post) && $post!=null) {
297
+ $post_type = $post->post_type;
298
  $new_id = duplicate_post_create_duplicate($post, $status);
299
 
300
  if ($status == ''){
duplicate-post-common.php CHANGED
@@ -119,7 +119,8 @@ function duplicate_post_admin_bar_render() {
119
  } else if ( is_admin() && isset( $_GET['post'] )){
120
  $id = $_GET['post'];
121
  $post = get_post($id);
122
- if( duplicate_post_is_current_user_allowed_to_copy()
 
123
  && duplicate_post_is_post_type_enabled($post->post_type)) {
124
  $wp_admin_bar->add_menu( array(
125
  'id' => 'new_draft',
@@ -140,14 +141,15 @@ function duplicate_post_add_css() {
140
  && ( $post_type_object->show_ui || 'attachment' == $current_object->post_type )
141
  && (duplicate_post_is_post_type_enabled($current_object->post_type) ) )
142
  {
143
- wp_enqueue_style ( 'duplicate-post', plugins_url('/duplicate-post.css', __FILE__));
144
  }
145
  } else if ( is_admin() && isset( $_GET['post'] )){
146
  $id = $_GET['post'];
147
  $post = get_post($id);
148
- if( duplicate_post_is_current_user_allowed_to_copy()
 
149
  && duplicate_post_is_post_type_enabled($post->post_type)) {
150
- wp_enqueue_style ( 'duplicate-post', plugins_url('/duplicate-post.css', __FILE__));
151
  }
152
  }
153
  }
119
  } else if ( is_admin() && isset( $_GET['post'] )){
120
  $id = $_GET['post'];
121
  $post = get_post($id);
122
+ if( !is_null($post)
123
+ && duplicate_post_is_current_user_allowed_to_copy()
124
  && duplicate_post_is_post_type_enabled($post->post_type)) {
125
  $wp_admin_bar->add_menu( array(
126
  'id' => 'new_draft',
141
  && ( $post_type_object->show_ui || 'attachment' == $current_object->post_type )
142
  && (duplicate_post_is_post_type_enabled($current_object->post_type) ) )
143
  {
144
+ wp_enqueue_style ( 'duplicate-post', plugins_url('/duplicate-post.css', __FILE__), array(), DUPLICATE_POST_CURRENT_VERSION );
145
  }
146
  } else if ( is_admin() && isset( $_GET['post'] )){
147
  $id = $_GET['post'];
148
  $post = get_post($id);
149
+ if( !is_null($post)
150
+ && duplicate_post_is_current_user_allowed_to_copy()
151
  && duplicate_post_is_post_type_enabled($post->post_type)) {
152
+ wp_enqueue_style ( 'duplicate-post', plugins_url('/duplicate-post.css', __FILE__), array(), DUPLICATE_POST_CURRENT_VERSION );
153
  }
154
  }
155
  }
duplicate-post-options.php CHANGED
@@ -38,7 +38,7 @@ function duplicate_post_register_settings() { // whitelist options
38
  register_setting( 'duplicate_post_group', 'duplicate_post_show_adminbar');
39
  register_setting( 'duplicate_post_group', 'duplicate_post_show_submitbox');
40
  register_setting( 'duplicate_post_group', 'duplicate_post_show_bulkactions');
41
- register_setting( 'duplicate_post_group', 'duplicate_post_show_notice');
42
  }
43
 
44
 
@@ -58,9 +58,6 @@ function duplicate_post_options() {
58
  foreach ($roles as $name => $display_name){
59
  $role = get_role($name);
60
 
61
- // role should have at least edit_posts capability
62
- if ( !$role->has_cap('edit_posts') ) continue;
63
-
64
  /* If the role doesn't have the capability and it was selected, add it. */
65
  if ( !$role->has_cap( 'copy_posts' ) && in_array($name, $dp_roles) )
66
  $role->add_cap( 'copy_posts' );
@@ -198,49 +195,49 @@ img#donate-button{
198
  <th scope="row"><?php esc_html_e('Post/page elements to copy', 'duplicate-post'); ?>
199
  </th>
200
  <td colspan="2"><label> <input type="checkbox"
201
- name="duplicate_post_copytitle" value="1" <?php if(get_option('duplicate_post_copytitle') == 1) echo 'checked="checked"'; ?>"/>
202
  <?php esc_html_e("Title", 'default'); ?>
203
  </label> <label> <input type="checkbox"
204
- name="duplicate_post_copydate" value="1" <?php if(get_option('duplicate_post_copydate') == 1) echo 'checked="checked"'; ?>"/>
205
  <?php esc_html_e("Date", 'default'); ?>
206
  </label> <label> <input type="checkbox"
207
- name="duplicate_post_copystatus" value="1" <?php if(get_option('duplicate_post_copystatus') == 1) echo 'checked="checked"'; ?>"/>
208
  <?php esc_html_e("Status", 'default'); ?>
209
  </label> <label> <input type="checkbox"
210
- name="duplicate_post_copyslug" value="1" <?php if(get_option('duplicate_post_copyslug') == 1) echo 'checked="checked"'; ?>"/>
211
  <?php esc_html_e("Slug", 'default'); ?>
212
  </label> <label> <input type="checkbox"
213
- name="duplicate_post_copyexcerpt" value="1" <?php if(get_option('duplicate_post_copyexcerpt') == 1) echo 'checked="checked"'; ?>"/>
214
  <?php esc_html_e("Excerpt", 'default'); ?>
215
  </label> <label> <input type="checkbox"
216
- name="duplicate_post_copycontent" value="1" <?php if(get_option('duplicate_post_copycontent') == 1) echo 'checked="checked"'; ?>"/>
217
  <?php esc_html_e("Content", 'default'); ?>
218
  </label> <label> <input type="checkbox"
219
- name="duplicate_post_copythumbnail" value="1" <?php if(get_option('duplicate_post_copythumbnail') == 1) echo 'checked="checked"'; ?>"/>
220
  <?php esc_html_e("Featured Image", 'default'); ?>
221
  </label> <label> <input type="checkbox"
222
- name="duplicate_post_copytemplate" value="1" <?php if(get_option('duplicate_post_copytemplate') == 1) echo 'checked="checked"'; ?>"/>
223
  <?php esc_html_e("Template", 'default'); ?>
224
  </label> <label> <input type="checkbox"
225
- name="duplicate_post_copyformat" value="1" <?php if(get_option('duplicate_post_copyformat') == 1) echo 'checked="checked"'; ?>"/>
226
  <?php echo esc_html_x("Format", 'post format', 'default'); ?>
227
  </label> <label> <input type="checkbox"
228
- name="duplicate_post_copyauthor" value="1" <?php if(get_option('duplicate_post_copyauthor') == 1) echo 'checked="checked"'; ?>"/>
229
  <?php esc_html_e("Author", 'default'); ?>
230
  </label> <label> <input type="checkbox"
231
- name="duplicate_post_copypassword" value="1" <?php if(get_option('duplicate_post_copypassword') == 1) echo 'checked="checked"'; ?>"/>
232
  <?php esc_html_e("Password", 'default'); ?>
233
  </label> <label> <input type="checkbox"
234
- name="duplicate_post_copyattachments" value="1" <?php if(get_option('duplicate_post_copyattachments') == 1) echo 'checked="checked"'; ?>"/>
235
  <?php esc_html_e("Attachments", 'duplicate-post'); ?> <small>(<?php esc_html_e("you probably want this unchecked, unless you have very special requirements", 'duplicate-post'); ?>)</small>
236
  </label> <label> <input type="checkbox"
237
- name="duplicate_post_copychildren" value="1" <?php if(get_option('duplicate_post_copychildren') == 1) echo 'checked="checked"'; ?>"/>
238
  <?php esc_html_e("Children", 'duplicate-post'); ?>
239
  </label> <label> <input type="checkbox"
240
- name="duplicate_post_copycomments" value="1" <?php if(get_option('duplicate_post_copycomments') == 1) echo 'checked="checked"'; ?>"/>
241
  <?php esc_html_e("Comments", 'default'); ?> <small>(<?php esc_html_e("except pingbacks and trackbacks", 'duplicate-post'); ?>)</small>
242
  </label> <label> <input type="checkbox"
243
- name="duplicate_post_copymenuorder" value="1" <?php if(get_option('duplicate_post_copymenuorder') == 1) echo 'checked="checked"'; ?>"/>
244
  <?php esc_html_e("Menu order", 'default'); ?>
245
  </label>
246
  </td>
@@ -320,13 +317,20 @@ img#donate-button{
320
  </th>
321
  <td><?php global $wp_roles;
322
  $roles = $wp_roles->get_names();
323
- foreach ($roles as $name => $display_name): $role = get_role($name);
324
- if ( !$role->has_cap('edit_posts') ) continue; ?> <label> <input
 
 
 
 
 
 
 
325
  type="checkbox" name="duplicate_post_roles[]"
326
  value="<?php echo $name ?>"
327
  <?php if($role->has_cap('copy_posts')) echo 'checked="checked"'?> />
328
  <?php echo translate_user_role($display_name); ?>
329
- </label> <?php endforeach; ?> <span class="description"><?php esc_html_e("Warning: users will be able to copy all posts, even those of other users", 'duplicate-post'); ?><br />
330
  <?php esc_html_e("Passwords and contents of password-protected posts may become visible to undesired users and visitors", 'duplicate-post'); ?>
331
  </span>
332
  </td>
@@ -355,15 +359,15 @@ img#donate-button{
355
  <th scope="row"><?php esc_html_e("Show links in", 'duplicate-post'); ?>
356
  </th>
357
  <td><label><input type="checkbox" name="duplicate_post_show_row"
358
- value="1" <?php if(get_option('duplicate_post_show_row') == 1) echo 'checked="checked"'; ?>"/>
359
  <?php esc_html_e("Post list", 'duplicate-post'); ?> </label>
360
- <label><input type="checkbox" name="duplicate_post_show_submitbox" value="1" <?php if(get_option('duplicate_post_show_submitbox') == 1) echo 'checked="checked"'; ?>"/>
361
  <?php esc_html_e("Edit screen", 'duplicate-post'); ?> </label>
362
- <label><input type="checkbox" name="duplicate_post_show_adminbar" value="1" <?php if(get_option('duplicate_post_show_adminbar') == 1) echo 'checked="checked"'; ?>"/>
363
- <?php esc_html_e("Admin bar", 'duplicate-post'); ?> <small>(<?php esc_html_e("now works on Edit screen too check this option to use with Gutenberg enabled", 'duplicate-post'); ?>)</small></label>
364
  <?php global $wp_version;
365
  if( version_compare($wp_version, '4.7') >= 0 ){ ?>
366
- <label><input type="checkbox" name="duplicate_post_show_bulkactions" value="1" <?php if(get_option('duplicate_post_show_bulkactions') == 1) echo 'checked="checked"'; ?>"/>
367
  <?php esc_html_e("Bulk Actions", 'default'); ?> </label>
368
  <?php } ?>
369
  </td>
@@ -378,7 +382,7 @@ img#donate-button{
378
  <th scope="row"><?php esc_html_e("Show update notice", 'duplicate-post'); ?>
379
  </th>
380
  <td><input type="checkbox" name="duplicate_post_show_notice"
381
- value="1" <?php if(get_option('duplicate_post_show_notice') == 1) echo 'checked="checked"'; ?>"/>
382
  </td>
383
  </tr>
384
  </table>
38
  register_setting( 'duplicate_post_group', 'duplicate_post_show_adminbar');
39
  register_setting( 'duplicate_post_group', 'duplicate_post_show_submitbox');
40
  register_setting( 'duplicate_post_group', 'duplicate_post_show_bulkactions');
41
+ register_setting( 'duplicate_post_group', 'duplicate_post_show_notice');
42
  }
43
 
44
 
58
  foreach ($roles as $name => $display_name){
59
  $role = get_role($name);
60
 
 
 
 
61
  /* If the role doesn't have the capability and it was selected, add it. */
62
  if ( !$role->has_cap( 'copy_posts' ) && in_array($name, $dp_roles) )
63
  $role->add_cap( 'copy_posts' );
195
  <th scope="row"><?php esc_html_e('Post/page elements to copy', 'duplicate-post'); ?>
196
  </th>
197
  <td colspan="2"><label> <input type="checkbox"
198
+ name="duplicate_post_copytitle" value="1" <?php if(get_option('duplicate_post_copytitle') == 1) echo 'checked="checked"'; ?>/>
199
  <?php esc_html_e("Title", 'default'); ?>
200
  </label> <label> <input type="checkbox"
201
+ name="duplicate_post_copydate" value="1" <?php if(get_option('duplicate_post_copydate') == 1) echo 'checked="checked"'; ?>/>
202
  <?php esc_html_e("Date", 'default'); ?>
203
  </label> <label> <input type="checkbox"
204
+ name="duplicate_post_copystatus" value="1" <?php if(get_option('duplicate_post_copystatus') == 1) echo 'checked="checked"'; ?>/>
205
  <?php esc_html_e("Status", 'default'); ?>
206
  </label> <label> <input type="checkbox"
207
+ name="duplicate_post_copyslug" value="1" <?php if(get_option('duplicate_post_copyslug') == 1) echo 'checked="checked"'; ?>/>
208
  <?php esc_html_e("Slug", 'default'); ?>
209
  </label> <label> <input type="checkbox"
210
+ name="duplicate_post_copyexcerpt" value="1" <?php if(get_option('duplicate_post_copyexcerpt') == 1) echo 'checked="checked"'; ?>/>
211
  <?php esc_html_e("Excerpt", 'default'); ?>
212
  </label> <label> <input type="checkbox"
213
+ name="duplicate_post_copycontent" value="1" <?php if(get_option('duplicate_post_copycontent') == 1) echo 'checked="checked"'; ?>/>
214
  <?php esc_html_e("Content", 'default'); ?>
215
  </label> <label> <input type="checkbox"
216
+ name="duplicate_post_copythumbnail" value="1" <?php if(get_option('duplicate_post_copythumbnail') == 1) echo 'checked="checked"'; ?>/>
217
  <?php esc_html_e("Featured Image", 'default'); ?>
218
  </label> <label> <input type="checkbox"
219
+ name="duplicate_post_copytemplate" value="1" <?php if(get_option('duplicate_post_copytemplate') == 1) echo 'checked="checked"'; ?>/>
220
  <?php esc_html_e("Template", 'default'); ?>
221
  </label> <label> <input type="checkbox"
222
+ name="duplicate_post_copyformat" value="1" <?php if(get_option('duplicate_post_copyformat') == 1) echo 'checked="checked"'; ?>/>
223
  <?php echo esc_html_x("Format", 'post format', 'default'); ?>
224
  </label> <label> <input type="checkbox"
225
+ name="duplicate_post_copyauthor" value="1" <?php if(get_option('duplicate_post_copyauthor') == 1) echo 'checked="checked"'; ?>/>
226
  <?php esc_html_e("Author", 'default'); ?>
227
  </label> <label> <input type="checkbox"
228
+ name="duplicate_post_copypassword" value="1" <?php if(get_option('duplicate_post_copypassword') == 1) echo 'checked="checked"'; ?>/>
229
  <?php esc_html_e("Password", 'default'); ?>
230
  </label> <label> <input type="checkbox"
231
+ name="duplicate_post_copyattachments" value="1" <?php if(get_option('duplicate_post_copyattachments') == 1) echo 'checked="checked"'; ?>/>
232
  <?php esc_html_e("Attachments", 'duplicate-post'); ?> <small>(<?php esc_html_e("you probably want this unchecked, unless you have very special requirements", 'duplicate-post'); ?>)</small>
233
  </label> <label> <input type="checkbox"
234
+ name="duplicate_post_copychildren" value="1" <?php if(get_option('duplicate_post_copychildren') == 1) echo 'checked="checked"'; ?>/>
235
  <?php esc_html_e("Children", 'duplicate-post'); ?>
236
  </label> <label> <input type="checkbox"
237
+ name="duplicate_post_copycomments" value="1" <?php if(get_option('duplicate_post_copycomments') == 1) echo 'checked="checked"'; ?>/>
238
  <?php esc_html_e("Comments", 'default'); ?> <small>(<?php esc_html_e("except pingbacks and trackbacks", 'duplicate-post'); ?>)</small>
239
  </label> <label> <input type="checkbox"
240
+ name="duplicate_post_copymenuorder" value="1" <?php if(get_option('duplicate_post_copymenuorder') == 1) echo 'checked="checked"'; ?>/>
241
  <?php esc_html_e("Menu order", 'default'); ?>
242
  </label>
243
  </td>
317
  </th>
318
  <td><?php global $wp_roles;
319
  $roles = $wp_roles->get_names();
320
+ $post_types = get_post_types( array( 'show_ui' => true ), 'objects' );
321
+ $edit_capabilities = array('edit_posts' => true);
322
+ foreach( $post_types as $post_type ) {
323
+ $edit_capabilities[$post_type->cap->edit_posts] = true;
324
+ }
325
+ foreach ( $roles as $name => $display_name ):
326
+ $role = get_role( $name );
327
+ if( count ( array_intersect_key( $role->capabilities, $edit_capabilities ) ) > 0 ): ?>
328
+ <label> <input
329
  type="checkbox" name="duplicate_post_roles[]"
330
  value="<?php echo $name ?>"
331
  <?php if($role->has_cap('copy_posts')) echo 'checked="checked"'?> />
332
  <?php echo translate_user_role($display_name); ?>
333
+ </label> <?php endif; endforeach; ?> <span class="description"><?php esc_html_e("Warning: users will be able to copy all posts, even those of other users", 'duplicate-post'); ?><br />
334
  <?php esc_html_e("Passwords and contents of password-protected posts may become visible to undesired users and visitors", 'duplicate-post'); ?>
335
  </span>
336
  </td>
359
  <th scope="row"><?php esc_html_e("Show links in", 'duplicate-post'); ?>
360
  </th>
361
  <td><label><input type="checkbox" name="duplicate_post_show_row"
362
+ value="1" <?php if(get_option('duplicate_post_show_row') == 1) echo 'checked="checked"'; ?>/>
363
  <?php esc_html_e("Post list", 'duplicate-post'); ?> </label>
364
+ <label><input type="checkbox" name="duplicate_post_show_submitbox" value="1" <?php if(get_option('duplicate_post_show_submitbox') == 1) echo 'checked="checked"'; ?>/>
365
  <?php esc_html_e("Edit screen", 'duplicate-post'); ?> </label>
366
+ <label><input type="checkbox" name="duplicate_post_show_adminbar" value="1" <?php if(get_option('duplicate_post_show_adminbar') == 1) echo 'checked="checked"'; ?>/>
367
+ <?php esc_html_e("Admin bar", 'duplicate-post'); ?> <small>(<?php esc_html_e("now works on Edit screen too - check this option to use with Gutenberg enabled", 'duplicate-post'); ?>)</small></label>
368
  <?php global $wp_version;
369
  if( version_compare($wp_version, '4.7') >= 0 ){ ?>
370
+ <label><input type="checkbox" name="duplicate_post_show_bulkactions" value="1" <?php if(get_option('duplicate_post_show_bulkactions') == 1) echo 'checked="checked"'; ?>/>
371
  <?php esc_html_e("Bulk Actions", 'default'); ?> </label>
372
  <?php } ?>
373
  </td>
382
  <th scope="row"><?php esc_html_e("Show update notice", 'duplicate-post'); ?>
383
  </th>
384
  <td><input type="checkbox" name="duplicate_post_show_notice"
385
+ value="1" <?php if(get_option('duplicate_post_show_notice') == 1) echo 'checked="checked"'; ?>/>
386
  </td>
387
  </tr>
388
  </table>
duplicate-post.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Duplicate Post
4
  Plugin URI: https://duplicate-post.lopo.it/
5
  Description: Clone posts and pages.
6
- Version: 3.2.2
7
  Author: Enrico Battocchi
8
  Author URI: https://lopo.it
9
  Text Domain: duplicate-post
@@ -31,7 +31,7 @@ if ( ! defined( 'ABSPATH' ) ) {
31
  }
32
 
33
  // Version of the plugin
34
- define('DUPLICATE_POST_CURRENT_VERSION', '3.2.2' );
35
 
36
 
37
  /**
3
  Plugin Name: Duplicate Post
4
  Plugin URI: https://duplicate-post.lopo.it/
5
  Description: Clone posts and pages.
6
+ Version: 3.2.3
7
  Author: Enrico Battocchi
8
  Author URI: https://lopo.it
9
  Text Domain: duplicate-post
31
  }
32
 
33
  // Version of the plugin
34
+ define('DUPLICATE_POST_CURRENT_VERSION', '3.2.3' );
35
 
36
 
37
  /**
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: lopo
3
  Donate link: https://duplicate-post.lopo.it/
4
  Tags: duplicate post, copy, clone
5
  Requires at least: 3.6
6
- Tested up to: 4.9
7
- Stable tag: 3.2.2
8
  Requires PHP: 5.2.4
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -79,6 +79,9 @@ If Duplicate Post is still in English, or if there are some untraslated strings,
79
 
80
  == Upgrade Notice ==
81
 
 
 
 
82
  = 3.2.2 =
83
  Adds compatibility with Gutenberg UI and fixes a problem with slugs on new installs
84
 
@@ -147,6 +150,11 @@ New features and customization, WP 3.0 compatibility: you should upgrade if you
147
 
148
  == Changelog ==
149
 
 
 
 
 
 
150
  = 3.2.2 (2018-04-13) =
151
  * The "Admin bar" option shows the link in the post edit screen too, so you can use the plugin with Gutenberg enabled
152
  * Option for "Slug" not set by default on new installations
3
  Donate link: https://duplicate-post.lopo.it/
4
  Tags: duplicate post, copy, clone
5
  Requires at least: 3.6
6
+ Tested up to: 5.2
7
+ Stable tag: 3.2.3
8
  Requires PHP: 5.2.4
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
79
 
80
  == Upgrade Notice ==
81
 
82
+ = 3.2.3 =
83
+ Fixes some bugs and incompatibilities with CF7, WPML, and custom post types with custom capabilities
84
+
85
  = 3.2.2 =
86
  Adds compatibility with Gutenberg UI and fixes a problem with slugs on new installs
87
 
150
 
151
  == Changelog ==
152
 
153
+ = 3.2.3 (2019-07-10) =
154
+ * Fixes incompatibility with previous versions of CF7
155
+ * Now roles without edit_posts capability but having equivalent capability for custom post types can be allowed to copy
156
+ * Small other fixes to bugs that could lead to incompatibilities with WPML and others
157
+
158
  = 3.2.2 (2018-04-13) =
159
  * The "Admin bar" option shows the link in the post edit screen too, so you can use the plugin with Gutenberg enabled
160
  * Option for "Slug" not set by default on new installations