我想在我的前端模板文件中显示默认的产品属性表单值和常规价格。
下面的var_dump
显示数组中的选项。 我需要获取[default_attributes]
值。
<?php
global $product;
echo var_dump( $product );
// Need to get the [default_attributes] values
?>
答案 0 :(得分:5)
要获取变量产品的默认属性,您可以这样使用 WC_Product
方法get_default_attributes()
:
<?php
global $product;
if( $product->is_type('variable') ){
$default_attributes = $product->get_default_attributes();
// Testing raw output
var_dump($default_attributes);
}
?>
现在找出这个&#34;默认值&#34;的相应产品变体。属性,有点复杂:
<?php
global $product;
if( $product->is_type('variable') ){
$default_attributes = $product->get_default_attributes();
foreach($product->get_available_variations() as $variation_values ){
foreach($variation_values['attributes'] as $key => $attribute_value ){
$attribute_name = str_replace( 'attribute_', '', $key );
$default_value = $product->get_variation_default_attribute($attribute_name);
if( $default_value == $attribute_value ){
$is_default_variation = true;
} else {
$is_default_variation = false;
break; // Stop this loop to start next main lopp
}
}
if( $is_default_variation ){
$variation_id = $variation_values['variation_id'];
break; // Stop the main loop
}
}
// Now we get the default variation data
if( $is_default_variation ){
// Raw output of available "default" variation details data
echo '<pre>'; print_r($variation_values); echo '</pre>';
// Get the "default" WC_Product_Variation object to use available methods
$default_variation = wc_get_product($variation_id);
// Get The active price
$price = $default_variation->get_price();
}
}
?>
这是经过测试和运作的。