Ocultar precios y funcionalidad de pago en woocommerce

17

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

¿Hay alguna manera, usando ganchos o de otra manera, para ocultar cosas como precios, agregar al botón de carrito, etc. en woocommerce? ¿O debería simplemente editar los archivos de plantilla php?

millas
fuente

Respuestas:

23

Afortunadamente, WooCommerce tiene muchos ganchos, esto elimina los precios y los 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 );

puede cavar content-product.phpy content-single-product.phpsi necesita eliminar más cosas.

Sin embargo, puedo imaginar que hay más que solo los precios / botones que desea ocultar / eliminar (como páginas / funciones), este tutorial le brinda algunos consejos

Ewout
fuente
¿Estoy en lo cierto al pensar que esos ganchos tienen que insertarse en functions.php? Si es así, ¿hay alguna sección en particular en la que deba incluirlos? Si funcionan, presumiblemente la funcionalidad del carrito ya no será visible, aparte de algunos estilos, ¿no es así?
James
1
sí, puedes ponerlos en functions.php y no importa dónde los pongas dentro de otra función. Por lo general, todo el camino al final del archivo es el más seguro, siempre que no los coloques después del último ?>. Esto no eliminará la página del carrito, pero en realidad eliminará la posibilidad de agregar algo al carrito. Si no le gusta la página del carrito en algún lugar, debería estar relativamente seguro.
Ewout
Funciona. Pero esto es extraño. Después de aplicar esto, las imágenes del producto dejaron de aparecer. Muestra un espacio vacío para su ubicación, y cuando paso el mouse sobre ellos y hago clic en ellos, me muestran la imagen correcta. ¿Tienes una idea de por qué está sucediendo eso?
Brethlosze
13

Extendiendo el código anterior (gracias Ewout), el siguiente código eliminará todos los precios y los botones 'agregar al carrito' en todos los productos de WooCommerce, y proporcionará 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.';
      }

}
Angela
fuente
Esto es extraño. Después de aplicar esto, las imágenes del producto dejaron de aparecer. Muestra un espacio vacío para su ubicación, y cuando paso el mouse sobre ellos y hago clic en ellos, me muestran la imagen correcta. ¿Tienes una idea de por qué está sucediendo eso?
Brethlosze
Este código no funciona en WooCommerce v 3.2.1:-)
Steve
1
add_filter( 'woocommerce_is_purchasable', '__return_false' );
add_filter( 'woocommerce_get_price_html', '__return_empty_string' );

Esto evitará totalmente el pago y ocultará todos los precios al:

  • Hacer que todo el producto no se pueda comprar (línea 1)
  • Precio de vaciado HTML (línea 2)
Nabil Kadimi
fuente