WC_REST_Products_Controller::duplicate_product()
Duplicate a product and returns the duplicated product. The product status is set to "draft" and the name includes a "(copy)" at the end by default.
Метод класса: WC_REST_Products_Controller{}
Хуков нет.
Возвращает
WP_REST_Response|WP_Error
.
Использование
$WC_REST_Products_Controller = new WC_REST_Products_Controller(); $WC_REST_Products_Controller->duplicate_product( $request );
- $request(WP_REST_Request) (обязательный)
- Request data.
Код WC_REST_Products_Controller::duplicate_product() WC REST Products Controller::duplicate product WC 9.5.1
public function duplicate_product( $request ) { $product_id = $request->get_param( 'id' ); $product = wc_get_product( $product_id ); if ( ! $product ) { return new WP_Error( 'woocommerce_rest_product_invalid_id', __( 'Invalid product ID.', 'woocommerce' ), array( 'status' => 404 ) ); } // Creating product object from request data in preparation for copying. $updated_product = $this->prepare_object_for_database( $request ); $duplicated_product = ( new WC_Admin_Duplicate_Product() )->product_duplicate( $updated_product ); if ( is_wp_error( $duplicated_product ) ) { return new WP_Error( 'woocommerce_rest_product_duplicate_error', $duplicated_product->get_error_message(), array( 'status' => 400 ) ); } $response_data = $duplicated_product->get_data(); return new WP_REST_Response( $response_data, 200 ); }