Задать вопрос
@webl2m

Как подгружать шорткод в зависимости от таба?

По итогу должны отображаться pdf файлы, но сейчас почему-то отображаются ссылки на pdf. Если напрямую шорткод вставляю в верстку, pdf отображается. Код:
<div class="tabs-price-header">
	<ul>
		<?php 
		$active_class = 'active';
		while($price_query->have_posts()) : $price_query->the_post(); ?>
			<li class="<?php echo $active_class; ?>"><button data-id="<?php echo get_the_ID(); ?>"><?php echo get_the_title(); ?></button></li>
			<?php $active_class = ''; // Убираем класс активности со следующих элементов ?>
		<?php endwhile; ?>
		<?php wp_reset_postdata(); ?>
	</ul>
</div>

<div id="tabs-price-content" class="tabs-price-content"></div>


functions.php:
add_action( 'wp_ajax_load_pdf_content', 'load_pdf_content' );
add_action( 'wp_ajax_nopriv_load_pdf_content', 'load_pdf_content' );
function load_pdf_content() {
  $post_id = isset($_POST['post_id']) ? intval($_POST['post_id']) : 0;
  
  switch ($post_id) {
    case 92:
      echo apply_filters('the_content', '[pdf-embedder url="https://lasercare.moscow/wp-content/uploads/2024/05/kompleksy-210-x-297-mm.pdf" title="Диодная эпиляция"]');
      break;
    case 384:
      echo apply_filters('the_content', '[pdf-embedder url="https://lasercare.moscow/wp-content/uploads/2024/05/kompleksy-210-x-297-mm-3-1.pdf" title="Смас-лифтинг"]');
      break;
    case 385:
      echo apply_filters('the_content', '[pdf-embedder url="https://lasercare.moscow/wp-content/uploads/2024/05/kompleksy-210-x-297-mm-2-1.pdf" title="Холодная плазма"]');
      break;
    default:
			echo 'Извините, информация по запрашиваемой услуге отсутствует.';
  }

  wp_die();
}


JavaScript:
document.addEventListener('DOMContentLoaded', function () {
  const tabs = document.querySelectorAll('.tabs-price-header button');

  tabs.forEach(tab => {
    tab.addEventListener('click', function () {
      const postId = this.getAttribute('data-id');

      if (postId) {
        loadPDFContent(postId);
      }
    });
  });

  // Загружаем содержимое для первой активной вкладки
  loadPDFContent(tabs[0].getAttribute('data-id'));
});

function loadPDFContent(postId) {
  // AJAX запрос к WordPress
  fetch(WPJS.ajaxUrl, {
    method: 'POST',
    credentials: 'same-origin',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
    },
    body: 'action=load_pdf_content&post_id=' + postId
  })
  .then(response => response.text())
  .then(data => {
    document.getElementById('tabs-price-content').innerHTML = data;
  });
}
  • Вопрос задан
  • 57 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 дек. 2024, в 10:44
15000 руб./за проект
22 дек. 2024, в 10:12
10000 руб./за проект
22 дек. 2024, в 09:51
3000 руб./за проект