Size: a a a

WordPress && WooCommerce

2021 March 16

AU

Alex Urozhaev in WordPress && WooCommerce
массив id товаров
источник

A

Anton in WordPress && WooCommerce
Вот и проверьте.
источник

AU

Alex Urozhaev in WordPress && WooCommerce
как пример - Array ( [94] => 168819 [95] => 158285 [96] => 146913 [97] => 137257 [98] => 137197 [99] => 105040 [100] => 105041 [101] => 105042 [102] => 105043 [103] => 52407 [104] => 52412 [105] => 44775 [106] => 44763 [107] => 35131 [108] => 35146 )
источник

A

Anton in WordPress && WooCommerce
Попробуйте сделать отдельный запрос WP_Query  и подставить туда этот массив.
Потом в результате проверьте атрибут request, там будет строка запроса к базе
источник

A

Anton in WordPress && WooCommerce
Ну я бы так попробовал сделать
источник

A

Anton in WordPress && WooCommerce
$products = $wpdb->get_col( 'SELECT prod_id FROM filters WHERE 1' );
это какой-то ваш личный велосипед?)
источник

A

Anton in WordPress && WooCommerce
$all = new WP_Query( *параметры запроса товаров из категории* );
а это вообще не ясно, для чего
источник

AU

Alex Urozhaev in WordPress && WooCommerce
Anton
$products = $wpdb->get_col( 'SELECT prod_id FROM filters WHERE 1' );
это какой-то ваш личный велосипед?)
Выборка id товаров из кастомной таблицы по фильтрам
источник

KL

Katya Leurdo 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' );
я не вижу чтобы вы использовали WP_Query, переменная $all у вас для красоты, а используете вы переменную $q из вукоммерса, где своя обертка и возможно что post_in просто нет
источник

АП

Артём Приходько... in WordPress && WooCommerce
Katya Leurdo
я не вижу чтобы вы использовали WP_Query, переменная $all у вас для красоты, а используете вы переменную $q из вукоммерса, где своя обертка и возможно что post_in просто нет
есть есть
источник

AU

Alex Urozhaev in WordPress && WooCommerce
Katya Leurdo
я не вижу чтобы вы использовали WP_Query, переменная $all у вас для красоты, а используете вы переменную $q из вукоммерса, где своя обертка и возможно что post_in просто нет
post__in там есть точно)
источник

АП

Артём Приходько... in WordPress && WooCommerce
источник

A

Anton in WordPress && WooCommerce
Alex Urozhaev
как пример - Array ( [94] => 168819 [95] => 158285 [96] => 146913 [97] => 137257 [98] => 137197 [99] => 105040 [100] => 105041 [101] => 105042 [102] => 105043 [103] => 52407 [104] => 52412 [105] => 44775 [106] => 44763 [107] => 35131 [108] => 35146 )
Может быть, надо не в таком формате скармливать, хз, надо тестить
источник

AU

Alex Urozhaev in WordPress && WooCommerce
Anton
Может быть, надо не в таком формате скармливать, хз, надо тестить
пробовал - в документации все равно стоит array
источник

AU

Alex Urozhaev in WordPress && WooCommerce
сейчас попробую одну вариацию с запросом
источник

A

Anton in WordPress && WooCommerce
Alex Urozhaev
пробовал - в документации все равно стоит array
я не про то, какой тип, а про его содержимое
источник

KL

Katya Leurdo in WordPress && WooCommerce
Alex Urozhaev
как пример - Array ( [94] => 168819 [95] => 158285 [96] => 146913 [97] => 137257 [98] => 137197 [99] => 105040 [100] => 105041 [101] => 105042 [102] => 105043 [103] => 52407 [104] => 52412 [105] => 44775 [106] => 44763 [107] => 35131 [108] => 35146 )
да, и попробуйте сделать из ассоциативного массива нормальный с помощью array_values()
источник

KL

Katya Leurdo 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' );
если всё предыдущее не поможет, делайте в той функции var_dump($q->request) и смотрите запрос к базе, можно его прямо в phpMyAdmin вставить и смотреть что выдает
источник

AU

Alex Urozhaev in WordPress && WooCommerce
Вот к этому и иду. Заодно попробую сделать wp_query и посмотреть что там выдает
источник

KL

Katya Leurdo in WordPress && WooCommerce
Alex Urozhaev
Вот к этому и иду. Заодно попробую сделать wp_query и посмотреть что там выдает
я думаю анализировать запрос будет достаточно
источник