woocommerce - 将可变价格范围更改为选定的可变价格
问题描述
我一直在寻找这种安静的状态。我想用所选变量的价格更改可变价格范围(并隐藏底部的价格,通常在您选择变量后显示)。
为了更改变体价格,我使用以下代码段:
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:我已经在这里找到了这个问题(我也在这里找到了第一个片段),但不幸的是我无法发表评论,因为我是这个页面的新手。
提前致谢!
解决方案
推荐阅读
- android - 我无法确定是什么导致我的应用出现此意外上传错误
- c# - 如何解决 Asp.Net MVC 中与 ActionName 相关的问题?
- python - 从 youtube-analytic-api 获取空行响应
- laravel - 如何在用户表的帮助下显示库存数据
- html - 当我在 chrome 中最小化屏幕时获得空白
- i18next - 在 i18next 中对具有不同 IETF 语言标签的语言使用相同的资源
- amazon-web-services - 如何确保我的 Redis 和 RDS 仅可用于动态实例(AWS Autoscaling)
- java - 用另一个表的数据填充 thymeleaf 下拉列表
- mysql - MySQL:如何用某个点的半径/中心构建多边形?
- javascript - 我怎样才能使这个脚本只在特定的屏幕尺寸以上执行?