Member 14785478 Ответов: 0

Wordpress plugin - twitch stream status - может ли кто-нибудь проверить код?


function bonfire_sst_header() {
    ?>

        <!-- BEGIN MAIN WRAPPER (show only if Twitch channel name entered) -->
        <?php if( get_theme_mod('sst_channel_name') != '') { 
        
        $url="https://api.twitch.tv/helix/streams?user_login=".get_theme_mod('sst_channel_name');
        
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,$url);
        /*curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);*/
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'Client-ID: ls2awgx5gfg9m1q6iopdqb1b7d0y6a'
        ));
        
        $result=curl_exec($ch);
        $json=json_decode($result, true);
        $array1=$json['data']['pagination'];
        ?>
        <div class="sst-main-wrapper">
            <?php include( plugin_dir_path( __FILE__ ) . 'include.php'); ?>
        </div>
        <?php } ?>
        <!-- END MAIN WRAPPER (show only if Twitch channel name entered) -->
        
        <script>
        jQuery('.sst-twitch').each(function () {
            var nickname = jQuery(this).data('nickname');
            
        <?php
        if ($array1[0]['type']== 0) {
            if( get_theme_mod('sst_offline_hide') != '') { ?><?php } else { ?>jQuery('.sst-main-wrapper, .sst-main-widget-wrapper').addClass('sst-main-wrapper-active');<?php } ?>
            // animations
            jQuery('.sst-status-text-offline').addClass('sst-current-status');
            setTimeout(function() {
                jQuery('.sst-status-text-offline').addClass('sst-current-status-active');
                jQuery('.sst-status-wrapper').addClass('sst-status-wrapper-active');
            }, 25);
        <?php
        } else {
        ?>
            // show if online
            jQuery('.sst-main-wrapper, .sst-main-widget-wrapper').addClass('sst-main-wrapper-active');
            // animations
            jQuery('.sst-status-text-live').addClass('sst-current-status');
            setTimeout(function() {
                jQuery('.sst-status-text-live').addClass('sst-current-status-active');
                jQuery('.sst-status-wrapper').addClass('sst-status-wrapper-active');
            }, 25);
        <?php
        }
        ?>
        });
        </script>

    <?php
    }


Что я уже пробовал:

плагин не работает из-за устаревшего API. Мне нужно использовать его, но мои знания json-PHP не самые лучшие. Я хочу поместить URL-адрес из учетной записи twitch, и плагин проверяет URL-адрес, и если он транслируется в прямом эфире, то тег показывает сообщение "LIVE NOW", а еще показывает "offline". Я не могу заставить его работать. Я изменил части кода, чтобы перейти с apiv3 на v5, но
if ($array1[0]['type']== 0)
похоже, это не очень хорошо работает. он показывает сообщение "LIVE NOW" каждый раз, когда я меняю учетную запись twitch, даже если она не потоковая.
это оригинальный код плагина ДО мои изменения:
function bonfire_sst_header() {
	?>

        <!-- BEGIN MAIN WRAPPER (show only if Twitch channel name entered) -->
        <?php if( get_theme_mod('sst_channel_name') != '') { ?>
        <div class="sst-main-wrapper">
            <?php include( plugin_dir_path( __FILE__ ) . 'include.php'); ?>
        </div>
        <?php } ?>
        <!-- END MAIN WRAPPER (show only if Twitch channel name entered) -->
        
        <script>
        jQuery('.sst-twitch').each(function () {
            var nickname = jQuery(this).data('nickname');
            jQuery.getJSON("https://api.twitch.tv/kraken/streams/"+nickname+"?client_id=ls2awgx5gfg9m1q6iopdqb1b7d0y6a", function(c) {
                if (c.stream == null) {
                    // show if offline (unless 'Hide when not streaming' option enabled)
                    <?php if( get_theme_mod('sst_offline_hide') != '') { ?><?php } else { ?>jQuery('.sst-main-wrapper, .sst-main-widget-wrapper').addClass('sst-main-wrapper-active');<?php } ?>
                    // animations
                    jQuery('.sst-status-text-offline').addClass('sst-current-status');
                    setTimeout(function() {
                        jQuery('.sst-status-text-offline').addClass('sst-current-status-active');
                        jQuery('.sst-status-wrapper').addClass('sst-status-wrapper-active');
                    }, 25);
                } else {
                    // show if online
                    jQuery('.sst-main-wrapper, .sst-main-widget-wrapper').addClass('sst-main-wrapper-active');
                    // animations
                    jQuery('.sst-status-text-live').addClass('sst-current-status');
                    setTimeout(function() {
                        jQuery('.sst-status-text-live').addClass('sst-current-status-active');
                        jQuery('.sst-status-wrapper').addClass('sst-status-wrapper-active');
                    }, 25);
                }
            });
        });
        </script>

	<?php
	}

0 Ответов