Plugin Directory

Changeset 3469940


Ignore:
Timestamp:
02/26/2026 06:59:50 AM (4 weeks ago)
Author:
wpstream
Message:

Update to version 4.11.1 from GitHub

Location:
wpstream
Files:
16 edited
1 copied

Legend:

Unmodified
Added
Removed
  • wpstream/tags/4.11.1/admin/class-wpstream-admin.php

    r3463205 r3469940  
    272272                        ),
    273273                        'broadcaster_url'   => esc_url( esc_url(home_url('/broadcaster-page/') ) ),
     274                        'is_onboarding'     => isset($_GET['onboard']) && $_GET['onboard'] === 'yes' ? 'yes' : 'no',
    274275                    ));
    275276
  • wpstream/tags/4.11.1/admin/js/wpstream-onboarding-page.js

    r3448460 r3469940  
    11// Initialize transaction ID at the start
    22const transactionId = getOrCreateTransactionId();
    3 console.log(transactionId);
     3
     4function resolveTrackingSessionId(explicitSessionId = '') {
     5    if (explicitSessionId) {
     6        return explicitSessionId;
     7    }
     8
     9    if (typeof sessionId !== 'undefined' && sessionId) {
     10        return sessionId;
     11    }
     12
     13    return '';
     14}
    415
    516/**
     
    1021 * @param {string} element_type - The type of the element (optional)
    1122 * @param {string} element_name - The name of the element (optional)
     23 * @param {string} tracking_session_id - Session id override (optional)
    1224 */
    13 function wpstream_track_onboarding_step(action, step, element_type= '', element_name = '') {
     25function wpstream_track_onboarding_step(action, step, element_type= '', element_name = '', tracking_session_id = '') {
    1426    fetch( wpstream_onboarding_page_vars.request_url + '/onboarding/index.php', {
    1527        method: 'POST',
     
    2739            },
    2840            plugin_version: wpstream_onboarding_page_vars.plugin_version,
    29             session_id: sessionId,
     41            session_id: resolveTrackingSessionId(tracking_session_id),
    3042            transaction_id: transactionId
    3143        })
     
    3648
    3749window.addEventListener('DOMContentLoaded', async function() {
     50    wpstream_track_onboarding_step('onboarding_started', 'onboarding_' + wpstream_onboarding_page_vars.current_page);
     51
    3852    // if it's the create channel page
    3953    if ( wpstream_onboarding_page_vars.current_page === 'post_edit' ) {
     
    6781});
    6882
    69 // make a call to the wpstream_track_onboarding_step function when the user closes the page in browser but not on reload
     83// generic unload event (fires on close, refresh, and navigation)
    7084window.addEventListener('beforeunload', function() {
     85    const trackingSessionId = resolveTrackingSessionId();
    7186    const data = JSON.stringify({
    7287        website: window.location.origin,
    73         action: 'onboarding_closed',
     88        action: 'onboarding_unload',
    7489        wps_user: wpstream_onboarding_page_vars.wps_user,
    7590        parameters: {
     
    7792        },
    7893        plugin_version: wpstream_onboarding_page_vars.plugin_version,
    79         session_id: sessionId,
     94        session_id: trackingSessionId,
    8095        transaction_id: transactionId
    8196    });
  • wpstream/tags/4.11.1/includes/class-wpstream-live-api-connection.php

    r3463205 r3469940  
    10711071    }
    10721072
    1073    
    1074     public function wpstream_get_token_30(){
    1075         $token =  get_transient('wpstream_token_request_30');
    1076         if ( false === $token || $token==='' ) {
    1077             $token = $this->wpstream_club_get_token_30();
    1078             set_transient( 'wpstream_token_request_30', $token ,600);
    1079         }
    1080 
    1081         return $token;
    1082 
    1083     }
    1084    
    1085    
    1086      /**
     1073    /**
    10871074     * Edited 4.0
    10881075     *
     
    11271114     *
    11281115     */
    1129    
    1130    
    1131    
    1132    
    1133     protected function wpstream_club_get_token_30(){
    1134 
    1135         $client_id      = esc_html ( get_option('wpstream_api_key','') );
    1136         $client_secret  = esc_html ( get_option('wpstream_api_secret_key','') );
    1137         $username       = esc_html ( get_option('wpstream_api_username','') );
    1138         $password       = esc_html ( get_option('wpstream_api_password','') );
    1139 
    1140         if ( $username=='' || $password==''){
    1141             return;
    1142         }
    1143        
    1144        
    1145         $curl = curl_init();
    1146        
    1147         $json = array(
    1148                 'grant_type'=>'password',
    1149                 'username'  =>$username,
    1150                 'password'  =>$password,
    1151                 'client_id'=>'qxZ6fCoOMj4cNK8SXRHa5nug6vnswlFWSF37hsW3',
    1152                 'client_secret'=>'L1fzLosJf9TlwnCCTZ5pkKmdqqkHShKEi0d4oFNE'
    1153             );
    1154 
    1155         curl_setopt_array($curl, array(
    1156         CURLOPT_URL => WPSTREAM_CLUBLINKSSL."://www.".WPSTREAM_CLUBLINK."/?oauth=token",
    1157         CURLOPT_RETURNTRANSFER => true,
    1158         CURLOPT_ENCODING => "",
    1159         CURLOPT_MAXREDIRS => 10,
    1160         CURLOPT_TIMEOUT => 15,
    1161         CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    1162         CURLOPT_CUSTOMREQUEST => "POST",
    1163         CURLOPT_POSTFIELDS=> json_encode($json),
    1164         CURLOPT_HTTPHEADER => array(
    1165             "cache-control: no-cache",
    1166             "content-type: application/json",
    1167             ),
    1168         ));
    1169 
    1170         $response = curl_exec($curl);
    1171        
    1172         if(!$response){
    1173             //
    1174         }
    1175        
    1176         $err = curl_error($curl);
    1177        
    1178  
    1179 
    1180        
    1181        
    1182         curl_close($curl);
    1183         $response= json_decode($response);
    1184 
    1185         if(isset($response->access_token)){
    1186             return $response->access_token;
    1187         }else{
    1188             return;
    1189         }
    1190     }
    11911116   
    11921117 
  • wpstream/tags/4.11.1/public/js/broadcaster.js

    r3463205 r3469940  
    2626    let pendingReconnectTimeout = null; // timeout handle for scheduled reconnect
    2727    const reconnectDelayMs = 10000; // 10s delay before attempting to reconnect
     28    const BROADCASTER_SESSION_COOKIE = 'broadcasterSessionId';
     29
     30    function setSessionCookie(name, value) {
     31        document.cookie = name + '=' + encodeURIComponent(value) + '; path=/';
     32    }
     33
     34    function getCookie(name) {
     35        const value = `; ${document.cookie}`;
     36        const parts = value.split(`; ${name}=`);
     37        if (parts.length === 2) {
     38            return decodeURIComponent(parts.pop().split(';').shift());
     39        }
     40        return '';
     41    }
     42
     43    function getPopupPayloadFromWindowName() {
     44        let payload = {};
     45        try {
     46            if (window.name) {
     47                const parsed = JSON.parse(window.name);
     48                if (parsed && parsed.wpstream_onboarding_popup_payload) {
     49                    payload = parsed.wpstream_onboarding_popup_payload;
     50                    if (payload.session_id) {
     51                        setSessionCookie(BROADCASTER_SESSION_COOKIE, payload.session_id);
     52                    }
     53                }
     54            }
     55        } catch (e) {
     56            payload = {};
     57        }
     58
     59        if (!payload.session_id) {
     60            const cookieSessionId = getCookie(BROADCASTER_SESSION_COOKIE);
     61            if (cookieSessionId) {
     62                payload = {
     63                    session_id: cookieSessionId,
     64                };
     65            }
     66        }
     67
     68        window.name = '';
     69        return payload;
     70    }
     71
     72    const popupPayload = getPopupPayloadFromWindowName();
     73    const popupSessionId = popupPayload && popupPayload.session_id ? popupPayload.session_id : '';
     74    console.log('Popup session ID:', popupSessionId);
    2875
    2976    // Get WHIP URL from config
     
    336383                    } else {
    337384                        console.log('connection closed, not reconnecting');
     385                        wpstream_track_onboarding_step('broadcaster_streaming_stopped', 'wpstream_broadcaster', 'button', 'streaming_stopped', popupSessionId);
    338386                        // updateInputState(false);
    339387                    }
     
    347395                        // showMessage("Broadcast started successfully");
    348396                        updateStatus('connected');
     397                        wpstream_track_onboarding_step('broadcaster_streaming_started', 'wpstream_broadcaster', 'button', 'streaming_started', popupSessionId);
    349398                    }
    350399
  • wpstream/tags/4.11.1/public/js/start_streaming.js

    r3463205 r3469940  
    167167   
    168168    button.click(function(event){
     169        wpstream_safe_track_onboarding('stream_attempted', 'wpstream_' + post_type);
    169170        wpstream_safe_track_onboarding('start_stream_clicked', 'wpstream_' + post_type);
    170171        var basicStreaming = jQuery('#wpstream_basic_streaming').val() === 'true';
     
    223224             
    224225                        if(data.event_data==='err1'){
     226                            wpstream_safe_track_onboarding('stream_start_failed', 'wpstream_' + post_type, 'system', 'err1');
    225227                       
    226228                            wpstream_show_error_on_start(wpstream_start_streaming_vars.error1,parent)
    227229                       
    228230                        }else if(data.event_data ==='failed event creation'){
     231                            wpstream_safe_track_onboarding('stream_start_failed', 'wpstream_' + post_type, 'system', 'failed_event_creation');
    229232                       
    230233                            wpstream_show_error_on_start(wpstream_start_streaming_vars.failed_event_creation,parent)
     
    241244           
    242245                }else{
     246                    wpstream_safe_track_onboarding('stream_start_failed', 'wpstream_' + post_type, 'system', 'api_not_connected');
    243247                    wpstream_show_error_on_start(data.error,parent)
    244248                }
     
    246250            },
    247251            error: function (jqXHR,textStatus,errorThrown) {             
     252                wpstream_safe_track_onboarding('stream_start_failed', 'wpstream_' + post_type, 'system', 'ajax_error');
    248253            }
    249254        });
     
    418423
    419424            }else if(server_status.status==='error' ){
     425                wpstream_safe_track_onboarding('stream_start_failed', 'wpstream_' + post_type, 'system', 'status_error');
    420426               
    421427                clearInterval( counters["stop"+show_id]);
     
    571577*/
    572578function wpstream_event_stopped_make_actions(parent){
    573  
     579
    574580    var  actionButton = parent.find('.wpstream_turning_on');
    575581    wpstream_bind_start_event(actionButton);
     
    818824                        // Open the new broadcaster in a new window
    819825                        var broadcasterUrl = wpstream_start_streaming_vars.broadcaster_url + channelId;
     826                        if ( wpstream_start_streaming_vars.is_onboarding == 'yes' ) {
     827                            broadcasterUrl += '/?onboarding=1';
     828                            if (pendingPopup) {
     829                                var popupSessionId = (new URLSearchParams(window.location.search)).get('session_id') || '';
     830                                var popupPayload = {
     831                                    wpstream_onboarding_popup_payload: {
     832                                        session_id: popupSessionId,
     833                                    }
     834                                };
     835
     836                                try {
     837                                    pendingPopup.name = JSON.stringify(popupPayload);
     838                                } catch (e) {
     839                                    pendingPopup.name = '';
     840                                }
     841                            }
     842                        }
    820843                        // window.open(broadcasterUrl, 'wpstream_broadcaster_' + channelId, 'fullscreen=yes');
    821844                        if (pendingPopup) {
  • wpstream/tags/4.11.1/readme.txt

    r3463205 r3469940  
    33Tags: live streaming, video streaming, live video, broadcast, live shopping
    44Requires at least: 5.8
    5 Tested up to: 6.8
     5Tested up to: 6.9
    66Requires PHP: 7.1
    7 Stable tag: 4.11
     7Stable tag: 4.11.1
    88License: GPL
    99License URI: http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
     
    136136== Changelog ==
    137137
     138= 4.11.1 =
     139* Tested up to WordPress 6.9.1
     140
    138141= 4.11 =
    139142* Feature - Add closed captions option to the VODs
  • wpstream/tags/4.11.1/templates/broadcaster-template.php

    r3463205 r3469940  
    2424$obs_stream = get_post_meta($channel_id, 'obs_stream', true);
    2525$whip_url = get_post_meta($channel_id, 'whipUrl', true);
     26
     27$onboarding    = isset( $_GET['onboarding'] ) ? sanitize_text_field( wp_unslash( $_GET['onboarding'] ) ) : '';
     28$is_onboarding = ( $onboarding === '1' );
    2629
    2730if (empty($whip_url)) {
     
    6568                '</a>'
    6669        ),
     70        'is_onboarding'         => $is_onboarding
    6771    )
    6872);
     73
     74if ( $is_onboarding ) {
     75    wp_enqueue_script('wpstream-on-boarding-page-js', plugin_dir_url( __DIR__  ) .'admin/js/wpstream-onboarding-page.js',array(),  WPSTREAM_PLUGIN_VERSION, true);
     76    wp_localize_script( 'wpstream-on-boarding-page-js', 'wpstream_onboarding_page_vars',
     77        array(
     78            'admin_url'      => get_admin_url(),
     79            'request_url'    => WPSTREAM_CLICK,
     80            'wps_user'       => get_option('wpstream_api_username_from_token'),
     81            'current_page'   => 'broadcaster',
     82            'plugin_version' => WPSTREAM_PLUGIN_VERSION,
     83        )
     84    );
     85}
    6986
    7087?>
  • wpstream/tags/4.11.1/wpstream.php

    r3463205 r3469940  
    44 * Plugin URI:        http://wpstream.net
    55 * Description:       WpStream is a platform that allows you to live stream, create Video-on-Demand, and offer Pay-Per-View videos. We provide an affordable and user-friendly way for businesses, non-profits, and public institutions to broadcast their content and monetize their work.
    6  * Version:           4.11
     6 * Version:           4.11.1
    77 * Author:            wpstream
    88 * Author URI:        http://wpstream.net
     
    1515    die;
    1616}
    17 define('WPSTREAM_PLUGIN_VERSION', '4.11');
     17define('WPSTREAM_PLUGIN_VERSION', '4.11.1');
    1818define('WPSTREAM_CLUBLINK', 'wpstream.net');
    1919define('WPSTREAM_CLUBLINKSSL', 'https');
  • wpstream/trunk/admin/class-wpstream-admin.php

    r3463205 r3469940  
    272272                        ),
    273273                        'broadcaster_url'   => esc_url( esc_url(home_url('/broadcaster-page/') ) ),
     274                        'is_onboarding'     => isset($_GET['onboard']) && $_GET['onboard'] === 'yes' ? 'yes' : 'no',
    274275                    ));
    275276
  • wpstream/trunk/admin/js/wpstream-onboarding-page.js

    r3448460 r3469940  
    11// Initialize transaction ID at the start
    22const transactionId = getOrCreateTransactionId();
    3 console.log(transactionId);
     3
     4function resolveTrackingSessionId(explicitSessionId = '') {
     5    if (explicitSessionId) {
     6        return explicitSessionId;
     7    }
     8
     9    if (typeof sessionId !== 'undefined' && sessionId) {
     10        return sessionId;
     11    }
     12
     13    return '';
     14}
    415
    516/**
     
    1021 * @param {string} element_type - The type of the element (optional)
    1122 * @param {string} element_name - The name of the element (optional)
     23 * @param {string} tracking_session_id - Session id override (optional)
    1224 */
    13 function wpstream_track_onboarding_step(action, step, element_type= '', element_name = '') {
     25function wpstream_track_onboarding_step(action, step, element_type= '', element_name = '', tracking_session_id = '') {
    1426    fetch( wpstream_onboarding_page_vars.request_url + '/onboarding/index.php', {
    1527        method: 'POST',
     
    2739            },
    2840            plugin_version: wpstream_onboarding_page_vars.plugin_version,
    29             session_id: sessionId,
     41            session_id: resolveTrackingSessionId(tracking_session_id),
    3042            transaction_id: transactionId
    3143        })
     
    3648
    3749window.addEventListener('DOMContentLoaded', async function() {
     50    wpstream_track_onboarding_step('onboarding_started', 'onboarding_' + wpstream_onboarding_page_vars.current_page);
     51
    3852    // if it's the create channel page
    3953    if ( wpstream_onboarding_page_vars.current_page === 'post_edit' ) {
     
    6781});
    6882
    69 // make a call to the wpstream_track_onboarding_step function when the user closes the page in browser but not on reload
     83// generic unload event (fires on close, refresh, and navigation)
    7084window.addEventListener('beforeunload', function() {
     85    const trackingSessionId = resolveTrackingSessionId();
    7186    const data = JSON.stringify({
    7287        website: window.location.origin,
    73         action: 'onboarding_closed',
     88        action: 'onboarding_unload',
    7489        wps_user: wpstream_onboarding_page_vars.wps_user,
    7590        parameters: {
     
    7792        },
    7893        plugin_version: wpstream_onboarding_page_vars.plugin_version,
    79         session_id: sessionId,
     94        session_id: trackingSessionId,
    8095        transaction_id: transactionId
    8196    });
  • wpstream/trunk/includes/class-wpstream-live-api-connection.php

    r3463205 r3469940  
    10711071    }
    10721072
    1073    
    1074     public function wpstream_get_token_30(){
    1075         $token =  get_transient('wpstream_token_request_30');
    1076         if ( false === $token || $token==='' ) {
    1077             $token = $this->wpstream_club_get_token_30();
    1078             set_transient( 'wpstream_token_request_30', $token ,600);
    1079         }
    1080 
    1081         return $token;
    1082 
    1083     }
    1084    
    1085    
    1086      /**
     1073    /**
    10871074     * Edited 4.0
    10881075     *
     
    11271114     *
    11281115     */
    1129    
    1130    
    1131    
    1132    
    1133     protected function wpstream_club_get_token_30(){
    1134 
    1135         $client_id      = esc_html ( get_option('wpstream_api_key','') );
    1136         $client_secret  = esc_html ( get_option('wpstream_api_secret_key','') );
    1137         $username       = esc_html ( get_option('wpstream_api_username','') );
    1138         $password       = esc_html ( get_option('wpstream_api_password','') );
    1139 
    1140         if ( $username=='' || $password==''){
    1141             return;
    1142         }
    1143        
    1144        
    1145         $curl = curl_init();
    1146        
    1147         $json = array(
    1148                 'grant_type'=>'password',
    1149                 'username'  =>$username,
    1150                 'password'  =>$password,
    1151                 'client_id'=>'qxZ6fCoOMj4cNK8SXRHa5nug6vnswlFWSF37hsW3',
    1152                 'client_secret'=>'L1fzLosJf9TlwnCCTZ5pkKmdqqkHShKEi0d4oFNE'
    1153             );
    1154 
    1155         curl_setopt_array($curl, array(
    1156         CURLOPT_URL => WPSTREAM_CLUBLINKSSL."://www.".WPSTREAM_CLUBLINK."/?oauth=token",
    1157         CURLOPT_RETURNTRANSFER => true,
    1158         CURLOPT_ENCODING => "",
    1159         CURLOPT_MAXREDIRS => 10,
    1160         CURLOPT_TIMEOUT => 15,
    1161         CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    1162         CURLOPT_CUSTOMREQUEST => "POST",
    1163         CURLOPT_POSTFIELDS=> json_encode($json),
    1164         CURLOPT_HTTPHEADER => array(
    1165             "cache-control: no-cache",
    1166             "content-type: application/json",
    1167             ),
    1168         ));
    1169 
    1170         $response = curl_exec($curl);
    1171        
    1172         if(!$response){
    1173             //
    1174         }
    1175        
    1176         $err = curl_error($curl);
    1177        
    1178  
    1179 
    1180        
    1181        
    1182         curl_close($curl);
    1183         $response= json_decode($response);
    1184 
    1185         if(isset($response->access_token)){
    1186             return $response->access_token;
    1187         }else{
    1188             return;
    1189         }
    1190     }
    11911116   
    11921117 
  • wpstream/trunk/public/js/broadcaster.js

    r3463205 r3469940  
    2626    let pendingReconnectTimeout = null; // timeout handle for scheduled reconnect
    2727    const reconnectDelayMs = 10000; // 10s delay before attempting to reconnect
     28    const BROADCASTER_SESSION_COOKIE = 'broadcasterSessionId';
     29
     30    function setSessionCookie(name, value) {
     31        document.cookie = name + '=' + encodeURIComponent(value) + '; path=/';
     32    }
     33
     34    function getCookie(name) {
     35        const value = `; ${document.cookie}`;
     36        const parts = value.split(`; ${name}=`);
     37        if (parts.length === 2) {
     38            return decodeURIComponent(parts.pop().split(';').shift());
     39        }
     40        return '';
     41    }
     42
     43    function getPopupPayloadFromWindowName() {
     44        let payload = {};
     45        try {
     46            if (window.name) {
     47                const parsed = JSON.parse(window.name);
     48                if (parsed && parsed.wpstream_onboarding_popup_payload) {
     49                    payload = parsed.wpstream_onboarding_popup_payload;
     50                    if (payload.session_id) {
     51                        setSessionCookie(BROADCASTER_SESSION_COOKIE, payload.session_id);
     52                    }
     53                }
     54            }
     55        } catch (e) {
     56            payload = {};
     57        }
     58
     59        if (!payload.session_id) {
     60            const cookieSessionId = getCookie(BROADCASTER_SESSION_COOKIE);
     61            if (cookieSessionId) {
     62                payload = {
     63                    session_id: cookieSessionId,
     64                };
     65            }
     66        }
     67
     68        window.name = '';
     69        return payload;
     70    }
     71
     72    const popupPayload = getPopupPayloadFromWindowName();
     73    const popupSessionId = popupPayload && popupPayload.session_id ? popupPayload.session_id : '';
     74    console.log('Popup session ID:', popupSessionId);
    2875
    2976    // Get WHIP URL from config
     
    336383                    } else {
    337384                        console.log('connection closed, not reconnecting');
     385                        wpstream_track_onboarding_step('broadcaster_streaming_stopped', 'wpstream_broadcaster', 'button', 'streaming_stopped', popupSessionId);
    338386                        // updateInputState(false);
    339387                    }
     
    347395                        // showMessage("Broadcast started successfully");
    348396                        updateStatus('connected');
     397                        wpstream_track_onboarding_step('broadcaster_streaming_started', 'wpstream_broadcaster', 'button', 'streaming_started', popupSessionId);
    349398                    }
    350399
  • wpstream/trunk/public/js/start_streaming.js

    r3463205 r3469940  
    167167   
    168168    button.click(function(event){
     169        wpstream_safe_track_onboarding('stream_attempted', 'wpstream_' + post_type);
    169170        wpstream_safe_track_onboarding('start_stream_clicked', 'wpstream_' + post_type);
    170171        var basicStreaming = jQuery('#wpstream_basic_streaming').val() === 'true';
     
    223224             
    224225                        if(data.event_data==='err1'){
     226                            wpstream_safe_track_onboarding('stream_start_failed', 'wpstream_' + post_type, 'system', 'err1');
    225227                       
    226228                            wpstream_show_error_on_start(wpstream_start_streaming_vars.error1,parent)
    227229                       
    228230                        }else if(data.event_data ==='failed event creation'){
     231                            wpstream_safe_track_onboarding('stream_start_failed', 'wpstream_' + post_type, 'system', 'failed_event_creation');
    229232                       
    230233                            wpstream_show_error_on_start(wpstream_start_streaming_vars.failed_event_creation,parent)
     
    241244           
    242245                }else{
     246                    wpstream_safe_track_onboarding('stream_start_failed', 'wpstream_' + post_type, 'system', 'api_not_connected');
    243247                    wpstream_show_error_on_start(data.error,parent)
    244248                }
     
    246250            },
    247251            error: function (jqXHR,textStatus,errorThrown) {             
     252                wpstream_safe_track_onboarding('stream_start_failed', 'wpstream_' + post_type, 'system', 'ajax_error');
    248253            }
    249254        });
     
    418423
    419424            }else if(server_status.status==='error' ){
     425                wpstream_safe_track_onboarding('stream_start_failed', 'wpstream_' + post_type, 'system', 'status_error');
    420426               
    421427                clearInterval( counters["stop"+show_id]);
     
    571577*/
    572578function wpstream_event_stopped_make_actions(parent){
    573  
     579
    574580    var  actionButton = parent.find('.wpstream_turning_on');
    575581    wpstream_bind_start_event(actionButton);
     
    818824                        // Open the new broadcaster in a new window
    819825                        var broadcasterUrl = wpstream_start_streaming_vars.broadcaster_url + channelId;
     826                        if ( wpstream_start_streaming_vars.is_onboarding == 'yes' ) {
     827                            broadcasterUrl += '/?onboarding=1';
     828                            if (pendingPopup) {
     829                                var popupSessionId = (new URLSearchParams(window.location.search)).get('session_id') || '';
     830                                var popupPayload = {
     831                                    wpstream_onboarding_popup_payload: {
     832                                        session_id: popupSessionId,
     833                                    }
     834                                };
     835
     836                                try {
     837                                    pendingPopup.name = JSON.stringify(popupPayload);
     838                                } catch (e) {
     839                                    pendingPopup.name = '';
     840                                }
     841                            }
     842                        }
    820843                        // window.open(broadcasterUrl, 'wpstream_broadcaster_' + channelId, 'fullscreen=yes');
    821844                        if (pendingPopup) {
  • wpstream/trunk/readme.txt

    r3463205 r3469940  
    33Tags: live streaming, video streaming, live video, broadcast, live shopping
    44Requires at least: 5.8
    5 Tested up to: 6.8
     5Tested up to: 6.9
    66Requires PHP: 7.1
    7 Stable tag: 4.11
     7Stable tag: 4.11.1
    88License: GPL
    99License URI: http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
     
    136136== Changelog ==
    137137
     138= 4.11.1 =
     139* Tested up to WordPress 6.9.1
     140
    138141= 4.11 =
    139142* Feature - Add closed captions option to the VODs
  • wpstream/trunk/templates/broadcaster-template.php

    r3463205 r3469940  
    2424$obs_stream = get_post_meta($channel_id, 'obs_stream', true);
    2525$whip_url = get_post_meta($channel_id, 'whipUrl', true);
     26
     27$onboarding    = isset( $_GET['onboarding'] ) ? sanitize_text_field( wp_unslash( $_GET['onboarding'] ) ) : '';
     28$is_onboarding = ( $onboarding === '1' );
    2629
    2730if (empty($whip_url)) {
     
    6568                '</a>'
    6669        ),
     70        'is_onboarding'         => $is_onboarding
    6771    )
    6872);
     73
     74if ( $is_onboarding ) {
     75    wp_enqueue_script('wpstream-on-boarding-page-js', plugin_dir_url( __DIR__  ) .'admin/js/wpstream-onboarding-page.js',array(),  WPSTREAM_PLUGIN_VERSION, true);
     76    wp_localize_script( 'wpstream-on-boarding-page-js', 'wpstream_onboarding_page_vars',
     77        array(
     78            'admin_url'      => get_admin_url(),
     79            'request_url'    => WPSTREAM_CLICK,
     80            'wps_user'       => get_option('wpstream_api_username_from_token'),
     81            'current_page'   => 'broadcaster',
     82            'plugin_version' => WPSTREAM_PLUGIN_VERSION,
     83        )
     84    );
     85}
    6986
    7087?>
  • wpstream/trunk/wpstream.php

    r3463205 r3469940  
    44 * Plugin URI:        http://wpstream.net
    55 * Description:       WpStream is a platform that allows you to live stream, create Video-on-Demand, and offer Pay-Per-View videos. We provide an affordable and user-friendly way for businesses, non-profits, and public institutions to broadcast their content and monetize their work.
    6  * Version:           4.11
     6 * Version:           4.11.1
    77 * Author:            wpstream
    88 * Author URI:        http://wpstream.net
     
    1515    die;
    1616}
    17 define('WPSTREAM_PLUGIN_VERSION', '4.11');
     17define('WPSTREAM_PLUGIN_VERSION', '4.11.1');
    1818define('WPSTREAM_CLUBLINK', 'wpstream.net');
    1919define('WPSTREAM_CLUBLINKSSL', 'https');
Note: See TracChangeset for help on using the changeset viewer.