Submit
Path:
~
/
home
/
getwphos
/
public_html
/
bubrupamjcb.com
/
wp-content
/
plugins
/
duplicate-me
/
admin
/
File Content:
class-duplicate-me-admin.php
<?php /** * Exit if accessed directly. * * @package Duplicate Me */ if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Function creates post duplicate as a draft and redirects then to the edit post screen * * @package Duplicate Me * @since 3.0.0 */ function duplicate_me_post_as_draft() { global $wpdb; if ( ! ( isset( $_GET['post'] ) || isset( $_POST['post'] ) || ( isset( $_REQUEST['action'] ) && 'duplicate_me_post_as_draft' == $_REQUEST['action'] ) ) ) { wp_die( 'No post to duplicate has been supplied!' ); } /* * Nonce verification */ if ( ! isset( $_GET['duplicate_nonce'] ) || ! wp_verify_nonce( $_GET['duplicate_nonce'], basename( __FILE__ ) ) ) { return; } /* * get the original post id */ $post_id = ( isset( $_GET['post'] ) ? absint( $_GET['post'] ) : absint( $_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 ) && null !== $post ) { /* 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. foreach ( $taxonomies as $taxonomy ) { $post_terms = wp_get_object_terms( $post_id, $taxonomy, array( 'fields' => 'slugs' ) ); wp_set_object_terms( $new_post_id, $post_terms, $taxonomy, false ); } /* * duplicate all post meta just in two SQL queries */ $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; if ( $meta_key == '_wp_old_slug' ) { continue; } $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 ); } /* * 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 ); } } /** * Duplicate post as draft */ function duplicate_me_page_as_draft() { global $wpdb; if ( ! ( isset( $_GET['page'] ) || isset( $_POST['page'] ) || ( isset( $_REQUEST['action'] ) && 'duplicate_me_page_as_draft' == $_REQUEST['action'] ) ) ) { wp_die( 'No page to duplicate has been supplied!' ); } /* * Nonce verification */ if ( ! isset( $_GET['duplicate_nonce'] ) || ! wp_verify_nonce( $_GET['duplicate_nonce'], basename( __FILE__ ) ) ) { return; } /* * get the original post id */ $post_id = ( isset( $_GET['page'] ) ? absint( $_GET['page'] ) : absint( $_POST['page'] ) ); /* 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 ) && null !== $post ) { /* 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. foreach ( $taxonomies as $taxonomy ) { $post_terms = wp_get_object_terms( $post_id, $taxonomy, array( 'fields' => 'slugs' ) ); wp_set_object_terms( $new_post_id, $post_terms, $taxonomy, false ); } /* * duplicate all post meta just in two SQL queries */ $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; if ( $meta_key == '_wp_old_slug' ) { continue; } $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 ); } /* * 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( 'Page creation failed, could not find original Page: ' . $post_id ); } } /** * Redirect to the edit post screen for the new draft * * @param array $actions An array of row action links. Default empty. * @param WP_Post $post The post object. * @return array Modified array of row action links. */ function duplicate_me_post_link( $actions, $post ) { if ( current_user_can( 'edit_posts' ) ) { $actions['duplicate'] = '<a href="' . wp_nonce_url( 'admin.php?action=duplicate_me_post_as_draft&post=' . $post->ID, basename( __FILE__ ), 'duplicate_nonce' ) . '" title="Duplicate this item" rel="permalink">Duplicate Me</a>'; } return $actions; } /** * Add the duplicate link to action list for post_row_actions * * @param array $actions An array of row action links. Default empty. * @param WP_Post $post The post object. */ function duplicate_me_page_link( $actions, $post ) { if ( current_user_can( 'edit_posts' ) ) { $actions['duplicate'] = '<a href="' . wp_nonce_url( 'admin.php?action=duplicate_me_post_as_draft&post=' . $post->ID, basename( __FILE__ ), 'duplicate_nonce' ) . '" title="Duplicate this item" rel="permalink">Duplicate Me</a>'; } return $actions; } // add action to perform clone to post. add_action( 'admin_action_duplicate_me_post_as_draft', 'duplicate_me_post_as_draft' ); // add action to perform clone to page. add_action( 'admin_action_duplicate_me_page_as_draft', 'duplicate_me_page_as_draft' ); // add action to add option to duplicate post. add_filter( 'post_row_actions', 'duplicate_me_post_link', 10, 2 ); // add action to add option to duplicate page. add_filter( 'page_row_actions', 'duplicate_me_page_link', 10, 2 );
Edit
Rename
Chmod
Delete
FILE
FOLDER
Name
Size
Permission
Action
class-duplicate-me-admin.php
8145 bytes
0644
N4ST4R_ID | Naxtarrr