J’ai récemment eu à faire l’ajout de produits « dynamiques » dans Woocommerce, pour un système de réservation en ligne. Il existe un ensemble de solutions possibles, cependant j’ai fait le choix d’utiliser celle qui me semblait la plus simple et la plus propre.
$data = [ 'name' => 'Réservation du '. $start .' au '. $end, 'type' => 'simple', 'regular_price' => $deposit, 'description' => 'Acompte de réservation du'. $start .' au '. $end, 'short_description' => 'Acompte de réservation', 'images' => [ [ 'src' => 'http://domain.com/wp-content/uploads/2017/08/image.jpg', 'position' => 0 ] ] ];
Vous trouverez la liste des champs possible dans la Documentation de L’API REST de Woocommerce.
$wp_rest_request = new WP_REST_Request( 'POST' ); $wp_rest_request->set_body_params( $data ); $products_controller = new WC_REST_Products_Controller; $wp_rest_response = $products_controller->create_item( $wp_rest_request );
Ensuite vous pouvez facilement retourner les informations du produit ajouté avec la methode get_data() (héritée de Wp_HTTP_Response), celle ci retourne les données relatives au produit (dont l’identifiant).
$datas = $wp_rest_response->get_data();
À propos de l’auteur