Créer des variations de produits WooCommerce programmatiques avec de nouvelles valeurs d'attribut
Cette question aborde le défi de la création de variations de produits pour un produit variable préexistant dans WooCommerce 3 . L'objectif est d'automatiser ce processus tout en gérant également la création de nouvelles valeurs d'attribut pour les variantes qui n'existent pas encore.
Solution
La solution fournie exploite un PHP personnalisé fonction appelée create_product_variation(). Cette fonction prend deux paramètres :
La fonction commence par créer un objet de publication de variation de produit. Cet objet est ensuite utilisé pour créer une nouvelle publication, représentant la variation. Ensuite, une instance de l'objet WC_Product_Variation est créée et utilisée pour définir les valeurs d'attribut de la variation.
La fonction parcourt les attributs de variation fournis dans le tableau $variation_data. Pour chaque attribut, il vérifie si la taxonomie correspondante existe. Si ce n'est pas le cas, la taxonomie est créée à l'aide de la fonction register_taxonomy().
Pour chaque valeur d'attribut spécifiée dans $variation_data['attributes'], la fonction vérifie si le terme existe déjà. Si ce n'est pas le cas, il crée le terme en utilisant wp_insert_term(). Le slug du terme est ensuite obtenu et utilisé pour mettre à jour la méta de publication pour la variation.
Des données de variation supplémentaires, telles que le SKU, les prix et la quantité en stock, sont également définies à l'aide de méthodes appropriées. Notez que lors de la gestion du stock, la méthode set_manage_stock() doit être définie sur true.
Enfin, l'objet de variation est enregistré à l'aide de la méthode save().
Exemple d'utilisation
L'exemple fourni montre comment créer une variation de produit avec deux attributs (« taille » et « couleur »), un SKU unique, des prix et une quantité en stock :
$parent_id = 746; // Or get the variable product id dynamically // The variation data $variation_data = array( 'attributes' => array( 'size' => 'M', 'color' => 'Green', ), 'sku' => '', 'regular_price' => '22.00', 'sale_price' => '', 'stock_qty' => 10, ); // The function to be run create_product_variation( $parent_id, $variation_data );
Une fois ce code est exécuté, il créera une nouvelle variante de produit avec les attributs, les prix et les informations de stock spécifiés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!