Heim > Backend-Entwicklung > PHP-Tutorial > Wie erstelle ich ein variables Produkt und füge programmgesteuert neue Attributwerte in WooCommerce hinzu?

Wie erstelle ich ein variables Produkt und füge programmgesteuert neue Attributwerte in WooCommerce hinzu?

DDD
Freigeben: 2024-11-09 18:42:02
Original
888 Leute haben es durchsucht

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

Erstellen Sie ein variables Produkt und fügen Sie programmgesteuert neue Attributwerte in WooCommerce hinzu

WooCommerce bietet ein flexibles Framework für die Verwaltung von Produkten, einschließlich der Möglichkeit, Produkte zu erstellen Produktvariationen mit eindeutigen Attributwerten. In dieser Anleitung wird gezeigt, wie Sie programmgesteuert ein WooCommerce-Variablenprodukt erstellen und ihm neue Attributwerte hinzufügen.

1. Erstellen Sie ein variables Produkt:

Angenommen, Sie haben eine übergeordnete oder variable Produkt-ID, können Sie mit dem folgenden Code eine neue Produktvariante erstellen:

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);
    ...
}
Nach dem Login kopieren

2. Neue Attributwerte hinzufügen:

Für jedes Attribut und jeden Wert, den Sie hinzufügen möchten, müssen Sie prüfen, ob der Begriff vorhanden ist, und ihn erstellen, wenn nicht:

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);
}
Nach dem Login kopieren

3. Legen Sie zusätzliche Variationsdaten fest:

Legen Sie alle zusätzlichen Werte wie SKU, Preise und Lagerbestand fest, indem Sie die entsprechenden Methoden für das Variationsobjekt aufrufen:

$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']);
...
Nach dem Login kopieren

4. Speichern Sie die Variation:

Speichern Sie abschließend alle an der Variation vorgenommenen Änderungen:

$variation->save(); 
Nach dem Login kopieren

Beispielverwendung:

Zum Erstellen ein variables Produkt mit zwei Attributen und zwei Variationen:

$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);
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie erstelle ich ein variables Produkt und füge programmgesteuert neue Attributwerte in WooCommerce hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage