Проблема получения остатка количества билетов по ID мероприятия

Работаю с виджетом для продажи билетов в театрах https://afisharambler.helpdeskeddy.com/ru/knowledge_base/art/65/cat/9/api-sajta.

Сайт на WordPress. Задача состоит в том, что-бы когда заходишь на карточку мероприятия, то проверялось кол-во оставшихся билетов и выводилась одна из этих двух кнопок. "Купить билет" - если они остались, "Оставить заявку" - если их соответственно нет.

Есть две страницы:

  1. render-list-afisha.php, которая рендерит всю афишу через цикл:
 foreach($listApi as $item) {

        // Получаем название сцены (Малая или Основная)
        $sceneVal = mb_strtolower($item['location_name']);
       
        $sceneItem = '';
        if (strpos($sceneVal, 'алая сце') === false) {
            $sceneItem = 'Большая сцена';
        } elseif (strpos($sceneVal, 'сновная') === false) {
            $sceneItem = 'Малая сцена';
        }
        // Сопоставляем название с мероприятиями и если таковое существует то заменяем его
        $havePage = false;
        $idPost =  false;
        $titlePost = false;
        foreach ($posts_titles as $id => $title) {

            $afishaTitle =  mb_eregi_replace("[^a-zа-яё0-9 ]", '',html_entity_decode( mb_strtolower( $item['name']) ));
            $posts_title =  mb_eregi_replace("[^a-zа-яё0-9 ]", '',html_entity_decode( mb_strtolower($title) ));
            $posts_title = str_replace(' ', '', $posts_title);
            $afishaTitle = str_replace(' ', '', $afishaTitle);



            if(strpos( $afishaTitle, $posts_title ) !== false) {
                $havePage  = true;
                $postArr = get_post($id);
                $idPost =  $id;
                $titlePost = $title;
            }

        }
        $isPremiere = get_post_meta($idPost, 'meropriyatieprimera', true) ? 'true' : 'false';
        $isPushk = get_post_meta($idPost, 'meropriyatiepushkin', true) ? 'true' : 'false';
        $isRec = get_post_meta($idPost, 'meropriyatierecommend', true) ? 'true' : 'false';
        $sceneType = $sceneItem == 'Малая сцена' ? 'small' : 'large';
        ?>
        <div class="playbill__item"
             data-event-item
             data-id="<?php echo $item['id'] ;?>"
             data-scene="<?php echo $sceneType ;?>"
             data-has-tickets="<?php echo $item['count'] ;?>"
             data-is-premiere="<?php echo $isPremiere;?>"
             data-is-pushk="<?php echo $isPushk;?>"
             data-is-rec="<?php echo $isRec;?>"
             data-date="<?php echo date('YmdHi',strtotime($item['date'])) ;?>"
             data-name="<?php echo str_replace( '"', '', $item['name'] ) ;?>"
        >
            <div class="playbill__date <?php echo get_post_meta($idPost,'meropriyatiepushkin',true) ? 'playbill__date--pushkin' : '' ?>">
                <div class="playbill__day"><?php echo date('j',strtotime($item['date']))?></div>
                <div class="playbill__day-about">
                    <div class="playbill__month"><?php echo $_monthsList[date('m',strtotime($item['date']))]?></div>
                    <div class="playbill__time"><?php echo date('H:i',strtotime($item['date']))?></div>
                    <div class="playbill__weekday"><?php echo $_weekList[date('w',strtotime($item['date']))]?></div>
                </div>
            </div>         
            
            
            <a href="<?php the_permalink($idPost); ?>" class="apostthumb">
            <?php  if( has_post_thumbnail()):?>
            <img src="<?php echo get_the_post_thumbnail_url($idPost, 'medium') ?>"/>
            <?php else: ?>
            <?php echo get_the_post_thumbnail($idPost, 'medium') ?>
            <?php endif; ?>
            </a>
                
                <div class="playbill-buttons">
                <?php if ($item['count'] > 0) {?>
                    <button  onclick="listimWidget.openModal({event_id: <?php echo $item['id']?>})" class="ylwbutton">Купить билеты</button>
                <?php } else {?>
                    <button class="btn playbill__btn btn playbill__btn--disabled">Оставить заявку</button>
                <?php } ?>
                    
                <?php echo get_post_meta($idPost,'meropriyatiepushkin',true) ? '<div class="pushkin-list"><p class>Пушкинская карта</p></div>' : '' ?>
                </div>    
                        
            </div>
        </div>

    <?php } ?>
    введите сюда код

