// AJAX обработчик для получения блоков
function vn_get_terms() {
$parent_id = intval($_POST['parent_id']);
$level = sanitize_text_field($_POST['level']);
$terms = get_terms(array('taxonomy' => 'vehicle_hierarchy', 'parent' => $parent_id, 'hide_empty' => false));
$response = array('options' => '', 'blocks' => '');
$next_level = '';
switch ($level) {
case 'make':
$next_level = 'model';
$response['options'] .= '';
break;
case 'model':
$next_level = 'year';
$response['options'] .= '';
break;
case 'year':
$next_level = 'final';
$response['options'] .= '';
break;
case 'final':
$next_level = '';
break;
}
foreach ($terms as $term) {
$response['options'] .= '';
}
foreach ($terms as $term) {
// Изображения только для уровня "make"
if ($level === 'make') {
$image_id = get_term_meta($term->term_id, 'vehicle_image', true);
$image = $image_id ? wp_get_attachment_image($image_id, 'thumbnail') : '';
$block_content = $image ? $image . '
' . esc_html($term->name) . '
' : '' . esc_html($term->name) . '
';
} else {
// Для остальных уровней только текст
$block_content = '' . esc_html($term->name) . '
';
}
$response['blocks'] .= '' . $block_content . '
';
}
error_log('vn_get_terms: parent_id=' . $parent_id . ', level=' . $level . ', terms_count=' . count($terms) . ', options_length=' . strlen($response['options']) . ', blocks_length=' . strlen($response['blocks']));
wp_send_json($response);
wp_die();
}
add_action('wp_ajax_vn_get_terms', 'vn_get_terms');
add_action('wp_ajax_nopriv_vn_get_terms', 'vn_get_terms');
BMW – Racehub