Changeset 3469940
- Timestamp:
- 02/26/2026 06:59:50 AM (4 weeks ago)
- Location:
- wpstream
- Files:
-
- 16 edited
- 1 copied
-
tags/4.11.1 (copied) (copied from wpstream/trunk)
-
tags/4.11.1/admin/class-wpstream-admin.php (modified) (1 diff)
-
tags/4.11.1/admin/js/wpstream-onboarding-page.js (modified) (6 diffs)
-
tags/4.11.1/includes/class-wpstream-live-api-connection.php (modified) (2 diffs)
-
tags/4.11.1/public/js/broadcaster.js (modified) (3 diffs)
-
tags/4.11.1/public/js/start_streaming.js (modified) (7 diffs)
-
tags/4.11.1/readme.txt (modified) (2 diffs)
-
tags/4.11.1/templates/broadcaster-template.php (modified) (2 diffs)
-
tags/4.11.1/wpstream.php (modified) (2 diffs)
-
trunk/admin/class-wpstream-admin.php (modified) (1 diff)
-
trunk/admin/js/wpstream-onboarding-page.js (modified) (6 diffs)
-
trunk/includes/class-wpstream-live-api-connection.php (modified) (2 diffs)
-
trunk/public/js/broadcaster.js (modified) (3 diffs)
-
trunk/public/js/start_streaming.js (modified) (7 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/templates/broadcaster-template.php (modified) (2 diffs)
-
trunk/wpstream.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
wpstream/tags/4.11.1/admin/class-wpstream-admin.php
r3463205 r3469940 272 272 ), 273 273 'broadcaster_url' => esc_url( esc_url(home_url('/broadcaster-page/') ) ), 274 'is_onboarding' => isset($_GET['onboard']) && $_GET['onboard'] === 'yes' ? 'yes' : 'no', 274 275 )); 275 276 -
wpstream/tags/4.11.1/admin/js/wpstream-onboarding-page.js
r3448460 r3469940 1 1 // Initialize transaction ID at the start 2 2 const transactionId = getOrCreateTransactionId(); 3 console.log(transactionId); 3 4 function resolveTrackingSessionId(explicitSessionId = '') { 5 if (explicitSessionId) { 6 return explicitSessionId; 7 } 8 9 if (typeof sessionId !== 'undefined' && sessionId) { 10 return sessionId; 11 } 12 13 return ''; 14 } 4 15 5 16 /** … … 10 21 * @param {string} element_type - The type of the element (optional) 11 22 * @param {string} element_name - The name of the element (optional) 23 * @param {string} tracking_session_id - Session id override (optional) 12 24 */ 13 function wpstream_track_onboarding_step(action, step, element_type= '', element_name = '' ) {25 function wpstream_track_onboarding_step(action, step, element_type= '', element_name = '', tracking_session_id = '') { 14 26 fetch( wpstream_onboarding_page_vars.request_url + '/onboarding/index.php', { 15 27 method: 'POST', … … 27 39 }, 28 40 plugin_version: wpstream_onboarding_page_vars.plugin_version, 29 session_id: sessionId,41 session_id: resolveTrackingSessionId(tracking_session_id), 30 42 transaction_id: transactionId 31 43 }) … … 36 48 37 49 window.addEventListener('DOMContentLoaded', async function() { 50 wpstream_track_onboarding_step('onboarding_started', 'onboarding_' + wpstream_onboarding_page_vars.current_page); 51 38 52 // if it's the create channel page 39 53 if ( wpstream_onboarding_page_vars.current_page === 'post_edit' ) { … … 67 81 }); 68 82 69 // make a call to the wpstream_track_onboarding_step function when the user closes the page in browser but not on reload83 // generic unload event (fires on close, refresh, and navigation) 70 84 window.addEventListener('beforeunload', function() { 85 const trackingSessionId = resolveTrackingSessionId(); 71 86 const data = JSON.stringify({ 72 87 website: window.location.origin, 73 action: 'onboarding_ closed',88 action: 'onboarding_unload', 74 89 wps_user: wpstream_onboarding_page_vars.wps_user, 75 90 parameters: { … … 77 92 }, 78 93 plugin_version: wpstream_onboarding_page_vars.plugin_version, 79 session_id: sessionId,94 session_id: trackingSessionId, 80 95 transaction_id: transactionId 81 96 }); -
wpstream/tags/4.11.1/includes/class-wpstream-live-api-connection.php
r3463205 r3469940 1071 1071 } 1072 1072 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 /** 1087 1074 * Edited 4.0 1088 1075 * … … 1127 1114 * 1128 1115 */ 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 }1191 1116 1192 1117 -
wpstream/tags/4.11.1/public/js/broadcaster.js
r3463205 r3469940 26 26 let pendingReconnectTimeout = null; // timeout handle for scheduled reconnect 27 27 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); 28 75 29 76 // Get WHIP URL from config … … 336 383 } else { 337 384 console.log('connection closed, not reconnecting'); 385 wpstream_track_onboarding_step('broadcaster_streaming_stopped', 'wpstream_broadcaster', 'button', 'streaming_stopped', popupSessionId); 338 386 // updateInputState(false); 339 387 } … … 347 395 // showMessage("Broadcast started successfully"); 348 396 updateStatus('connected'); 397 wpstream_track_onboarding_step('broadcaster_streaming_started', 'wpstream_broadcaster', 'button', 'streaming_started', popupSessionId); 349 398 } 350 399 -
wpstream/tags/4.11.1/public/js/start_streaming.js
r3463205 r3469940 167 167 168 168 button.click(function(event){ 169 wpstream_safe_track_onboarding('stream_attempted', 'wpstream_' + post_type); 169 170 wpstream_safe_track_onboarding('start_stream_clicked', 'wpstream_' + post_type); 170 171 var basicStreaming = jQuery('#wpstream_basic_streaming').val() === 'true'; … … 223 224 224 225 if(data.event_data==='err1'){ 226 wpstream_safe_track_onboarding('stream_start_failed', 'wpstream_' + post_type, 'system', 'err1'); 225 227 226 228 wpstream_show_error_on_start(wpstream_start_streaming_vars.error1,parent) 227 229 228 230 }else if(data.event_data ==='failed event creation'){ 231 wpstream_safe_track_onboarding('stream_start_failed', 'wpstream_' + post_type, 'system', 'failed_event_creation'); 229 232 230 233 wpstream_show_error_on_start(wpstream_start_streaming_vars.failed_event_creation,parent) … … 241 244 242 245 }else{ 246 wpstream_safe_track_onboarding('stream_start_failed', 'wpstream_' + post_type, 'system', 'api_not_connected'); 243 247 wpstream_show_error_on_start(data.error,parent) 244 248 } … … 246 250 }, 247 251 error: function (jqXHR,textStatus,errorThrown) { 252 wpstream_safe_track_onboarding('stream_start_failed', 'wpstream_' + post_type, 'system', 'ajax_error'); 248 253 } 249 254 }); … … 418 423 419 424 }else if(server_status.status==='error' ){ 425 wpstream_safe_track_onboarding('stream_start_failed', 'wpstream_' + post_type, 'system', 'status_error'); 420 426 421 427 clearInterval( counters["stop"+show_id]); … … 571 577 */ 572 578 function wpstream_event_stopped_make_actions(parent){ 573 579 574 580 var actionButton = parent.find('.wpstream_turning_on'); 575 581 wpstream_bind_start_event(actionButton); … … 818 824 // Open the new broadcaster in a new window 819 825 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 } 820 843 // window.open(broadcasterUrl, 'wpstream_broadcaster_' + channelId, 'fullscreen=yes'); 821 844 if (pendingPopup) { -
wpstream/tags/4.11.1/readme.txt
r3463205 r3469940 3 3 Tags: live streaming, video streaming, live video, broadcast, live shopping 4 4 Requires at least: 5.8 5 Tested up to: 6. 85 Tested up to: 6.9 6 6 Requires PHP: 7.1 7 Stable tag: 4.11 7 Stable tag: 4.11.1 8 8 License: GPL 9 9 License URI: http://www.gnu.org/licenses/old-licenses/gpl-2.0.html … … 136 136 == Changelog == 137 137 138 = 4.11.1 = 139 * Tested up to WordPress 6.9.1 140 138 141 = 4.11 = 139 142 * Feature - Add closed captions option to the VODs -
wpstream/tags/4.11.1/templates/broadcaster-template.php
r3463205 r3469940 24 24 $obs_stream = get_post_meta($channel_id, 'obs_stream', true); 25 25 $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' ); 26 29 27 30 if (empty($whip_url)) { … … 65 68 '</a>' 66 69 ), 70 'is_onboarding' => $is_onboarding 67 71 ) 68 72 ); 73 74 if ( $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 } 69 86 70 87 ?> -
wpstream/tags/4.11.1/wpstream.php
r3463205 r3469940 4 4 * Plugin URI: http://wpstream.net 5 5 * 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 7 7 * Author: wpstream 8 8 * Author URI: http://wpstream.net … … 15 15 die; 16 16 } 17 define('WPSTREAM_PLUGIN_VERSION', '4.11 ');17 define('WPSTREAM_PLUGIN_VERSION', '4.11.1'); 18 18 define('WPSTREAM_CLUBLINK', 'wpstream.net'); 19 19 define('WPSTREAM_CLUBLINKSSL', 'https'); -
wpstream/trunk/admin/class-wpstream-admin.php
r3463205 r3469940 272 272 ), 273 273 'broadcaster_url' => esc_url( esc_url(home_url('/broadcaster-page/') ) ), 274 'is_onboarding' => isset($_GET['onboard']) && $_GET['onboard'] === 'yes' ? 'yes' : 'no', 274 275 )); 275 276 -
wpstream/trunk/admin/js/wpstream-onboarding-page.js
r3448460 r3469940 1 1 // Initialize transaction ID at the start 2 2 const transactionId = getOrCreateTransactionId(); 3 console.log(transactionId); 3 4 function resolveTrackingSessionId(explicitSessionId = '') { 5 if (explicitSessionId) { 6 return explicitSessionId; 7 } 8 9 if (typeof sessionId !== 'undefined' && sessionId) { 10 return sessionId; 11 } 12 13 return ''; 14 } 4 15 5 16 /** … … 10 21 * @param {string} element_type - The type of the element (optional) 11 22 * @param {string} element_name - The name of the element (optional) 23 * @param {string} tracking_session_id - Session id override (optional) 12 24 */ 13 function wpstream_track_onboarding_step(action, step, element_type= '', element_name = '' ) {25 function wpstream_track_onboarding_step(action, step, element_type= '', element_name = '', tracking_session_id = '') { 14 26 fetch( wpstream_onboarding_page_vars.request_url + '/onboarding/index.php', { 15 27 method: 'POST', … … 27 39 }, 28 40 plugin_version: wpstream_onboarding_page_vars.plugin_version, 29 session_id: sessionId,41 session_id: resolveTrackingSessionId(tracking_session_id), 30 42 transaction_id: transactionId 31 43 }) … … 36 48 37 49 window.addEventListener('DOMContentLoaded', async function() { 50 wpstream_track_onboarding_step('onboarding_started', 'onboarding_' + wpstream_onboarding_page_vars.current_page); 51 38 52 // if it's the create channel page 39 53 if ( wpstream_onboarding_page_vars.current_page === 'post_edit' ) { … … 67 81 }); 68 82 69 // make a call to the wpstream_track_onboarding_step function when the user closes the page in browser but not on reload83 // generic unload event (fires on close, refresh, and navigation) 70 84 window.addEventListener('beforeunload', function() { 85 const trackingSessionId = resolveTrackingSessionId(); 71 86 const data = JSON.stringify({ 72 87 website: window.location.origin, 73 action: 'onboarding_ closed',88 action: 'onboarding_unload', 74 89 wps_user: wpstream_onboarding_page_vars.wps_user, 75 90 parameters: { … … 77 92 }, 78 93 plugin_version: wpstream_onboarding_page_vars.plugin_version, 79 session_id: sessionId,94 session_id: trackingSessionId, 80 95 transaction_id: transactionId 81 96 }); -
wpstream/trunk/includes/class-wpstream-live-api-connection.php
r3463205 r3469940 1071 1071 } 1072 1072 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 /** 1087 1074 * Edited 4.0 1088 1075 * … … 1127 1114 * 1128 1115 */ 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 }1191 1116 1192 1117 -
wpstream/trunk/public/js/broadcaster.js
r3463205 r3469940 26 26 let pendingReconnectTimeout = null; // timeout handle for scheduled reconnect 27 27 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); 28 75 29 76 // Get WHIP URL from config … … 336 383 } else { 337 384 console.log('connection closed, not reconnecting'); 385 wpstream_track_onboarding_step('broadcaster_streaming_stopped', 'wpstream_broadcaster', 'button', 'streaming_stopped', popupSessionId); 338 386 // updateInputState(false); 339 387 } … … 347 395 // showMessage("Broadcast started successfully"); 348 396 updateStatus('connected'); 397 wpstream_track_onboarding_step('broadcaster_streaming_started', 'wpstream_broadcaster', 'button', 'streaming_started', popupSessionId); 349 398 } 350 399 -
wpstream/trunk/public/js/start_streaming.js
r3463205 r3469940 167 167 168 168 button.click(function(event){ 169 wpstream_safe_track_onboarding('stream_attempted', 'wpstream_' + post_type); 169 170 wpstream_safe_track_onboarding('start_stream_clicked', 'wpstream_' + post_type); 170 171 var basicStreaming = jQuery('#wpstream_basic_streaming').val() === 'true'; … … 223 224 224 225 if(data.event_data==='err1'){ 226 wpstream_safe_track_onboarding('stream_start_failed', 'wpstream_' + post_type, 'system', 'err1'); 225 227 226 228 wpstream_show_error_on_start(wpstream_start_streaming_vars.error1,parent) 227 229 228 230 }else if(data.event_data ==='failed event creation'){ 231 wpstream_safe_track_onboarding('stream_start_failed', 'wpstream_' + post_type, 'system', 'failed_event_creation'); 229 232 230 233 wpstream_show_error_on_start(wpstream_start_streaming_vars.failed_event_creation,parent) … … 241 244 242 245 }else{ 246 wpstream_safe_track_onboarding('stream_start_failed', 'wpstream_' + post_type, 'system', 'api_not_connected'); 243 247 wpstream_show_error_on_start(data.error,parent) 244 248 } … … 246 250 }, 247 251 error: function (jqXHR,textStatus,errorThrown) { 252 wpstream_safe_track_onboarding('stream_start_failed', 'wpstream_' + post_type, 'system', 'ajax_error'); 248 253 } 249 254 }); … … 418 423 419 424 }else if(server_status.status==='error' ){ 425 wpstream_safe_track_onboarding('stream_start_failed', 'wpstream_' + post_type, 'system', 'status_error'); 420 426 421 427 clearInterval( counters["stop"+show_id]); … … 571 577 */ 572 578 function wpstream_event_stopped_make_actions(parent){ 573 579 574 580 var actionButton = parent.find('.wpstream_turning_on'); 575 581 wpstream_bind_start_event(actionButton); … … 818 824 // Open the new broadcaster in a new window 819 825 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 } 820 843 // window.open(broadcasterUrl, 'wpstream_broadcaster_' + channelId, 'fullscreen=yes'); 821 844 if (pendingPopup) { -
wpstream/trunk/readme.txt
r3463205 r3469940 3 3 Tags: live streaming, video streaming, live video, broadcast, live shopping 4 4 Requires at least: 5.8 5 Tested up to: 6. 85 Tested up to: 6.9 6 6 Requires PHP: 7.1 7 Stable tag: 4.11 7 Stable tag: 4.11.1 8 8 License: GPL 9 9 License URI: http://www.gnu.org/licenses/old-licenses/gpl-2.0.html … … 136 136 == Changelog == 137 137 138 = 4.11.1 = 139 * Tested up to WordPress 6.9.1 140 138 141 = 4.11 = 139 142 * Feature - Add closed captions option to the VODs -
wpstream/trunk/templates/broadcaster-template.php
r3463205 r3469940 24 24 $obs_stream = get_post_meta($channel_id, 'obs_stream', true); 25 25 $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' ); 26 29 27 30 if (empty($whip_url)) { … … 65 68 '</a>' 66 69 ), 70 'is_onboarding' => $is_onboarding 67 71 ) 68 72 ); 73 74 if ( $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 } 69 86 70 87 ?> -
wpstream/trunk/wpstream.php
r3463205 r3469940 4 4 * Plugin URI: http://wpstream.net 5 5 * 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 7 7 * Author: wpstream 8 8 * Author URI: http://wpstream.net … … 15 15 die; 16 16 } 17 define('WPSTREAM_PLUGIN_VERSION', '4.11 ');17 define('WPSTREAM_PLUGIN_VERSION', '4.11.1'); 18 18 define('WPSTREAM_CLUBLINK', 'wpstream.net'); 19 19 define('WPSTREAM_CLUBLINKSSL', 'https');
Note: See TracChangeset
for help on using the changeset viewer.