Dans ce tutoriel, nous allons voir comment créer un produit Woocommerce en PHP.
Je me suis retrouvé dans un cas où je devais générer des articles avec de nombreux champs de manière automatisé et l’interface Woocommerce d’import avait ses limites (import des images et d’attributs).
Créer un produit
La création d’un produit est simple, c’est le même fonctionnement que pour la création d’un post en général sous WordPress. Si vous voulez rajouter un contenu (du texte), ajoutez ‘post_content’ => ‘votre texte’ dans le tableau ci-dessous.
// Création de l'article et récupération de son ID
$postId = wp_insert_post([
'post_title' => 'nom article',
'post_type' => 'product',
'post_status' => 'publish'
]);
L’intérêt du $postId est que généralement on va faire des manipulations sur le nouveau produit. On pourra charger le produit sous forme d’objet avec la fonction wc_get_product().
Créer une catégorie
La logique est similaire à celle de la création d’un produit. Je montre aussi comment affecter cette catégorie à un produit.
Pour moi, la catégorie d’un produit si on part sur l’exemple du matériel informatique serait : Clavier, Souris, etc…
// Création de la catégorie et récupération de son ID$categoryId = wp_insert_term('Ma catégorie', 'product_cat', ['slug' => 'ma-categorie']);
// Récupération du produit $product = wc_get_product($postId); // Affecter une catégorie$product->set_category_ids($categoryId);
// Sauvegarde des modifications $product->save();
Créer un attribut
Je vais parler de la création d’attributs globaux des produits. On peut par exemple créer un attribut de type couleur :
$attributeId = wc_create_attribute([ 'name' => 'color', 'slug' => $slug, 'type' =>
'select', 'order_by' => 'menu_order', 'has_archives' => FALSE, ]);
Aller plus loin
Pour intégrer ce code custom dans un plugin, vous pouvez consulter le tutoriel sur la création d’un plugin WordPress. Si vous avez des questions sur des éléments qui ne sont pas présents dans le tutoriel, n’hésitez pas à mettre un commentaire pour les poser.
2 réponses sur « Woocommerce, créer un produit en PHP »
Alors dans l’idée, on pourrait même le faire avec l’objet CRUD WC_Product.
Ça permet d’avoir une approche plus clean à mon sens, et surtout, plus durable (l’objet restera avec Woo, alors que si demain le nom du type de post change, où la manière de les enregistrer en BDD … C’est le bazar )
Exemple :
$product = new WC_Product_Simple();
$product->save();
Source : https://woocommerce.com/document/developing-using-woocommerce-crud-objects/
Bien vu :),
Je vais intégrer ton retour dans le tuto.
Merci pour ton retour !