Créer un produit variable et ajouter de nouvelles valeurs d'attribut par programmation dans WooCommerce
WooCommerce offre un cadre flexible pour gérer les produits, y compris la possibilité de créer variations de produits avec des valeurs d'attribut uniques. Ce guide montrera comment créer par programme un produit variable WooCommerce et y ajouter de nouvelles valeurs d'attribut.
1. Créer un produit variable :
En supposant que vous disposez d'un identifiant de produit parent ou variable, vous pouvez créer une nouvelle variante de produit en utilisant le code suivant :
function create_product_variation($product_id, $variation_data) { // Get the parent variable product object $product = wc_get_product($product_id); $variation_post = array( 'post_title' => $product->get_name(), 'post_name' => 'product-' . $product_id . '-variation', 'post_status' => 'publish', 'post_parent' => $product_id, 'post_type' => 'product_variation', 'guid' => $product->get_permalink() ); // Insert the product variation $variation_id = wp_insert_post($variation_post); // Create an instance of the variation object $variation = new WC_Product_Variation($variation_id); ... }
2. Ajouter de nouvelles valeurs d'attribut :
Pour chaque attribut et valeur que vous souhaitez ajouter, vous devrez vérifier si le terme existe et le créer sinon :
foreach ($variation_data['attributes'] as $attribute => $term_name) { $taxonomy = 'pa_' . $attribute; // The attribute taxonomy // Check if the term exists if (!term_exists($term_name, $taxonomy)) { wp_insert_term($term_name, $taxonomy); // Create the term } $term_slug = get_term_by('name', $term_name, $taxonomy)->slug; // Get the term slug // Set the attribute data in the product variation update_post_meta($variation_id, 'attribute_' . $taxonomy, $term_slug); }
3. Définir des données de variation supplémentaires :
Définissez toutes les valeurs supplémentaires, telles que le SKU, les prix et le stock, en appelant les méthodes appropriées sur l'objet de variation :
$variation->set_sku($variation_data['sku']); $variation->set_price($variation_data['regular_price']); $variation->set_manage_stock(true); $variation->set_stock_quantity($variation_data['stock_qty']); ...
4. Enregistrez la variante :
Enfin, enregistrez toutes les modifications apportées à la variante :
$variation->save();
Exemple d'utilisation :
Pour créer un produit variable avec deux attributs et deux variantes :
$parent_id = 123; // Your parent variable product ID $variation_data_1 = array( 'attributes' => array( 'color' => 'Blue', 'size' => 'Small' ), 'sku' => 'VAR-1234-BLUE-SMALL', 'regular_price' => '29.99', 'stock_qty' => 20 ); $variation_data_2 = array( 'attributes' => array( 'color' => 'Green', 'size' => 'Medium' ), 'sku' => 'VAR-1234-GREEN-MEDIUM', 'regular_price' => '39.99', 'stock_qty' => 10 ); create_product_variation($parent_id, $variation_data_1); create_product_variation($parent_id, $variation_data_2);
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!