Формирование ЧПУ woocommerce

Формирую ЧПУ для товаров и категорий woocommerce со струкртурой:
domain.com/shop/%product_cat% для категорий и
domain.com/shop/%product_cat%/%product% для продуктов.
Но столкнулся с проблемой что для товаров и категорий не может быть общей базы т.е. shop или что другое.
В нстройках ссылок для wooceoomerce

И подцепил хук для переопределения url:

<?php
class CFunction
{
	public function __construct ()
	{
		add_action('init', [$this, 'rewrite_rule_cpost']);
	}
	public function rewrite_rule_cpost()
	{
		$post_type = 'product';
		add_rewrite_tag( "%product%", '([^/]+)', "post_type=$post_type&name=" );
		$permastruct = "shop/%product_cat%/%product%"; // наша структура ЧПУ
		$args = array(
			'with_front'  => true,
			'paged'       => true,
			'ep_mask'     => EP_NONE,
			'feed'        => false,
			'forcomments' => false,
			'walk_dirs'   => false,
			'endpoints'   => false,
		);
		add_permastruct( $post_type, $permastruct, $args );
	}
}
new CFunction();

Этот вариант более рабочий, пробовал и через .htaccess

RedirectMatch 301 (\/product-category\/)(.+) http://domain.com/shop/$2

В итоге товары 404 отдают. Если сделать изменить базу для категорий или товаров, то всё работает. Как мне их подружить?

Заметки к вопросу:
anseme 5.4 года назад

Тема чпу в вордпресс скользкая...

Вот тебе слайды, может помогут разобратся: https://es.slideshare.net/MikeSchinkel/hardcore-url-routing-2014

А еще есть https://wp-kama.ru/function/add_rewrite_rule

И не забудь про обработку пагинации...

Vicos 5.4 года назад

Спасибо! Буду разбираться.