Al extender el código anterior (gracias a Ewout), el siguiente código eliminará todos los precios y los botones "agregar al carrito" en todos los productos de comercio de woocom, así como una explicación de por qué. Necesitaba el código para un sitio web que ofrece productos de venta directa y para cumplir con sus reglas, no puedo mostrar los precios al público en general.
Agregue el filtro al archivo functions.php de su tema.
add_filter('woocommerce_get_price_html','members_only_price');
function members_only_price($price){
if(is_user_logged_in() ){
return $price;
}
else {
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
return 'Only <a href="' .get_permalink(woocommerce_get_page_id('myaccount')). '">Registered Users</a> are able to view pricing.';
}
}