如何向客人展示具体产品价格

问题描述 投票:0回答:1

我有为客人隐藏价格的功能,但我想显示特定产品的价格(通过 ID)..

add_filter( 'woocommerce_get_price_html', 'bbloomer_hide_price_addcart_not_logged_in', 9999, 2 );

function bbloomer_hide_price_addcart_not_logged_in( $price, $product ) {
  if ( ! is_user_logged_in() ) { 
     $price = '<div><a style="color: #F15F33; font-weight: bold;" href="' . get_permalink( wc_get_page_id( 'myaccount' ) ) . '">' . __( 'Prijavite se da bi vidjeli cijenu', 'bbloomer' ) . '</a></div>';
     remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
     remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
  }

  return $price;
}
php wordpress woocommerce hook-woocommerce
1个回答
1
投票

定义允许的产品 id 数组,然后从

$product->get_id()
获取产品 id 并检查该产品是否在允许的产品 id 数组中。

如果没有,那么就做你隐藏的事情,否则跳过。

function bbloomer_hide_price_addcart_not_logged_in( $price, $product ) {
    // Define allowed product ids.
    $allowed_product_ids = array( 101, 102, 103 );

    if ( ! is_user_logged_in() && ! in_array( $product->get_id(), $allowed_product_ids, true ) ) {
        $price = '<div><a style="color: #F15F33; font-weight: bold;" href="' . get_permalink( wc_get_page_id( 'myaccount' ) ) . '">' . __( 'Prijavite se da bi vidjeli cijenu', 'bbloomer' ) . '</a></div>';
        remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
    }

    return $price;
}
add_filter( 'woocommerce_get_price_html', 'bbloomer_hide_price_addcart_not_logged_in', 9999, 2 );
© www.soinside.com 2019 - 2024. All rights reserved.