Pregunta sobre WooCommerce de Wordpress:

Ordenar desde productos en existencia hasta el final de la lista

Un usuario pregunt贸 馃憞

Hola, miembros del personal. 驴Hay alguna forma de clasificar los productos en stock al final de la lista? S茅 que hay una opci贸n en la configuraci贸n para ocultarlos, pero no la necesito. Quiero que vayan al final de la lista. Gracias

(@conschneider)

Ingeniero Autom谩tico de Felicidad

Hace 1 a帽o, 2 meses

Hola,

WooCommerce no tiene una funci贸n incorporada para esto. Deber谩 usar un c贸digo personalizado para esto. Aqu铆 hay algunas sugerencias:

http://justintadlock.com/archives/2011/06/27/custom-columns-for-custom-post-types
https://www.nsp-code.com/sort-woocommerce-products- while-automatically-put-the-out-of-stock-items-at-the-end-of-list/
https://stackoverflow.com/questions/29179002/woocommerce-product-admin-sort-by-stock

Tuyo sinceramente,

(@ longman2020)

Hace 1 a帽o, 2 meses

Gracias @conschneider Creo que esta es una elecci贸n muy importante y he notado que muchos usuarios la demandan. 驴Tiene planes de implementar esta funci贸n en el futuro?

(@ longman2020)

hace 1 a帽o

Finalmente obtuve este c贸digo y funcion贸 para m铆:

add_filter('posts_clauses', 'order_by_stock_status');
function order_by_stock_status($posts_clauses) {
    global $wpdb;
    // only change query on WooCommerce loops
    if (is_woocommerce() && (is_shop() || is_product_category() || is_product_tag() || is_product_taxonomy())) {
        $posts_clauses['join'] .= " INNER JOIN $wpdb->postmeta istockstatus ON ($wpdb->posts.ID = istockstatus.post_id) ";
        $posts_clauses['orderby'] = " istockstatus.meta_value ASC, " . $posts_clauses['orderby'];
        $posts_clauses['where'] = " AND istockstatus.meta_key = '_stock_status' AND istockstatus.meta_value <> '' " . $posts_clauses['where'];
    }
    return $posts_clauses;
}

Espero que ayude a otros

(@koolpal)

Hace 11 meses, 3 semanas

@ longman2020

Gracias. Suena como un gran c贸digo.

Sin embargo, veo los siguientes errores en la versi贸n de WooCommerce debug.log: 3.9.1 Versi贸n de WordPress: 5.3.2

PHP Notice:  Trying to get property 'post_type' of non-object in [path]wp-includesclass-wp-query.php on line 4103
PHP Notice:  Trying to get property 'post_type' of non-object in [path]wp-includesclass-wp-query.php on line 4103
PHP Notice:  Trying to get property 'post_type' of non-object in [path]wp-includesclass-wp-query.php on line 4103
PHP Notice:  Trying to get property 'ID' of non-object in [path]wp-includesclass-wp-query.php on line 3965
PHP Notice:  Trying to get property 'post_title' of non-object in [path]wp-includesclass-wp-query.php on line 3967
PHP Notice:  Trying to get property 'post_name' of non-object in [path]wp-includesclass-wp-query.php on line 3969
PHP Notice:  Trying to get property 'post_type' of non-object in [path]wp-includesclass-wp-query.php on line 4103

Por favor revise y oriente.

Gracias

(@ longman2020)

Hace 11 meses, 3 semanas

Hola, @koolpal

Tienes que ingresar el c贸digo en la funci贸n .php a trav茅s del tema hijo.

Pero la forma m谩s sencilla es instalar este plugin e ingresar el c贸digo anterior.

No puedo pensar en otra forma.

(@koolpal)

Hace 11 meses, 3 semanas

@ longman2020

Lo siento, olvid茅 mencionarlo. El c贸digo se implement贸 en la funci贸n .php a trav茅s del tema hijo.

Mi tema tiene alg煤n conflicto: Flatsome O algo ha cambiado en Woocommerce desde que publicaste este c贸digo.

Estoy en la versi贸n de WooCommerce: 3.9.1 Versi贸n de WordPress: 5.3.2

驴Este c贸digo le funciona bien incluso ahora?

Gracias

(@ longman2020)

Hace 11 meses, 3 semanas

@koolpal S铆, a m铆 me funciona.

Puede entrar en conflicto con su tema u otros plugins. puedes experimentar con otros temas para resolverlo.

o cambie su versi贸n de php a la 煤ltima.

(@pecorino)

Hace 10 meses

Hola @ longman2020, 驴de d贸nde sacaste este c贸digo?

add_filter('posts_clauses', 'order_by_stock_status');
function order_by_stock_status($posts_clauses) {
    global $wpdb;
    // only change query on WooCommerce loops
    if (is_woocommerce() && (is_shop() || is_product_category() || is_product_tag() || is_product_taxonomy())) {
        $posts_clauses['join'] .= " INNER JOIN $wpdb->postmeta istockstatus ON ($wpdb->posts.ID = istockstatus.post_id) ";
        $posts_clauses['orderby'] = " istockstatus.meta_value ASC, " . $posts_clauses['orderby'];
        $posts_clauses['where'] = " AND istockstatus.meta_key = '_stock_status' AND istockstatus.meta_value <> '' " . $posts_clauses['where'];
    }
    return $posts_clauses;
}

Esta respuesta fue modificada hace 10 meses por.

(@ longman2020)

Hace 10 meses

Hola, @pecorino
https://stackoverflow.com/questions/25113581/show-out-of-stock-products-at-the-end-in-woocommerce

(@pecorino)

Hace 10 meses

@ longman2020 隆muchas gracias!

(@aromo)

hace 8 meses

隆Me funciona muy bien! 隆Gracias por compartir!

(@ reemmoussa22)

Hace 7 meses, 3 semanas

@ longman2020 Estoy probando el mismo c贸digo pero sigo descubriendo productos en stock en la primera p谩gina, 驴tienes alguna idea de lo que debo hacer?

(@ longman2020)

Hace 7 meses, 3 semanas

Hola, @ reemmoussa22

Desafortunadamente, no tengo idea de otras soluciones.

Deber铆a funcionar sin ning煤n problema.

Puede haber un conflicto con su tema u otros plugins. Una vez que desactive todos los plugins y cambie su tema al predeterminado de WordPress y vea qu茅 sucede.

(@henrikkloster)

Hace 7 meses, 1 semana

驴Alguien encontr贸 una soluci贸n para aquellos que no funcionaron? Aqu铆 ya no funciona … 馃檨

(@ 2funky)

Hace 6 meses, 4 semanas

Hola, El c贸digo anterior de ‘@ longman2020’ funciona para m铆, pero cuando lo uso, el programa de licitaci贸n no funciona: el precio de subida y bajada no se corrige ex. si creo algunos productos que est茅n disponibles a partir de ma帽ana y la semana que viene. Intente probar si tienen el mismo problema / soluci贸n. BR, Pete

驴Solucion贸 tu problema??

0 / 0

Deja una respuesta 0

Tu direcci贸n de correo electr贸nico no ser谩 publicada.