Automattic\WooCommerce\Blocks\BlockTypes
ProductFilterStatus::get_stock_status_counts
Retrieve the status filter data for current block.
Метод класса: ProductFilterStatus{}
Хуков нет.
Возвращает
null
. Ничего (null).
Использование
// private - только в коде основоного (родительского) класса $result = $this->get_stock_status_counts( $block );
- $block(WP_Block) (обязательный)
- Block instance.
Код ProductFilterStatus::get_stock_status_counts() ProductFilterStatus::get stock status counts WC 9.9.4
private function get_stock_status_counts( $block ) { $query_vars = ProductCollectionUtils::get_query_vars( $block, 1 ); unset( $query_vars['filter_stock_status'], ); if ( isset( $query_vars['taxonomy'] ) && false !== strpos( $query_vars['taxonomy'], 'pa_' ) ) { unset( $query_vars['taxonomy'], $query_vars['term'] ); } if ( ! empty( $query_vars['meta_query'] ) ) { // phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_query $query_vars['meta_query'] = ProductCollectionUtils::remove_query_array( $query_vars['meta_query'], 'key', '_stock_status' ); } $container = wc_get_container(); $counts = $container->get( FilterDataProvider::class )->with( $container->get( QueryClauses::class ) )->get_stock_status_counts( $query_vars, array_keys( wc_get_product_stock_status_options() ) ); $data = array(); foreach ( $counts as $key => $value ) { $data[] = array( 'status' => $key, 'count' => intval( $value ), ); } return array_filter( $data, function ( $stock_count ) { return $stock_count['count'] > 0; } ); }