Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mencipta Variasi Produk WooCommerce dengan Atribut Baharu Secara Program?

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

Linda Hamilton
Linda Hamiltonasal
2024-11-18 11:30:02348semak imbas

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

}

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
}

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

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!

Kenyataan:
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