В
wp_query() есть аргумент
's', в который можно передать поисковый запрос
$args = [
'post_type' => 'product',
's' => 'search phrase',
];
$query = new WP_Query( $args );
Поиск по умолчанию происходит по полям
post_title,
post_excerpt,
post_content. Если нужно исправить это поведение, ищите, например, по запросам
wp_query search by post meta, решения есть
Останется сделать из всего этого шорткод. К счастью в WooCommerce и так полно шорткодов вывода товаров, вы можете скопировать любой и отредактировать под вашу задачу