Title: Custom function allow users to bypass post limit!
Last modified: August 21, 2016

---

# Custom function allow users to bypass post limit!

 *  Resolved [flanger777](https://wordpress.org/support/users/flanger777/)
 * (@flanger777)
 * [12 years, 5 months ago](https://wordpress.org/support/topic/custom-function-allow-users-to-bypass-post-limit/)
 * Hello! Thanks for great plugin! I realy like it!
    But i use function which allow
   users to duplicate posts in dashboard and by using this users can bypass posts
   limit. There is a code of this function:
 *     ```
       /*
        * Function creates post duplicate as a draft and redirects then to the edit post screen
        */
       function rd_duplicate_post_as_draft(){
       	global $wpdb;
       	if (! ( isset( $_GET['post']) || isset( $_POST['post'])  || ( isset($_REQUEST['action']) && 'rd_duplicate_post_as_draft' == $_REQUEST['action'] ) ) ) {
       		wp_die('No post to duplicate has been supplied!');
       	}
   
       	/*
       	 * get the original post id
       	 */
       	$post_id = (isset($_GET['post']) ? $_GET['post'] : $_POST['post']);
       	/*
       	 * and all the original post data then
       	 */
       	$post = get_post( $post_id );
   
       	/*
       	 * if you don't want current user to be the new post author,
       	 * then change next couple of lines to this: $new_post_author = $post->post_author;
       	 */
       	$current_user = wp_get_current_user();
       	$new_post_author = $current_user->ID;
   
       	/*
       	 * if post data exists, create the post duplicate
       	 */
       	if (isset( $post ) && $post != null) {
   
       		/*
       		 * new post data array
       		 */
       		$args = array(
       			'comment_status' => $post->comment_status,
       			'ping_status'    => $post->ping_status,
       			'post_author'    => $new_post_author,
       			'post_content'   => $post->post_content,
       			'post_excerpt'   => $post->post_excerpt,
       			'post_name'      => $post->post_name,
       			'post_parent'    => $post->post_parent,
       			'post_password'  => $post->post_password,
       			'post_status'    => 'draft',
       			'post_title'     => $post->post_title,
       			'post_type'      => $post->post_type,
       			'to_ping'        => $post->to_ping,
       			'menu_order'     => $post->menu_order
       		);
   
       		/*
       		 * insert the post by wp_insert_post() function
       		 */
       		$new_post_id = wp_insert_post( $args );
   
       		/*
       		 * get all current post terms ad set them to the new post draft
       		 */
       		$taxonomies = get_object_taxonomies($post->post_type); // returns array of taxonomy names for post type, ex array("category", "post_tag");
       		foreach ($taxonomies as $taxonomy) {
       			$post_terms = wp_get_object_terms($post_id, $taxonomy);
       			for ($i=0; $i<count($post_terms); $i++) {
       				wp_set_object_terms($new_post_id, $post_terms[$i]->slug, $taxonomy, true);
       			}
       		}
   
       		/*
       		 * duplicate all post meta
       		 */
       		$post_meta_infos = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->postmeta WHERE post_id=$post_id");
       		if (count($post_meta_infos)!=0) {
       			$sql_query = "INSERT INTO $wpdb->postmeta (post_id, meta_key, meta_value) ";
       			foreach ($post_meta_infos as $meta_info) {
       				$meta_key = $meta_info->meta_key;
       				$meta_value = addslashes($meta_info->meta_value);
       				$sql_query_sel[]= "SELECT $new_post_id, '$meta_key', '$meta_value'";
       			}
       			$sql_query.= implode(" UNION ALL ", $sql_query_sel);
       			$wpdb->query($sql_query);
       		}
   
       		/*
       		 * finally, redirect to the edit post screen for the new draft
       		 */
       		wp_redirect( admin_url( 'post.php?action=edit&post=' . $new_post_id ) );
       		exit;
       	} else {
       		wp_die('Post creation failed, could not find original post: ' . $post_id);
       	}
       }
       add_action( 'admin_action_rd_duplicate_post_as_draft', 'rd_duplicate_post_as_draft' );
   
       /*
        * Add the duplicate link to action list for post_row_actions
        */
       function rd_duplicate_post_link( $actions, $post ) {
       	if (current_user_can('edit_seek_post')) {
       		$actions['duplicate'] = '<a href="admin.php?action=rd_duplicate_post_as_draft&post=' . $post->ID . '" title="Duplicate this item" rel="permalink">Duplicate</a>';
       	}
       	return $actions;
       }
   
       add_filter( 'post_row_actions', 'rd_duplicate_post_link', 10, 2 );
       ```
   
 * Is possible somehow to fix that function, if user reach post limit – function
   stoped work. Maybe by using some variable or some thing like that?
 * Thanks in advance!
    Oleg
 * [http://wordpress.org/plugins/bainternet-posts-creation-limits/](http://wordpress.org/plugins/bainternet-posts-creation-limits/)

Viewing 1 replies (of 1 total)

 *  Plugin Author [Bainternet](https://wordpress.org/support/users/bainternet/)
 * (@bainternet)
 * [11 years, 9 months ago](https://wordpress.org/support/topic/custom-function-allow-users-to-bypass-post-limit/#post-4500401)
 * this would require some custom coding.

Viewing 1 replies (of 1 total)

The topic ‘Custom function allow users to bypass post limit!’ is closed to new replies.

 * ![](https://s.w.org/plugins/geopattern-icon/bainternet-posts-creation-limits_ffffff.
   svg)
 * [Bainternet Posts Creation Limits](https://wordpress.org/plugins/bainternet-posts-creation-limits/)
 * [Frequently Asked Questions](https://wordpress.org/plugins/bainternet-posts-creation-limits/#faq)
 * [Support Threads](https://wordpress.org/support/plugin/bainternet-posts-creation-limits/)
 * [Active Topics](https://wordpress.org/support/plugin/bainternet-posts-creation-limits/active/)
 * [Unresolved Topics](https://wordpress.org/support/plugin/bainternet-posts-creation-limits/unresolved/)
 * [Reviews](https://wordpress.org/support/plugin/bainternet-posts-creation-limits/reviews/)

 * 1 reply
 * 2 participants
 * Last reply from: [Bainternet](https://wordpress.org/support/users/bainternet/)
 * Last activity: [11 years, 9 months ago](https://wordpress.org/support/topic/custom-function-allow-users-to-bypass-post-limit/#post-4500401)
 * Status: resolved