「通常価格」を尊重して属性バリエーションを表示する必要があります。しかし、試みたにもかかわらず、価格を表示することに成功していません。バリエーションファインを表示する以下のコードを参照してください。価格の表示も手伝ってください。
//Getting product attributes
$product_attributes = $product->get_attributes();
if(!empty($product_attributes)){
//Getting product attributes slugs
$product_attribute_slugs = array_keys($product_attributes);
$count_slug = 0;
echo '<div class="product_attributes">';
foreach ($product_attribute_slugs as $product_attribute_slug){
$count_slug++;
// Removing "pa_" from attribute slug and adding a cap to first letter
$attribute_name = ucfirst( str_replace('pa_', '', $product_attribute_slug) );
//echo $attribute_name . ' (';
$attribute_values = get_terms($product_attribute_slug);
$count_value = 0;
//print_r(array_values($available_variations));
foreach($attribute_values as $attribute_value){
$count_value++;
$attribute_name_value = $attribute_value->name; // name value
$attribute_slug_value = $attribute_value->slug; // slug value
$attribute_slug_value = $attribute_value->term_id; // ID value
echo $attribute_name_value;
}
}
echo '</div>';
//print_r(array_values($attribute_values));
}
次のようにして、変数製品で必要なすべてのデータを取得できますすべての製品バリエーション
if($product->is_type('variable')){
foreach($product->get_available_variations() as $variation ){
// Variation ID
$variation_id = $variation['variation_id'];
echo '<div class="product-variation variation-id-'.$variation_id.'">
<strong>Variation id</strong>: '.$variation_id.'<br>';
// Attributes
$attributes = array();
foreach( $variation['attributes'] as $key => $value ){
$taxonomy = str_replace('attribute_', '', $key );
$taxonomy_label = get_taxonomy( $taxonomy )->labels->singular_name;
$term_name = get_term_by( 'slug', $value, $taxonomy )->name;
$attributes[] = $taxonomy_label.': '.$term_name;
}
echo '<span class="variation-attributes">
<strong>Attributes</strong>: '.implode( ' | ', $attributes ).'</span><br>';
// Prices
$active_price = floatval($variation['display_price']); // Active price
$regular_price = floatval($variation['display_regular_price']); // Regular Price
if( $active_price != $regular_price ){
$sale_price = $active_price; // Sale Price
}
echo '<span class="variation-prices">
<strong>Price</strong>: '.$variation['price_html'].'</span><br>
</div>';
}
}
このコードはテストされ、機能します。