• Resuelto theaex24

    (@theaex24)


    Quisiera saber si hay algún método o plugin para que al filtrar productos por color dentro de una categoría que contienes productos variables, se muestre la imagen del color de la variable y no la imagen principal.

    Gracias de antemano

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

Viendo 9 respuestas - de la 1 a la 9 (de un total de 9)
  • Buenas, hace un tiempo me encontre en un caso similar, necesitaba mostrar en woocommerce una imagen distinta a la imagen destacada.

    Lo hice y escribí un post sobre el proceso:
    https://soleguia.es/imagen-de-producto-distinta-destacada/

    Entiendo que podrías modificar un poco el código para que sólo se active al filtrar a través de un is_tax(‘categoria-producto’) y muestre una imagen concreta ( del color o del producto en ese color ).

    Un saludo.

    Iniciador del debate theaex24

    (@theaex24)

    Voy a ponerlo en practica amigo muchas gracias por tu respuesta y te aviso como me va…

    Saludos

    Iniciador del debate theaex24

    (@theaex24)

    @soleguia he rvisado tu post y es interesante la funcion pero en realidad no es lo que busco, esta es mi página como ves tengo varios productos, y en cada producto hay una variacion por talla y color, para ser mas exactos con los pedidos de los clientes, y lo que necesito es que al momento que se filtre en la lista de las categorias por color se muestre el color de la variacion dejando de lado la imagen principal, para hacer mas funcional el filtro, ya que es un poco confuso filtrar naranjas y ver productos en marron, es algo que nosotros entendemos pero el usuario no y es lo que me preocupa, aca hay una pagina que tiene esa funcion pero yo se que no esta en woocommerce pero quiero saber si hay algo que cumpla esa misma funcion esta es la pagina de ejemplo

    • Esta respuesta fue modificada hace 6 años, 5 meses por theaex24.

    Pero ¿quieres que cambie la imagen en la ficha de producto o que en la tienda, todos los productos muestren su variante azul?

    En la ficha de producto es cuestión de asignar la imagen que quieres a la variación concreta.

    En la tienda (donde se ven todos los productos) puedes servirte de los parámetros de la url para recoger el color y buscar la solución con él

    …/categoria-producto/hombre/?swoof=1&pa_color=azul&really_curr_tax=53-product_cat

    En este caso con un $_GET[‘pa_color’] te serviría para tener el color por el que se está filtrando.

    Luego con algo como esto debería servirte

    if ( ! function_exists( 'woocommerce_get_product_thumbnail' ) ) {
    
    	function woocommerce_get_product_thumbnail( $size = 'shop_catalog', $deprecated1 = 0, $deprecated2 = 0 ) {
    		$image_size = apply_filters( 'single_product_archive_thumbnail_size', $size );
    		global $product;
    		if( isset( $_GET['pa_color'] ) && $product->is_type( 'variable' ) )
    		{
    			$color_filtro 			= $_GET['pa_color'];
    			$variations 			= $product->get_available_variations();
    			$imagen_color_filtro 	= false;
    			foreach( $variations as $variation )
    			{
    				if( $variation['attributes']['attribute_pa_color'] == $color_filtro )
    				{
    					$imagen_color_filtro = $variation['image']['url'];
    				}
    			}
    
    			return "<img src='".$imagen_color_filtro."' />";
    		}
    	}
    }

    Realmente de $variation[‘image’] puedes sacar muchos más parametro y podrías hacerlo más elegante con una función que te de la id de la imagen utilizando su url y luego llamar a un
    wp_get_attachment_image( $image_id, $image_size, '', array() );

    Espero que te sirva 😉

    • Esta respuesta fue modificada hace 6 años, 5 meses por soleguia.
    Iniciador del debate theaex24

    (@theaex24)

    Estimado @soleguia no sabes lo mucho que me has ayudado eh probado recién tu configuración, y realmente funciona solo que hay contra indicaciones, espero me puedas ayudar, bueno como te dije ya probé tu código y si cumple lo de filtrar y que muestre la imagen del color de la variación, el detalle es que tiene que estar filtrado por un color para mostrar una imagen, es decir si entras de directo a la categoría no muestra imágenes, y lo ideal es que muestre por default la imagen destacada, y segundo es que cuando filtro 2 o mas colores tampoco me muestran imágenes, he puesto la web en otro hosting para hacer las pruebas esta es es la PAGINA espero me puedas ayudar con esto de antemano muchas gracias y creo que seria un tema muy interesante hablar de esto en tu blog ya que no he encontrado mucha info sobre este tema, cual quier cosa en que pueda colaborar estaré gustoso, de nuevo gracias, estaré atento a tus respuesta.

    Saludos.

    • Esta respuesta fue modificada hace 6 años, 4 meses por theaex24.
    • Esta respuesta fue modificada hace 6 años, 4 meses por theaex24.

    Buenas, prueba con esto.
    He hecho unos cambios y he añadido comentarios.

    if ( ! function_exists( 'woocommerce_get_product_thumbnail' ) ) {
        
            function woocommerce_get_product_thumbnail( $size = 'shop_catalog', $deprecated1 = 0, $deprecated2 = 0 ) {
                $image_size = apply_filters( 'single_product_archive_thumbnail_size', $size );
                global $post;
                global $product;
                // si hay parametro de filtro por color
                // y el producto es variable
                if( isset( $_GET['pa_color'] ) && $product->is_type( 'variable' ) )
                {
                    // valor del parámetro
                    $color_param 			= $_GET['pa_color'];
                    // lo convierto en array por si son varios colores
                    $color_filtro           = explode( ",", $color_param );
                    // variaciones del producto
                    $variations 			= $product->get_available_variations();
                    $imagen_color_filtro 	= false;
                    foreach( $variations as $variation )
                    {
                        $attr_color = $variation['attributes']['attribute_pa_color'];
                        // comprueba el color/es del filtro
                        // y pasa la imagen
                        if( in_array( $attr_color, $color_filtro ) )
                        {
                            $imagen_color_filtro = $variation['image']['url'];
                        }
                    }
        
                    return "<img src='".$imagen_color_filtro."' />";
                } else if ( has_post_thumbnail() ) {
                    // si no hay filtro de color
                    // o el producto no es variable
                    // muestra la imagen normal
                    $props = wc_get_product_attachment_props( get_post_thumbnail_id(), $post );
                    return get_the_post_thumbnail( $post->ID, $image_size, array(
                                                                            'title' => $props['title'],
                                                                            'alt' => $props['alt'],
                                                                            ) 
                            );
                }
            }
        }

    A ver si acertamos con ello y luego hago una entrada en el blog, jejeje 😉

    Iniciador del debate theaex24

    (@theaex24)

    @soleguia ¡¡ EUREKA !! esta funcionando perfecto, puedes revisar los cambios en la Página, no sabes cuanto me has ayudado amigo, como te dije puedes contar conmigo para cualquier cosa desees colabore, mi mail es imagenxxiv@gmail.com, soy Diseñador publcitario especialista en UX y UI, 3d, branding y más, publicista y marketero con afan por el diseño y desarrollo de apliaciones web pero mi especialidad es diseñarlas asi que cualquier ayuda que desees sobre esto temas, me escribes y con gusto te ayudare, te paso mi perfil de BEHANCE para que conozcas algo más de mi trabajo https://www.behance.net/ChristianOrtiz

    Saludos, y muchas gracias denuevo.

    Me alegro mucho de haberte ayudado y tomo nota, nunca se sabe cuando uno puede necesitar un buen contacto de diseño o UX.
    Un saludo 😉

    Hola! estaba buscando lo mismo, al fin he encontrado a alguien que lo ha conseguido. Ese código en qué archivo php hay que ponerlo? en el function.php del tema? ¿Ese código está pensado para la web del chico o valdría para todos? ¿tengo que hacer algo más o con copiarlo a function.php funciona? muchas gracias espero lograrlo.

Viendo 9 respuestas - de la 1 a la 9 (de un total de 9)
  • El debate ‘Mejorar filtro de color en categorias’ está cerrado a nuevas respuestas.