Soporte » Plugins y Hacks » WooCommerce » Mostrar tienda a todos pero solo registrados puedan comprar

  • Resuelto xxsakodaxx

    (@xxsakodaxx)


    Hola estoy creando mi primera web con Woocommerce ya que me es mas facil porque manejo wordpress pero mi duda es que al mostrar mi tienda requiero que cualquier persona pueda ver los productos pero solo los registrados puedan comprar el producto para asi evitar pedidos en vano.
    mi web es http://www.dcboutiqueperu.com aun la estoy terminando pero ya me tope con ese problema ya que probe y cualquiera puede pedir un producto no necesariamente que este registrado.
    La forma de pago es contra entrega .
    Gracias

    La página con la que necesito ayuda: [accede para ver el enlace]

Viendo 4 respuestas - de la 1 a la 4 (de un total de 4)
  • Hola @xxsakodaxx,

    En la configuración general de WooCommerce hay un check que pone «Permitir la compra como invitado». Desactívalo. Al estar desactivado obliga a registrarse para terminar el pedido y no permite compras sin registro.

    Un saludo

    Interesante, me uno a la peticion! Solamente que quisiera que se muestre como un catalogo a los usuarios normales y si quieren ver precios y comprar que se tengan que registrar y nosotros asignarles su lista de precios o descuentos, se puede??

    Por cierto @xxsakodaxx acabo de ver tu tienda y esta padrisima!!! Elegiste algun tema? Yo apenas empiezo, que tan dificl es levantar una tienda asi como la tuya?

    Moderador Jose Luis

    (@jose64)

    Hola.

    Con este código conviertes la tienda en catálogo para usuarios no autorizados:

    
    add_action('after_setup_theme','user_activate_filter') ;
    function user_activate_filter(){
    add_filter('woocommerce_get_price_html', 'user_show_price_logged');
    }
    
    function user_show_price_logged($price){
    
    if(current_user_can('customer') or current_user_can('editor') or current_user_can('shop_manager') or current_user_can('administrator') ){
    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 '';
    }
    }
    

    El filtro modifica el precio, la función se encarga de que si el usuario es un cliente, editor, encargado de tienda o administrador presente el precio y si no aparte de eliminar el precio elimina las cantidades y el botón de añadir, así que se ve un catálogo.

    Cuando se registra un usuario nuevo sigue sin ver los precios hasta que le cambies el rol a cliente. Creo que es lo que querías, en caso contrario con registrarlo como cliente o cambiar el rol de cliente por usuario en el condicional lo solucionas.

    Saludos

    • Esta respuesta fue modificada hace 4 años, 5 meses por Jose Luis. Razón: Ampliar explicación
    Moderador Jose Luis

    (@jose64)

    Por cierto, me olvidaba de decirte que el tema que usa el compañero es

    Extra de Elegant Themes

    Pero tienes muchos temas en el repositorio que te pueden servir, puedes mirar Storefront, aparte de ser gratuito está optimizado para WooCommerce y te da mucho juego.

Viendo 4 respuestas - de la 1 a la 4 (de un total de 4)
  • El debate ‘Mostrar tienda a todos pero solo registrados puedan comprar’ está cerrado a nuevas respuestas.