Не важно, тут все работает как часы. Но во втором файле:

  1. single-meropriyatiya.php уже не работает сравнение $item['count'], точнее работает, но оно смотрит именно на кол-во билетов у первого мероприятия, которое нашлось.

Вот отрывок кода:

<?php if (get_field('cover_repertuar')): ?>
        <section class="mainBanner mainBanner--play"
                 style="background: linear-gradient(to left, rgb(0 0 0 / 0%), rgb(0 0 0 / 73%)), url(<?php the_field('cover_repertuar'); ?>)">
            <?php else: ?>
            <section class="mainBanner mainBanner--play"
                     style="background: linear-gradient(to left, rgb(0 0 0 / 0%), rgb(0 0 0 / 73%)), url(<?php echo get_the_post_thumbnail_url($post->ID, 'full'); ?>)">
                <?php endif; ?>

                <div class="mainBanner__inner">
                    <div class="mainBanner__img-wrapper mainBanner__img-wrapper--blackout" style="display:none">
                        <img class="mainBanner__img" src="<?php echo get_the_post_thumbnail_url($post->ID, 'full'); ?>"
                             data-object-fit="contain" alt="Афиша спектакля <?php echo get_the_title() ?>">
                    </div>
                    <div class="bannerinfo newglass">
                        <h1><?php echo get_the_title() ?></h1>

                        <div class="metainfo">
                        <?php if( get_post_meta($post->ID, 'rezhiser', true) ):?>
                            <div class="genre"><?php echo get_post_meta($post->ID,'rezhiser',true)?></div>
                        <?php endif;?>
                        <?php if( get_post_meta($post->ID, 'zhanr', true) ):?>
                            <div class="genre"><?php echo get_post_meta($post->ID,'zhanr',true)?></div>
                        <?php endif;?>
                            <div class="genre"><?=wp_get_post_terms( $post->ID, 'tipu', array('fields' => 'all'))[0]->name?></div>
                        <?php if( get_post_meta($post->ID, 'long', true) ) : ?>
                        <div class="play__time"><?php echo get_post_meta($post->ID,'long',true)?></div>
                        <? endif; ?>
                        <?php if( get_post_meta($post->ID, 'meropriyatieperenos', true) ) : ?>
                            <span class="premier_tag"><?php echo get_post_meta($post->ID,'meropriyatieperenos',true)?></span>
                        <? endif; ?>
                        <?php if( get_post_meta($post->ID, 'meropriyatieprimera', true) ) : ?>
                            <span class="premier_tag">Премьера</span>
                        <? endif; ?>
                        <?php if( get_post_meta($post->ID, 'restriction', true) ) : ?>
                            <div class="parentcontrol"><?php echo  get_post_meta($post->ID, 'restriction', true); ?></div>
                        <? endif; ?>
                        </div>
                        <?php if (get_field('description_glass')): ?>
                            <div class="description">
                                <?php the_field('description_glass'); ?>
                            </div>
                        <?php else: ?>
                            <div class="description">
                                <?php echo get_the_excerpt($post->ID) ?>
                            </div>
                        <?php endif; ?>

                        <div class="buttons">
                        <?php if ($i['count'] == 0) {?>
                            <button  onclick="listimWidget.openModal({event_id: <?php echo $i['id']?>})" class="ylwbutton">Купить билеты</button>
                        <?php } else {?>
                            <button class="btn playbill__btn btn playbill__btn--disabled">Оставить заявку</button>
                        <?php } ?>
                            <!--                <div class="morebtn">Подробнее</div>-->
                        </div>
                    </div>
                    <div class="mainBanner__title-block" style="display:none;">
                        <div class="mainBanner__subtitle"><?php echo get_post_meta($post->ID, 'rezhiser', true) ?></div>
                        <div class="mainBanner__title"><?php echo get_the_title() ?></div>

                        <?php if (!empty($filterApiList)) { ?>
                            <a href="#afisha-list" style="margin-top: 20px;font-size: 1.2rem;padding: 1rem 1.4rem"
                               class="btn">Купить билет</a>
                        <?php } ?>
                    </div>
                </div>
            </section>

На синтаксические ошибки не обращайте внимания, кода больше, поэтому тут в спешке пытаюсь сократить как могу.


Ответы (1 шт):

Автор решения: Виктор Карев

Логика в коде: "Если билетов нет, то купить, иначе - оставить заявку".

<?php if ($i['count'] == 0) {?>
    <button  onclick="listimWidget.openModal({event_id: <?php echo $i['id']?>})" class="ylwbutton">Купить билеты</button>
<?php } else {?>
    <button class="btn playbill__btn btn playbill__btn--disabled">Оставить заявку</button>
<?php } ?>
→ Ссылка