在 Woocommerce 商店页面中显示可变产品的默认变化价格
Display default variation price for variable products in Woocommerce shop pages
我想知道如何在商店页面上显示产品价格。现在我的可变产品显示了它们的价格范围。
但这两个产品都设置了默认可变参数:
当你点击一个产品时,它会显示如下:
如您所见,该特定选择的价格是 €300
,我想知道如何在商店页面上显示 €300
而不是 €150-€2.003
可以获取可变产品中设置的默认变化价格并将其显示在商店和存档页面中:
add_filter( 'woocommerce_variable_price_html', 'custom_variable_displayed_price', 10, 2 );
function custom_variable_displayed_price( $price_html, $product ) {
// Only for archives pages
if ( ! ( is_shop() || is_product_category() || is_product_tag() ) )
return $price_html;
// Searching for the default variation
$default_attributes = $product->get_default_attributes();
// Loop through available variations
foreach($product->get_available_variations() as $variation){
$found = true; // Initializing
// Loop through variation attributes
foreach( $variation['attributes'] as $key => $value ){
$taxonomy = str_replace( 'attribute_', '', $key );
// Searching for a matching variation as default
if( isset($default_attributes[$taxonomy]) && $default_attributes[$taxonomy] != $value ){
$found = false;
break;
}
}
// When it's found we set it and we stop the main loop
if( $found ) {
$default_variaton = $variation;
break;
} // If not we continue
else {
continue;
}
}
// If no default variation is found we exit.
if( ! isset($default_variaton) )
$price_html;
// Formatting the price
if ( $default_variaton['display_price'] !== $default_variaton['display_regular_price'] && $product->is_on_sale()) {
$price_html = '<del>' . wc_price($default_variaton['display_regular_price']) . '</del> <ins>' . wc_price($default_variaton['display_price']) . '</ins>';
} else {
$price_html = wc_price($default_variaton['display_price']);
}
return $price_html;
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。已测试并有效。
相关回答:
我想知道如何在商店页面上显示产品价格。现在我的可变产品显示了它们的价格范围。
但这两个产品都设置了默认可变参数:
当你点击一个产品时,它会显示如下:
如您所见,该特定选择的价格是 €300
,我想知道如何在商店页面上显示 €300
而不是 €150-€2.003
可以获取可变产品中设置的默认变化价格并将其显示在商店和存档页面中:
add_filter( 'woocommerce_variable_price_html', 'custom_variable_displayed_price', 10, 2 );
function custom_variable_displayed_price( $price_html, $product ) {
// Only for archives pages
if ( ! ( is_shop() || is_product_category() || is_product_tag() ) )
return $price_html;
// Searching for the default variation
$default_attributes = $product->get_default_attributes();
// Loop through available variations
foreach($product->get_available_variations() as $variation){
$found = true; // Initializing
// Loop through variation attributes
foreach( $variation['attributes'] as $key => $value ){
$taxonomy = str_replace( 'attribute_', '', $key );
// Searching for a matching variation as default
if( isset($default_attributes[$taxonomy]) && $default_attributes[$taxonomy] != $value ){
$found = false;
break;
}
}
// When it's found we set it and we stop the main loop
if( $found ) {
$default_variaton = $variation;
break;
} // If not we continue
else {
continue;
}
}
// If no default variation is found we exit.
if( ! isset($default_variaton) )
$price_html;
// Formatting the price
if ( $default_variaton['display_price'] !== $default_variaton['display_regular_price'] && $product->is_on_sale()) {
$price_html = '<del>' . wc_price($default_variaton['display_regular_price']) . '</del> <ins>' . wc_price($default_variaton['display_price']) . '</ins>';
} else {
$price_html = wc_price($default_variaton['display_price']);
}
return $price_html;
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。已测试并有效。
相关回答: