Bagaimana untuk Mencipta Variasi Produk WooCommerce dengan Atribut Baharu Secara Program?

Linda Hamilton
Lepaskan: 2024-11-18 11:30:02
asal
266 orang telah melayarinya

How to Create WooCommerce Product Variations with New Attributes Programmatically?

Buat Variasi Produk WooCommerce dengan Atribut Baharu Secara Pengaturcaraan

Apabila bekerja dengan produk berubah-ubah dalam WooCommerce 3 , anda mungkin menghadapi keperluan untuk mencipta variasi secara pengaturcaraan . Ini boleh dicapai sambil turut mencipta nilai atribut baharu dan menetapkannya dalam produk pembolehubah induk.

Mencipta Variasi Produk

Untuk mencipta variasi bagi produk berubah, kami boleh menggunakan fungsi tersuai berikut:

/**
 * Create a product variation for a defined variable product ID.
 *
 * @since 3.0.0
 * @param int   $product_id | Post ID of the product parent variable product.
 * @param array $variation_data | The data to insert in the product.
 */
function create_product_variation( $product_id, $variation_data ){
    // Get the Variable product object (parent)
    $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()
    );

    // Creating the product variation
    $variation_id = wp_insert_post( $variation_post );

    // Get an instance of the WC_Product_Variation object
    $variation = new WC_Product_Variation( $variation_id );

}
Salin selepas log masuk

Mengendalikan Nilai Atribut dan Penciptaan Taksonomi

Dalam fungsi, kami meningkatkan fungsi dengan mengendalikan semakan dan penciptaan nilai atribut:

// Iterating through the variations attributes
foreach ($variation_data['attributes'] as $attribute => $term_name )
{
    $taxonomy = 'pa_'.$attribute; // The attribute taxonomy

        // If taxonomy doesn't exists we create it (Thanks to Carl F. Corneil)
        if( ! taxonomy_exists( $taxonomy ) ){
            register_taxonomy(
                $taxonomy,
               'product_variation',
                array(
                    'hierarchical' => false,
                    'label' => ucfirst( $attribute ),
                    'query_var' => true,
                    'rewrite' => array( 'slug' => sanitize_title($attribute) ), // The base slug
                ),
            );
        }

        // Check if the Term name exist and if not we create it.
        if( ! term_exists( $term_name, $taxonomy ) )
            wp_insert_term( $term_name, $taxonomy ); // Create the term
}
Salin selepas log masuk

Penggunaan

Untuk menggunakan fungsi ini, berikannya ID produk berubah-ubah dan tatasusunan data berikut:

// The variation data
$variation_data =  array(
    'attributes' => array(
        'size'  => 'M',
        'color' => 'Green',
    ),
    'sku'           => '',
    'regular_price' => '22.00',
    'sale_price'    => '',
    'stock_qty'     => 10,
);
Salin selepas log masuk

Kesimpulan

Melalui fungsi ini, anda kini boleh mencipta variasi produk secara pemrograman dengan nilai atribut baharu, menetapkannya dalam produk pembolehubah induk dengan lancar.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Variasi Produk WooCommerce dengan Atribut Baharu Secara Program?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan