我有为客人隐藏价格的功能,但我想显示特定产品的价格(通过 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;
}
定义允许的产品 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 );