• Hola,

    Vuelvo a abrir este debate del foro aunquee vi que ya lo habian cerrado.

    Anteriormente me habia creado una pagina donde usaba el shortcode [product_sale] de woocommerce para mostrar los productos en oferta.

    La cuestion es que este shortcode solo muestra el numero de productos en oferta que haya determinados en la pagina. Por defecto creo que son 10 o 12, incluso tu puedes añadirle la variable per_page al shortcode para modificar el numero de productos que te muestra en esa pagina.

    La cuestion es que estuve buscando informacion y parece ser que los shortcodes de woocommerce solo muestran una pagina.. Es decir, si hay mas productos no los muestra.. ni para las ofertas, ni para los productos destacados etc..

    Asi que solo te va a mostrar los productos que tu marques que tenga la pagina.

    Buscando informacion encontre que para poder mostrar todos los productos que estaban en oferta tenia que crearme una plantilla de pagina en mi tema.

    Añadiendo la carpeta page-templates en el tema y colocando ahi las plantillas que te hayas creado.

    La plantilla ha de comenza con la cabecera: <?php /* Template Name: nombre_plantilla */ ?>

    Y cuando en el menu de wordpress añadas una pagina nueva, la segunda caja que hay en la barra de la derecha, que se llama Atributos de pagina, tiene un desplegable llamado plantilla, y ahi te aparecen las plantillas que tengas en la carpeta de tu tema.

    Para crearte la plantilla tienes que copiar el archivo: archive-product.php de la carpeta de templates del woocommerce y mopdificarla añadiendole una consulta usando query_post().

    A esa consulta has de pasarle los siguientes argumentos:

    $args = array(
    ‘post_type’ => ‘product’,
    ‘posts_per_page’ => $posts_per_page,
    ‘paged’ => $paged,
    ‘offset’ => $offset,
    ‘meta_query’ => array(
    ‘relation’ => ‘OR’,
    array( // Simple products type
    ‘key’ => ‘_sale_price’,
    ‘value’ => 0,
    ‘compare’ => ‘>’,
    ‘type’ => ‘numeric’
    ),
    array( // Variable products type
    ‘key’ => ‘_min_variation_sale_price’,
    ‘value’ => 0,
    ‘compare’ => ‘>’,
    ‘type’ => ‘numeric’
    )
    )
    );

    Y añadiendo desde el panel de administracion una pagina con la plantilla «nombre_plantilla» me muestra todos los productos que estan en oferta. Y si hay muchos me los muetsra en varias paginas.

    El problema que tengo ahora es que no me funciona el desplegable de ordenacion. Si le doy a ordenador por precio o popularidad no funciona.

    Gracias.

Viendo 4 respuestas - de la 1 a la 4 (de un total de 4)
  • Moderador LGrusin

    (@lgrusin)

    El problema es que has modificado el query y no le has pasado los valores de precio o popularidad.

    Pregunto, en condiciones normales sin esa plantilla de página que has creado y sin shortcode, ¿cómo accedes a un producto? Tal como viene debe funcionar lo que quieres sin hacer modificaciones.

    Un saludo

    Iniciador del debate alvima

    (@alvima)

    La verdad es que hace poco tiempo que empece a usar wordpress y llevo poco tiempo modificando codigo. Asi que estoy aprendiendo. Al principio usaba los shortcodes de los plugin para conseguir la funcionalidad que yo quería. Después empecé a modificar código..

    No entiendo la pregunta de como accedo a un producto sin plantilla ni shortcodes. Ahora mismo, a partir de shortcodes accedo a la pagina de los vendedores, a las categorias.. y desde ahi accedo al producto.

    Un saludo.

    Moderador LGrusin

    (@lgrusin)

    A ver, si accedes a las categorías de productos, y seleccionas a una de ellas, te salen todos los productos y con paginación en caso de que haya más a mostrar. Es decir, WooCommerce muestra los productos en varias páginas sin necesidad de códigos adicionales.

    Igual no estoy entendiendo lo que quieres hacer. Si pudieramos verlo en algún enlace sería ideal.

    Un saludo

    Iniciador del debate alvima

    (@alvima)

    Es que lo estoy haciendo todo en local, por eso no puedo pasarte un enlace. Ademas de woocommerce tengo instalado el wc_vendors y lo que yo he hecho es crearme en un menu principal las siguientes entradas:
    1. inicio.
    2. comercios (shortcode [wcv_vendorslist]) donde me muestra una lista de todos los vendedores. Cada vendedor tiene un enlace que te lleva a su pagina de descripcion de tienda.
    3. Categorías: enlace personalizado con URL# con varios subelementos que serian las categorias. Las categorias las he introducido seleccionando la pestaña «categorias de productos» en las opciones de pantalla. Y eso me introduce en la paginas todos los productos para cada categoria.
    4. Ofertas y promociones.

    Y la entrada 4 es la que me daba problemas porque no sabia como crearme una pagina (entrada) de todos los productos que estuvieran en oferta, porque el shortcode no los mostraba todos, solo mostraba el numero de productos que estuviera determinado en la pagina, si habia mas.. no los mostraba.

    Asi que encontre que podia crearme una plantilla y meterle una consulta personalizada. Y me funciono lo de mostrar todas las ofertas y la paginacion, pero no me ordena. Porque el woocommerce incluye en las paginas de productos un desplegable de ordenacion. Me aparece, pero no funciona.. no me ordena.

    Gracias y un saludo.

Viendo 4 respuestas - de la 1 a la 4 (de un total de 4)
  • El debate ‘productos oferta woocommerce’ está cerrado a nuevas respuestas.