我一直在寻找安静的地方。我想使用选择的变化价格更改可变价格范围(并在选择变化后将价格隐藏在通常显示的底部)。
要更改差异价格,请使用以下代码段:
add_action( 'woocommerce_before_single_product', 'move_variations_single_price', 1 );
function move_variations_single_price(){
global $product, $post;
if ( $product->is_type( 'variable' ) ) {
add_action( 'woocommerce_single_product_summary', 'replace_variation_single_price', 10 );
}
}
function replace_variation_single_price() {
?>
<style>
.woocommerce-variation-price {
display: none;
}
</style>
<script>
jQuery(document).ready(function($) {
var priceselector = '.product p.price';
var originalprice = $(priceselector).html();
$( document ).on('show_variation', function() {
$(priceselector).html($('.single_variation .woocommerce-variation-price').html());
});
$( document ).on('hide_variation', function() {
$(priceselector).html(originalprice);
});
});
</script>
<?php
}
对于具有不同价格的可变产品来说效果很好,但是,如果从所有变体成本相同的可变产品中选择变体,则确实会隐藏价格。
要使用“ From(ab)X€”替换价格范围,请使用以下代码段:
function wc_custom_variable_price( $price, $product ) {
// Main Price
$prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
$price = $prices[0] !== $prices[1] ? sprintf( __( 'ab %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
// Sale Price
$prices = array( $product->get_variation_regular_price( 'min', true ), $product->get_variation_regular_price( 'max', true ) );
sort( $prices );
$saleprice = $prices[0] !== $prices[1] ? sprintf( __( 'ab %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
if ( $price !== $saleprice ) {
$price = '' . $saleprice . ' ' . $price . '';
}
return $price;
}
add_filter( 'woocommerce_variable_sale_price_html', 'wc_custom_variable_price', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'wc_custom_variable_price', 10, 2 );
所以基本上,我的问题是我做错了什么,或者是否有任何方法可以显示变化成本相同的可变产品的价格...
PS:我已经在这里找到了这个问题(在这里我也找到了第一个片段),但是不幸的是,由于我是此页面的新手,所以我无法发表评论。
谢谢!