Выберете свой BMW
-
-
-
-
-
-
-
-
* Шаблон страницы BMW с табами для группировки моделей
* Группирует модели по: M-серия, BMW i, X, 8-серия, 5, 4, 3, 2
*/
// Убеждаемся, что переменные определены
if (!isset($subcategories)) {
$subcategories = get_terms(array(
'taxonomy' => 'product_cat',
'hide_empty' => false,
'parent' => $category_id,
'orderby' => 'name',
'order' => 'ASC',
));
}
if (!isset($category_name)) {
$category_name = $current_cat->name;
}
// Группируем модели по категориям - точное соответствие оригиналу cfa-carbon.com
$bmw_groups = array(
'M-серия' => array(),
'BMW i' => array(),
'Х' => array(),
'8-серия' => array(),
'5' => array(),
'4' => array(),
'3' => array(),
'2' => array(),
);
// Маппинг моделей по табам (как на оригинале cfa-carbon.com)
$tab_mapping = array(
// M-серия
'BMW M2 G87' => 'M-серия',
'BMW M3 G80' => 'M-серия',
'BMW M3 G81 Touring' => 'M-серия',
'BMW M4 G82' => 'M-серия',
'BMW M4 G83 Cabrio' => 'M-серия',
'BMW M5 G90' => 'M-серия',
'BMW M5 G99 Touring' => 'M-серия',
'BMW M5 F90 LCI' => 'M-серия',
'BMW M5 F90' => 'M-серия',
'BMW M8 F92 Coupe' => 'M-серия',
'BMW M8 F91 Cabrio' => 'M-серия',
'BMW M8 F93 GC' => 'M-серия',
'BMW XM G09' => 'M-серия',
'BMW X3M LCI F97' => 'M-серия',
'BMW X4M LCI F98' => 'M-серия',
'BMW X5M F95' => 'M-серия',
'BMW X5M F95 LCI' => 'M-серия',
'BMW X6M F96' => 'M-серия',
'BMW X6M F96 LCI' => 'M-серия',
// BMW i
'BMW i4 M50' => 'BMW i',
// Х-серия
'BMW Х3 G01 LCI' => 'Х',
'BMW Х4 G02 LCI' => 'Х',
'BMW Х5 G05 LCI' => 'Х',
'BMW Х6 G06 LCI' => 'Х',
'BMW X5 G05' => 'Х',
'BMW X6 G06' => 'Х',
// 8-серия
'BMW 8 Coupe' => '8-серия',
'BMW 8 Gran Coupe' => '8-серия',
// 5-серия
'BMW 5 LCI G30' => '5',
// 4-серия
'BMW 4 Coupe' => '4',
'BMW 4 Cabrio' => '4',
'BMW 4 Gran Coupe' => '4',
// 3-серия
'BMW G20 LCI' => '3',
'BMW 3 G20' => '3',
'BMW G21 LCI Touring' => '3',
// 2-серия
'BMW M2 G42 Coupe' => '2',
);
foreach ($subcategories as $subcategory) {
$name = $subcategory->name;
// Сначала проверяем точное соответствие в маппинге
if (isset($tab_mapping[$name])) {
$bmw_groups[$tab_mapping[$name]][] = $subcategory;
} else {
// Fallback логика для новых категорий
if (preg_match('/^BMW\s+(M2|M3|M4|M5|M8|XM|X[3-6]M)/i', $name)) {
$bmw_groups['M-серия'][] = $subcategory;
} elseif (stripos($name, 'i4') !== false || stripos($name, 'i7') !== false || stripos($name, 'iX') !== false) {
$bmw_groups['BMW i'][] = $subcategory;
} elseif (preg_match('/^BMW\s+[ХX][3-6]\s/i', $name) && !preg_match('/[ХX][3-6]M/i', $name)) {
$bmw_groups['Х'][] = $subcategory;
} elseif (preg_match('/^BMW\s+8/i', $name) && stripos($name, 'M8') === false) {
$bmw_groups['8-серия'][] = $subcategory;
} elseif (preg_match('/^BMW\s+5/i', $name) && stripos($name, 'M5') === false && stripos($name, 'X5') === false) {
$bmw_groups['5'][] = $subcategory;
} elseif (preg_match('/^BMW\s+4/i', $name) && stripos($name, 'M4') === false && stripos($name, 'X4') === false) {
$bmw_groups['4'][] = $subcategory;
} elseif (preg_match('/^BMW\s+(3|G20|G21)/i', $name) && stripos($name, 'M3') === false && stripos($name, 'X3') === false) {
$bmw_groups['3'][] = $subcategory;
} elseif (preg_match('/^BMW\s+(2|G42)/i', $name) && stripos($name, 'M2 G87') === false) {
$bmw_groups['2'][] = $subcategory;
} else {
// По умолчанию в M-серию
$bmw_groups['M-серия'][] = $subcategory;
}
}
}
// Удаляем пустые группы
$bmw_groups = array_filter($bmw_groups, function($group) {
return !empty($group);
});
?>
Выберете свой BMW
-
-
-
-
-
-
-
-