Решал подобный вопрос...Только у меня была кожа (много видов кожи + у каждой кожи куча своих цветов+ у каждого вида цена менялась в зависимости от тиража, а фото материала менялось в зависимости от цвета)...
Как я решил эту проблему...Сначала долго перепиливал вукомерс, но....Около 20 видов материала х 40 и более цветов(а у каждого материала свой цвет, т.е красный одного материала != красному другого материала)=800 вариаций...А еще и тираж....Вобщем жесть, пришлось от Woocommerce отказаться...С какой-то стороны мне было проще, подразумервалось, что клиент будет заказывать только одно изделие, и, соответственно функционал корзины корзины и страницы чекаута писать не пришлось...
Что я сделал. Сначала создал кастомный тип записей (назовем его, скажем, продукт)...
Понятно, что категории, метки, теги и т.д, создавать надо тоже....Затем через ACF повторитель задал нужные атрибуты, связаные друг с другом...Т.е у каждого материала у меня были свои цвета и тиражи...
Повторяю, это только потому, что цвета у каждого материала у меня отличались!!!! Если они одинаковые, скорее всего можно сделать намного проще!!!
Пол дела сделано. Затем создат тип шаблона, который применял к нужным мне страницам (продуктам). В шаблоне продукта написал вывод первого повторителя (материалы). По клику на материал срабатывает Ajax запрос, который получал данные из дочернего повторителя в functions.php. А затем передавал обработанные данные в шаблон и строил отображение остальных переключателей (цвет и тираж).
Затем нужные мне данные передавались в скрытые поля формы и после заполнения данных клиента отправлялись куда надо (письмо с данными администратору и клиенту)...ъ
Как то так...У меня был такой опыт, может он вам чем помочь сможет, или на мысль натолкнуть..