'post_status' => 'draft', 'ping_status' => $post->ping_status, 'comment_status' => $post->comment_status, 'post_password' => $post->post_password, 'post_type' => $post->post_type, 'to_ping' => $post->to_ping, 'menu_order' => $post->menu_order, ); $duplicated_id = wp_insert_post( $duplicate_post_args ); if ( ! is_wp_error( $duplicated_id ) ) { $taxonomies = get_object_taxonomies( $post->post_type ); if ( ! empty( $taxonomies ) && is_array( $taxonomies ) ) { foreach ( $taxonomies as $taxonomy ) { $post_terms = wp_get_object_terms( $post_id, $taxonomy, array( 'fields' => 'slugs' ) ); wp_set_object_terms( $duplicated_id, $post_terms, $taxonomy, false ); } } global $wpdb; // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching $post_meta = $wpdb->get_results( $wpdb->prepare( "SELECT meta_key, meta_value FROM $wpdb->postmeta WHERE post_id = %d", $post_id ) ); if ( ! empty( $post_meta ) && is_array( $post_meta ) ) { $duplicate_insert_query = "INSERT INTO $wpdb->postmeta ( post_id, meta_key, meta_value ) VALUES "; $insert = ''; foreach ( $post_meta as $meta_info ) { $meta_key = sanitize_text_field( $meta_info->meta_key ); $meta_value = $meta_info->meta_value; $exclude_meta_keys = [ '_wc_average_rating', '_wc_review_count', '_wc_rating_count', '_elementor_css' ]; if( in_array($meta_key, $exclude_meta_keys) ){ continue; } if ( $meta_key === '_elementor_template_type' ) { delete_post_meta( $duplicated_id, '_elementor_template_type' ); } if ( ! empty( $insert ) ) { $insert .= ', '; } $insert .= $wpdb->prepare( '(%d, %s, %s)', $duplicated_id, $meta_key, $meta_value ); } // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, PluginCheck.Security.DirectDB.UnescapedDBParameter $wpdb->query( $duplicate_insert_query . $insert ); } } wp_safe_redirect( $redirect_url ); } }