Dies ist ein kurzer Code, um Ihre Frage zu lösen, lasse ich Sie gesamten Code, können Sie nur verwenden, die Sie benötigen.
Die erste ist zu überprüfen, ob get_product
Funktion existiert, und überprüfen Sie den Produkttyp, um ein korrektes Produktobjekt mit der ID (in meinem Fall $idProduct
) zu erstellen.
Es funktioniert auf woocommerce 3.x, ich teste es nicht auf woocommerce < 3.x.
if(function_exists('get_product')) {
$product = get_product($idProduct);
if ($product->is_type('variable')) {
$product = new WC_Product_Variable($idProduct);
$available_variations = $product->get_available_variations(); //get all child variations
$variation_variations = $product- >get_variation_attributes(); // get all attributes by variations
// taxonomy => terms
// pa_attribute-color => array('blue', 'red', green)
// Use ex: get_taxonomy('pa_attribute-color')->labels; to get the Name and not the slug to attributes, it can be the taxonomy
// Use ex: get_term_by('name', 'pa_attribute-color', 'pa_attribute-color); to get the Name/label
$result = array($available_variations , $attributes); // only to see the result you can use var_dump, error_log, etc.
//...
//...
}elseif ($product->is_type('bundle') && class_exists('WC_Product_Bundle')) {
$product = new WC_Product_Bundle($idProduct);
}else{
$product = new WC_Product($idProduct);
}
}
Auch versuchen Sie mit:
$product->get_attribute($key);
wc_attribute_label($key);
wo $key
pa_color sein kann, pa_size, etc
ich Ihnen helfen hoffen.