我希望仅在当前正在查看的产品的单个产品页面上隐藏可变产品的价格范围。我不希望对"相关产品"中列出的所有产品禁用价格范围。下面以及页脚小部件中列出的任何产品。
到目前为止,我发现的每个代码段都隐藏了单个商品页面上列出的每种产品的价格范围。它还完全从价格相同的可变产品中隐藏价格,因为它们在选择时不会显示在下拉列表下方。
以下是我发现的代码段示例:
/*
Disable Variable Product Price Range completely:
*/
add_filter( 'woocommerce_variable_sale_price_html', 'my_remove_variation_price', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'my_remove_variation_price', 10, 2 );
function my_remove_variation_price( $price ) {
$price = '';
return $price;
}
以下价格问题示例:
答案 0 :(得分:3)
让我们看看the Visual Hook Guide。价格范围是单个产品摘要的一部分。 woocommerce_single_product_summary
挂钩包含:
* @hooked woocommerce_template_single_title - 5
* @hooked woocommerce_template_single_rating - 10
* @hooked woocommerce_template_single_price - 10
* @hooked woocommerce_template_single_excerpt - 20
* @hooked woocommerce_template_single_add_to_cart - 30
* @hooked woocommerce_template_single_meta - 40
* @hooked woocommerce_template_single_sharing - 50
woocommerce_template_single_price
功能会添加single-product/price.php
模板部分。
所以我们有两种方式:
add_action( 'woocommerce_before_single_product', 'my_remove_variation_price' );
function my_remove_variation_price() {
global $product;
if ( $product->is_type( 'variable' ) ) {
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price' );
}
}
将wp-content/plugins/woocommerce/templates/single-product/price.php
复制到wp-content/themes/YOUR_THEME/woocommerce/single-product/price.php
并替换此代码片段
<p class="price"><?php echo $product->get_price_html(); ?></p>
这一个
<?php if ( ! $product->is_type( 'variable' ) ) : ?>
<p class="price"><?php echo $product->get_price_html(); ?></p>
<?php endif; ?>
答案 1 :(得分:0)
add_filter( 'woocommerce_variable_sale_price_html', 'ninja_remove_variation_price', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'ninja_remove_variation_price', 10, 2 );
function ninja_remove_variation_price( $price ) {
if ( is_product() ) {
$price = '';
}
return $price;
}
答案 2 :(得分:0)
此代码将删除“From”文本,而不会完全删除可变产品的价格。
add_filter( 'woocommerce_variable_price_html','variation_price_min', 9999, 2 );
function variation_price_min( $price, $product ) {
$prices = $product->get_variation_prices( true );
$min_price = current( $prices['price'] );
$price = sprintf( __( '%1$s', 'woocommerce' ), wc_price( $min_price ) );
return $price;
}