Selamat datang kembali di riffamedia.com. Kali ini kita akan bahas mengenai woocommerce lagi. Karena memang saat ini eranya toko online, dan dari sekian banyak platform yang ada, Saya tetap memilih wordpress sebagai cms andalan saya. Karena sangat mudah di customize, dan banyak fiture nya, serta banyak plugin yang tersedia. Dan dari sekian banyak plugin chart untuk toko online, woocommerce lah yang paling memiliki fiture lengkap dan mudah di customize. Jadi mari kita oprek lagi untuk mengkostimzie woocommerce untuk Menambahkan attribute ke dalam product secara otomatis.

Ketika kita posting produk dalam bentuk variable, tentu kita harus setting banyak sekali sebelum kita publish post kita. Seperti Menambahkan judul, Setting variasi , upload gambar dan lain sebagainya. Setting variasi didalam woocommerce membutuhkan setidaknya 5 kali klik mouse. Sehingga kita akan ribet dan memakan sedikit waktu kita. Bagai mana jika kita bikin otomatis agar memangkas waktu untuk proses import attribute untuk produk variable?

Script yang akan saya share ini anda bisa gunakan pada event saat save post. Jadi ketika save maka akan otomatis terconfigurasi. Ok mari kita lihat bagaimana scriptnya.

$productid = "";
$Usedforvariations=true;
$Visibleontheproductpage = true;
$position = 0;

$attributes = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}woocommerce_attribute_taxonomies" );
$data = array();
foreach( $attributes as $attribute ){
$taxonomy = 'pa_'.$attribute->attribute_name;
$attribute_id = $attribute->attribute_id;
//$term_ids = get_terms(array('taxonomy' => $taxonomy, 'fields' => 'ids')); // Tidak memasukan term secara otomatis
$term_ids = get_terms(array('taxonomy' => $taxonomy, 'fields' => 'ids', 'hide_empty' => false)); // Memasukkan term secara otomatis
$attribute = new WC_Product_Attribute();
$attribute ->set_id( $attribute_id );
$attribute ->set_name( $taxonomy );
$attribute ->set_options( $term_ids );
$attribute ->set_position( $position );
$attribute ->set_visible( $Visibleontheproductpage );
$attribute ->set_variation($Usedforvariations);
$data[$taxonomy] = $product_attribute;
$position++;
}
$product = wc_get_product($productid);
$product->set_attributes( $data );
$product->save();

Selamat mencoba ya sobat semuanya.