Ocultar los precios y la funcionalidad de pago en woocommerce

15

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

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

    
pregunta miles 11.03.2013 - 21:46

3 respuestas

22

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

puedes excavar en content-product.php y content-single-product.php si necesitas eliminar más cosas.

Puedo imaginar que hay más que solo los precios / botones que desea ocultar / eliminar (como páginas / funciones), este tutorial te da algunos consejos

    
respondido por el Ewout 15.03.2013 - 10:25
13

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.';
      }

}
    
respondido por el Angela 15.12.2013 - 12:05
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:

  • Haciendo que todo producto no se pueda comprar (línea 1)
  • HTML de precio de vaciado (línea 2)
respondido por el Nabil Kadimi 22.08.2017 - 03:35

Lea otras preguntas en las etiquetas