Automattic\WooCommerce\Internal\ProductFeed\Integrations\POSCatalog
ApiController::generate_feed
Starts generating a feed.
Метод класса: ApiController{}
Хуков нет.
Возвращает
WP_REST_Response. The response object.
Использование
$ApiController = new ApiController(); $ApiController->generate_feed( $request ): WP_REST_Response;
- $request(WP_REST_Request) (обязательный)
- .
Код ApiController::generate_feed() ApiController::generate feed WC 10.5.2
public function generate_feed( WP_REST_Request $request ): WP_REST_Response { // phpcs:ignore Squiz.Commenting.FunctionComment.IncorrectTypeHint
$generator = $this->container->get( AsyncGenerator::class );
try {
$params = array();
if ( null !== $request['_product_fields'] ) {
$params['_product_fields'] = $request['_product_fields'];
}
if ( null !== $request['_variation_fields'] ) {
$params['_variation_fields'] = $request['_variation_fields'];
}
$response = $request->get_param( 'force' )
? $generator->force_regeneration( $params )
: $generator->get_status( $params );
// Use the right datetime format.
if ( isset( $response['scheduled_at'] ) ) {
$response['scheduled_at'] = wc_rest_prepare_date_response( $response['scheduled_at'] );
}
if ( isset( $response['completed_at'] ) ) {
$response['completed_at'] = wc_rest_prepare_date_response( $response['completed_at'] );
}
// Remove sensitive data from the response.
if ( isset( $response['action_id'] ) ) {
unset( $response['action_id'] );
}
if ( isset( $response['path'] ) ) {
unset( $response['path'] );
}
} catch ( \Exception $e ) {
wc_get_logger()->error(
'Feed generation failed',
array( 'error' => $e->getMessage() )
);
return new WP_REST_Response(
array(
'success' => false,
'message' => __( 'An error occurred while generating the feed.', 'woocommerce' ),
),
500
);
}
return new WP_REST_Response( $response );
}