В
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 и так полно шорткодов вывода товаров, вы можете скопировать любой и отредактировать под вашу задачу