仅在选择变体时显示价格,并相对于正常价格按百分比折扣

Displaying price only when the variation is selected and discount in percentage relatively to the regular price

我有这个问题。让我展示图片,以便更好地解释。

已选择变体产品,但由于所有变体的价格相同,因此价格未显示在底部:

选择了变体产品,因为它们在顶部显示的促销价格与选择后的常规促销价格不同:

我需要的是,只有在选择变体后,价格才会像第二张图片一样显示在底部,并计算促销变体价格和常规变体价格之间的折扣。在这两种情况下我需要相同的行为。

我搜索了很多,但是 none 的东西已经解决了这个问题。这里有一些非常接近的答案:

经过一番搜索,找到了这个简单的专用过滤器挂钩 woocommerce_show_variation_price,它完全符合您的期望:

add_filter( 'woocommerce_show_variation_price', 'filter_show_variation_price', 10, 3 );
function filter_show_variation_price( $condition, $product, $variation ){
    if( $variation->get_price() === "" ) return false;
    else return true;
}

代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件。

已测试并正常工作……这将显示所选的变体价格,即使所有变体价格都相同……