WC_Admin_Duplicate_Product::duplicate_post_meta PHP Méthode

duplicate_post_meta() private méthode

Copy the meta information of a post to another post.
private duplicate_post_meta ( mixed $id, mixed $new_id )
$id mixed
$new_id mixed
        private function duplicate_post_meta($id, $new_id)
        {
            global $wpdb;
            $sql = $wpdb->prepare("SELECT meta_key, meta_value FROM {$wpdb->postmeta} WHERE post_id = %d", absint($id));
            $exclude = array_map('esc_sql', array_filter(apply_filters('woocommerce_duplicate_product_exclude_meta', array('total_sales', '_wc_average_rating', '_wc_rating_count', '_wc_review_count', '_sku'))));
            if (sizeof($exclude)) {
                $sql .= " AND meta_key NOT IN ( '" . implode("','", $exclude) . "' )";
            }
            $post_meta = $wpdb->get_results($sql);
            if (sizeof($post_meta)) {
                $sql_query_sel = array();
                $sql_query = "INSERT INTO {$wpdb->postmeta} (post_id, meta_key, meta_value) ";
                foreach ($post_meta as $post_meta_row) {
                    $sql_query_sel[] = $wpdb->prepare("SELECT %d, %s, %s", $new_id, $post_meta_row->meta_key, $post_meta_row->meta_value);
                }
                $sql_query .= implode(" UNION ALL ", $sql_query_sel);
                $wpdb->query($sql_query);
            }
        }