Maison > développement back-end > tutoriel php > 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
Libérer: 2024-11-09 18:42:02
original
867 Les gens l'ont consulté

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);
    ...
}
Copier après la connexion

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);
}
Copier après la connexion

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']);
...
Copier après la connexion

4. Enregistrez la variante :

Enfin, enregistrez toutes les modifications apportées à la variante :

$variation->save(); 
Copier après la connexion

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);
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal