ホームページ  >  記事  >  バックエンド開発  >  WooCommerce で変数商品を作成し、プログラムで新しい属性値を追加する方法

WooCommerce で変数商品を作成し、プログラムで新しい属性値を追加する方法

DDD
DDDオリジナル
2024-11-09 18:42:02845ブラウズ

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

WooCommerce で変数商品を作成し、プログラムで新しい属性値を追加する

WooCommerce は、商品を管理するための柔軟なフレームワークを提供します。固有の属性値を持つ製品バリエーション。このガイドでは、プログラムで WooCommerce 変数商品を作成し、それに新しい属性値を追加する方法を説明します。

1.可変商品の作成:

親または可変商品 ID がある場合、次のコードを使用して新しい商品バリエーションを作成できます:

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.新しい属性値の追加:

追加する属性と値ごとに、用語が存在するかどうかを確認し、存在しない場合は作成する必要があります:

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.追加のバリエーション データの設定:

バリエーション オブジェクトで適切なメソッドを呼び出して、SKU、価格、在庫などの追加の値を設定します:

$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.バリエーションを保存します:

最後に、バリエーションに加えたすべての変更を保存します:

$variation->save(); 

使用例:

作成するには2 つの属性と 2 つのバリエーションを持つ可変製品:

$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);

以上がWooCommerce で変数商品を作成し、プログラムで新しい属性値を追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。