Size: a a a

WordPress && WooCommerce

2021 March 16

АП

Артём Приходько... in WordPress && WooCommerce
Alex Urozhaev
function testing_woo_product_query( $q ){
 if( isset( $_GET['filter'] ) and intval( $_GET['filter'] ) == 1 ){
   global $wpdb;
   $all = new WP_Query( *параметры запроса товаров из категории* );
   $products = $wpdb->get_col( 'SELECT prod_id FROM filters WHERE 1' );
   foreach( $products as $key => $value ) if( !in_array( $value, $all->posts ) ) unset( $products[$key] );
   $q->set( 'post__in', $products );
 }
}
add_action( 'woocommerce_product_query', 'testing_woo_product_query' );
так у вас products пустой
источник

AU

Alex Urozhaev in WordPress && WooCommerce
Артём Приходько
так у вас products пустой
нет) там массив id товаров
источник

KL

Katya Leurdo in WordPress && WooCommerce
Alex Urozhaev
нет) там массив id товаров
 foreach( $products as $key => $value ) if( !in_array( $value, $all->posts ) ) unset( $products[$key] );

вот это вообще нахрена?
источник

KL

Katya Leurdo in WordPress && WooCommerce
ладно, пусть человек получит запрос к базе и там он полюбому прозреет )))
источник

A

Anton in WordPress && WooCommerce
Katya Leurdo
 foreach( $products as $key => $value ) if( !in_array( $value, $all->posts ) ) unset( $products[$key] );

вот это вообще нахрена?
)
источник

AU

Alex Urozhaev in WordPress && WooCommerce
Katya Leurdo
если всё предыдущее не поможет, делайте в той функции var_dump($q->request) и смотрите запрос к базе, можно его прямо в phpMyAdmin вставить и смотреть что выдает
а если там null в ответ на var_dump($q->request)?
источник

KL

Katya Leurdo in WordPress && WooCommerce
Alex Urozhaev
а если там null в ответ на var_dump($q->request)?
дампните $q
источник

AU

Alex Urozhaev in WordPress && WooCommerce
если кратко - post__in там есть
источник

AU

Alex Urozhaev in WordPress && WooCommerce
надо попробовать простой wp_query с этими параметрами
источник

A

Anton in WordPress && WooCommerce
)
источник

A

Anton in WordPress && WooCommerce
["found_posts"]=> int(0)
источник

Иi

Игорь iTRON in WordPress && WooCommerce
За такое можно бан схватить
источник

АП

Артём Приходько... in WordPress && WooCommerce
Alex Urozhaev
нет) там массив id товаров
вы осознаёте что вот этот массив скармливаете функции in_array? естественно она возвращает false и все ваши id продуктов затираются вашим же кодом
источник

AU

Alex Urozhaev in WordPress && WooCommerce
Артём Приходько
вы осознаёте что вот этот массив скармливаете функции in_array? естественно она возвращает false и все ваши id продуктов затираются вашим же кодом
массив же id, а не объектов
источник

AU

Alex Urozhaev in WordPress && WooCommerce
отчего ему затираться?
источник

АП

Артём Приходько... in WordPress && WooCommerce
Alex Urozhaev
массив же id, а не объектов
я вам скрин прислал
источник

АП

Артём Приходько... in WordPress && WooCommerce
в posts лежат объекты
источник

AU

Alex Urozhaev in WordPress && WooCommerce
Артём Приходько
в posts лежат объекты
нет, там выше в параметре запросов wp_query идет 'fields' => 'ids'. вы же про эту строчку? foreach( $products as $key => $value ) if( !in_array( $value, $all->posts ) ) unset( $products[$key] );
источник

KL

Katya Leurdo in WordPress && WooCommerce
я и спрашивала нахрена эта проверка
источник

KL

Katya Leurdo in WordPress && WooCommerce
не ну а в принципе зачем вы проверяете продукты в списке всех постов?
источник