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