php 为访客用户显示某些类别中的产品价格

zed5wv10  于 2022-10-30  发布在  PHP
关注(0)|答案(1)|浏览(175)

我想显示给客人用户价格的产品,但只有在某些类别。。此代码禁用产品价格和添加到购物车按钮的所有产品。。提到我有问题隐藏添加到购物车按钮,它不工作(我使用woodmart主题)

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

function hide_price_and_button( $price, $product ) {
   if ( ! is_user_logged_in() ) { 
      $price = '<div><a href="' . get_permalink( wc_get_page_id( 'myaccount' ) ) . '">' . __( 'Login to see prices', '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', 1000 );
   }
   return $price;
}
mzmfm0qo

mzmfm0qo1#

您可以使用filter并将woocommerce_is_purchasable设置为false。

add_filter( 'woocommerce_is_purchasable', '__return_false');

所以你可能会得到这样的结果:

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

function hide_price( $price, $product ) {
   if ( ! is_user_logged_in() ) { 
      $price = '<div><a href="' . get_permalink( wc_get_page_id( 'myaccount' ) ) . '">' . __( 'Login to see prices', 'bbloomer' ) . '</a></div>';
   }
   return $price;
}

add_filter( 'woocommerce_is_purchasable', 'hide_button', 10, 2);

function hide_button( $is_purchasable, $object ) {
   if ( ! is_user_logged_in() ) { 
      $is_purchasable = false;
   }
   return $is_purchasable;
}

相关问题