Set Product Attribute Function

function set_product_attributes($product_id, $taxonomy, $term_name) {
	$taxonomy = 'pa_' . $taxonomy;
	$term_slug = sanitize_title($term_name);

	if (!term_exists($term_name, $taxonomy)) {
		$term_data = wp_insert_term($term_name, $taxonomy);
		$term_id = $term_data['term_id'];
	} else {
		$term_id = get_term_by('name', $term_name, $taxonomy)->term_id;
	}

	$product = wc_get_product($product_id);

	$attributes = (array) $product->get_attributes();

	/* if (array_key_exists($taxonomy, $attributes)) {
	foreach ($attributes as $key => $attribute) {
	if ($key == $taxonomy) {
	$options = (array) $attribute->get_options();
	$options[] = $term_id;
	//$options = [$term_id];
	$attribute->set_options($options);
	$attributes[$key] = $attribute;
	break;
	}
	}
	$product->set_attributes($attributes);
	} else {
	$attribute = new WC_Product_Attribute();

	$attribute->set_id(sizeof($attributes) + 1);
	$attribute->set_name($taxonomy);
	$attribute->set_options(array($term_id));
	$attribute->set_position(sizeof($attributes) + 1);
	$attribute->set_visible(true);
	$attribute->set_variation(false);
	$attributes[] = $attribute;

	$product->set_attributes($attributes);
	} */

	$attribute = new WC_Product_Attribute();

	$attribute->set_id(wc_attribute_taxonomy_id_by_name($taxonomy));
	$attribute->set_name($taxonomy);

	$attribute->set_options(array($term_id));

	//$attribute->set_position(sizeof($attributes) + 1);
	$attribute->set_visible(true);
	$attribute->set_variation(false);
	$attributes[$taxonomy] = $attribute;

	$product->set_attributes($attributes);

	$product->save();
}

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan.