Maison  >  Article  >  développement back-end  >  Comment créer un produit variable et ajouter de nouvelles valeurs d'attribut par programme dans WooCommerce ?

Comment créer un produit variable et ajouter de nouvelles valeurs d'attribut par programme dans WooCommerce ?

DDD
DDDoriginal
2024-11-09 18:42:02864parcourir

How to Create a Variable Product and Add New Attribute Values Programmatically in WooCommerce?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn