Ocultar precios y funcionalidad de pago en WooCommerce

11 mar 2013, 22:46:10
Vistas: 52.3K
Votos: 19

Sé que esta pregunta puede ser demasiado amplia, pero estoy buscando algo de orientación. Mi cliente tiene una tienda WooCommerce con 30-40 productos. Por alguna razón, ya no quieren vender en línea, pero desean mantener las páginas de productos, información, etc. en su sitio web.

¿Hay alguna manera, usando hooks u otros métodos, de ocultar elementos como precios, botón de añadir al carrito, etc. en WooCommerce? ¿O debería simplemente editar los archivos de plantilla PHP?

1
Comentarios

El soporte para WooCommerce y otros plugins/temas de terceros está fuera de tema y no entra en el alcance de este stack. Deberías preguntar a través de sus canales de soporte oficiales o en sus grupos y comunidades. Esta pregunta está aquí por razones históricas

Tom J Nowell Tom J Nowell
30 sept 2021 14:56:12
Todas las respuestas a la pregunta 3
3
23

Afortunadamente WooCommerce tiene muchos hooks, esto elimina precios y botones:

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 );

Puedes profundizar en content-product.php y content-single-product.php si necesitas eliminar más elementos.

Imagino que hay más que solo los precios/botones que quieres ocultar/eliminar (como páginas/funciones), este tutorial te da algunas pistas

15 mar 2013 11:25:46
Comentarios

¿Estoy en lo correcto al pensar que esos hooks deben insertarse en functions.php? Si es así, ¿hay alguna sección en particular donde deba colocarlos? Si funcionan, presumiblemente la funcionalidad del carrito ya no será visible, aparte de algunos estilos, ¿es correcto?

James James
1 dic 2013 16:41:13

sí, puedes ponerlos en functions.php y no importa dónde los coloques dentro de otra función. Por lo general, colocarlos al final del archivo es lo más seguro, siempre y cuando no los pongas después del último ?>. Esto no eliminará la página del carrito, pero sí eliminará la posibilidad de agregar cualquier cosa al carrito. Si no quieres ver la página del carrito en ningún lugar, deberías estar relativamente seguro.

Ewout Ewout
5 dic 2013 11:10:35

Funciona. Pero esto es extraño. Después de aplicar esto, las imágenes de los productos dejaron de aparecer. Muestra un espacio vacío para su ubicación, y cuando paso el mouse sobre ellas y hago clic, me muestran la imagen correcta. ¿Tienes alguna idea de por qué está sucediendo esto?

Brethlosze Brethlosze
2 ago 2016 20:08:06
2
13

Extendiendo el código anterior (gracias Ewout), el siguiente código eliminará todos los precios y botones de 'añadir al carrito' en todos los productos de WooCommerce, además de proporcionar una explicación del porqué. Necesitaba este código para un sitio web que ofrece productos de venta directa y para cumplir con sus normas, no puedo mostrar precios al público en general.

Añade el filtro al archivo functions.php de tu 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 'Solo los <a href="' .get_permalink(woocommerce_get_page_id('myaccount')). '">Usuarios Registrados</a> pueden ver los precios.';
      }

}
15 dic 2013 13:05:49
Comentarios

Esto es extraño. Después de aplicar esto, las imágenes del producto dejaron de aparecer. Muestra un espacio vacío en su ubicación, y cuando paso el mouse sobre ellas y las hago clic, me muestran la imagen correcta. ¿Tienes alguna idea de por qué está sucediendo esto?

Brethlosze Brethlosze
2 ago 2016 20:08:12

Este código no funciona en WooCommerce v3.2.1 :-)

Steve Steve
19 oct 2017 05:44:26
0
add_filter( 'woocommerce_is_purchasable', '__return_false' );
add_filter( 'woocommerce_get_price_html', '__return_empty_string' );

Esto evitará completamente el proceso de compra y ocultará todos los precios al:

  • Hacer que todos los productos no sean comprables (línea 1)
  • Vaciar el HTML del precio (línea 2)
22 ago 2017 04:35:35