Heim > Backend-Entwicklung > PHP-Tutorial > Wie erstelle ich programmgesteuert WooCommerce-Produktvarianten mit neuen Attributen?

Wie erstelle ich programmgesteuert WooCommerce-Produktvarianten mit neuen Attributen?

Linda Hamilton
Freigeben: 2024-11-18 11:30:02
Original
344 Leute haben es durchsucht

How to Create WooCommerce Product Variations with New Attributes Programmatically?

WooCommerce-Produktvariationen mit neuen Attributen programmgesteuert erstellen

Bei der Arbeit mit variablen Produkten in WooCommerce 3 müssen Sie möglicherweise Variationen programmgesteuert erstellen . Dies kann erreicht werden, indem gleichzeitig neue Attributwerte erstellt und im übergeordneten variablen Produkt festgelegt werden.

Produktvariationen erstellen

Um eine Variation für ein variables Produkt zu erstellen, haben wir kann die folgende benutzerdefinierte Funktion verwenden:

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

}
Nach dem Login kopieren

Verarbeitung von Attributwerten und Taxonomieerstellung

Innerhalb der Funktion verbessern wir die Funktionalität durch die Handhabung der Attributwertprüfung und -erstellung:

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

Verwendung

Um diese Funktion zu nutzen, stellen Sie ihr die variable Produkt-ID und das folgende Datenarray zur Verfügung:

// The variation data
$variation_data =  array(
    'attributes' => array(
        'size'  => 'M',
        'color' => 'Green',
    ),
    'sku'           => '',
    'regular_price' => '22.00',
    'sale_price'    => '',
    'stock_qty'     => 10,
);
Nach dem Login kopieren

Fazit

Mit dieser Funktion können Sie jetzt programmgesteuert Produktvariationen mit neuen Attributwerten erstellen und diese nahtlos innerhalb der übergeordneten Variable „Produkt“ einrichten.

Das obige ist der detaillierte Inhalt vonWie erstelle ich programmgesteuert WooCommerce-Produktvarianten mit neuen Attributen?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage