PluginProbe
WpStream – Live Streaming, Video on Demand, Pay Per View / 3.1.8
WpStream – Live Streaming, Video on Demand, Pay Per View v3.1.8
4.14.1 4.14.0 4.13.2 4.13.1 4.13 4.12.5 4.12.4 4.12.3 4.12.2 4.12.1 4.12 4.4.4 4.4.5 4.4.6 4.4.7 4.4.8 4.4.9 4.5 4.5.1 4.5.11 4.5.11.1 4.5.11.2 4.5.11.4 4.5.11.5 4.5.11.6 All 181 releases
← All changes | includes/class-wpstream.php +95 -719 4.12.13.1.8 View file →
@@ -1,5 +1,6 @@
1 1 <?php
2 +
2 3 /**
3 4 * The file that defines the core plugin class
4 5 *
5 6 * A class definition that includes attributes and functions used across both the
@@ -34,9 +35,8 @@
34 35 * @since 3.0.1
35 36 * @var object The main class.
36 37 */
37 38 public $main;
38 - public $admin;
39 39
40 40 /**
41 41 * The loader that's responsible for maintaining and registering all hooks that power
42 42 * the plugin.
@@ -76,54 +76,45 @@
76 76 */
77 77
78 78 public $wpstream_live_connection;
79 79 public $wpstream_player;
80 - public $quota_manager;
81 80 public $xtest;
82 81 public $plugin_admin;
83 82
84 83 public function __construct() {
85 - $this->main = $this;
86 -
87 - if ( defined( 'WPSTREAM_PLUGIN_VERSION' ) ) {
88 - $this->version = WPSTREAM_PLUGIN_VERSION;
84 + $this->main = $this;
85 + if ( defined( 'WPSTREAM_VERSION' ) ) {
86 + $this->version = WPSTREAM_VERSION;
89 87 } else {
90 - $this->version = '3.0.1';
88 + $this->version = '3.0.1';
91 89 }
92 -
93 90 $this->plugin_name = 'wpstream';
94 91
95 92 $this->load_dependencies();
93 + $this->set_locale();
96 94 $this->define_admin_hooks();
97 95 $this->define_public_hooks();
98 - $this->define_ajax_hooks();
99 - $this->wpstream_load_page_templates();
100 - $this->wpstream_load_theme_notice();
96 +
97 + $this->xtest = "this is test2";
98 + $this->wpstream_conection();
99 + $this->wpstream_player();
101 100
102 - $this->wpstream_conection();
103 - $this->wpstream_player();
104 - $this->wpstream_init_quota_manager();
105 -
106 101 }
107 102
108 -
109 -
110 -
111 -
103 +
104 +
105 +
106 +
112 107 public function wpstream_convert_band($megabits){
113 - $gigabit = $megabits * 0.001;
114 - return floatval( sprintf( '%.1f', $gigabit ) );
108 + $gigabit = $megabits * 0.001;
109 + $gigabit = number_format($gigabit,2);
110 + return $gigabit;
115 111 }
116 112
117 -
118 - public $wpstream_ajax;
119 -
120 - private function define_ajax_hooks() {
121 - require_once plugin_dir_path(dirname(__FILE__)) . 'includes/class-wpstream-ajax.php';
122 - $this->wpstream_ajax = new WpStream_Ajax( $this->main );
123 - }
124 113
125 114
115 +
116 +
126 117 private function wpstream_conection(){
127 118 require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wpstream-live-api-connection.php';
128 119 $this->wpstream_live_connection = new Wpstream_Live_Api_Connection();
129 120 }
@@ -132,26 +123,12 @@
132 123 private function wpstream_player(){
133 124 require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wpstream-player.php';
134 125 $this->wpstream_player = new Wpstream_Player($this->main);
135 126 }
136 -
137 - private function wpstream_init_quota_manager() {
138 - require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wpstream-quota-manager.php';
139 - $this->quota_manager = new Wpstream_Quota_Manager( $this );
140 - }
141 -
142 -
143 - private function wpstream_load_page_templates() {
144 - require_once WPSTREAM_PLUGIN_PATH . 'includes/class-wpstream-templates.php';
145 - new WpStream_Template_Loader();
146 - }
147 -
148 - private function wpstream_load_theme_notice() {
149 - require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wpstream-theme-notice.php';
150 - new WPStream_Theme_Notice();
151 - }
152 127
153 128
129 +
130 +
154 131 /**
155 132 * Load the required dependencies for this plugin.
156 133 *
157 134 * Include the following files that make up the plugin:
@@ -190,21 +167,19 @@
190 167 * The class responsible for defining all actions that occur in the public-facing
191 168 * side of the site.
192 169 */
193 170 require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wpstream-public.php';
194 - /**
171 +
172 + /**
195 173 * The class responsible for custom post type
196 174
197 - */
198 - require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wpstream_product.php';
199 - if( class_exists( 'WooCommerce' ) ){
200 - require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wc_product_live_stream.php';
201 - require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wc_product_video_on_demand.php';
202 - }
175 + */
176 + require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wpstream_product.php';
177 + if( class_exists( 'WooCommerce' ) ){
178 + require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wc_product_live_stream.php';
179 + require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wc_product_video_on_demand.php';
180 + }
203 181
204 - require_once plugin_dir_path(__FILE__) . 'Helpers/class-wpstream-log-entry.php';
205 - require_once plugin_dir_path(__FILE__) . 'Logger/class-wpstream-logger.php';
206 -
207 182 $this->loader = new Wpstream_Loader();
208 183
209 184 }
210 185
@@ -220,9 +195,9 @@
220 195 private function set_locale() {
221 196
222 197 $plugin_i18n = new Wpstream_i18n();
223 198
224 - $this->loader->add_action( 'plugins_loaded', $plugin_i18n, 'load_plugin_textdomain', 1 );
199 + $this->loader->add_action( 'plugins_loaded', $plugin_i18n, 'load_plugin_textdomain' );
225 200
226 201 }
227 202
228 203 /**
@@ -233,97 +208,64 @@
233 208 * @access private
234 209 */
235 210 private function define_admin_hooks() {
236 211
237 - $plugin_admin = new Wpstream_Admin( $this->get_plugin_name(), $this->get_version(), $this->main );
212 + $this->admin= $plugin_admin = new Wpstream_Admin( $this->get_plugin_name(), $this->get_version(), $this->main );
238 213
239 - $this->admin = $plugin_admin;
240 -
241 - $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_styles' );
242 - $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts' );
214 + $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_styles' );
215 + $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts' );
243 216 $this->loader->add_action( 'admin_menu', $plugin_admin, 'wpstream_manage_admin_menu',999);
244 -
217 +
245 218 $plugin_post_types = new Wpstream_Product();
246 219 $this->loader->add_action( 'init', $plugin_post_types, 'create_custom_post_type', 999 );
247 -
220 +
248 221 // save and render metaboxed
249 - $this->loader->add_action( 'add_meta_boxes', $plugin_admin, 'add_wpstream_product_metaboxes' );
250 - $this->loader->add_action( 'save_post', $plugin_admin, 'wpstream_free_product_update_post',1,2 );
251 - $this->loader->add_action( 'publish_wpstream_product', $plugin_admin, 'wpstream_publish_wpstream_product',1,2 );
252 -
253 -
254 -
255 - // make product virtual
256 - $this->loader->add_action( 'save_post', $plugin_admin, 'wpstream_make_product_virtual', 99999, 2 );
222 + $this->loader->add_action( 'admin_init', $plugin_admin, 'add_wpstream_product_metaboxes' );
223 + $this->loader->add_action( 'save_post', $plugin_admin, 'wpstream_free_product_update_post',1,2 );
224 +
225 + // show streaming controls on sidebar
226 + $this->loader->add_action('add_meta_boxes', $plugin_admin, 'wpstream_startstreaming_sidebar_meta');
257 227
258 228
229 + $this->loader->add_action( 'admin_notices', $plugin_admin,'wpstream_admin_notice' );
230 + $this->loader->add_action( 'wp_ajax_wpstream_update_cache_notice', $plugin_admin,'wpstream_update_cache_notice' );
259 231
260 - // show streaming controls on sidebar
261 - $this->loader->add_action('add_meta_boxes', $plugin_admin, 'wpstream_startstreaming_sidebar_meta');
262 -
263 - // on boarding actions
264 - $this->loader->add_action('admin_footer',$plugin_admin, 'wpstream_admin_footer_onboarding');
265 - $this->loader->add_action( 'wp_ajax_wpstream_on_board_create_channel', $plugin_admin,'wpstream_on_board_create_channel' );
266 - $this->loader->add_action( 'wp_ajax_wpstream_on_board_create_channel_ppv', $plugin_admin,'wpstream_on_board_create_channel_ppv' );
267 - $this->loader->add_action( 'wp_ajax_wpstream_on_board_create_free_vod', $plugin_admin,'wpstream_on_board_create_free_vod' );
268 - $this->loader->add_action( 'wp_ajax_wpstream_on_board_create_ppv_vod', $plugin_admin,'wpstream_on_board_create_ppv_vod' );
269 -
270 -
271 - $this->loader->add_action( 'wp_ajax_wpstream_on_board_login', $plugin_admin,'wpstream_on_board_login' );
272 - $this->loader->add_action( 'wp_ajax_wpstream_on_board_register', $plugin_admin,'wpstream_on_board_register' );
273 - $this->loader->add_action( 'wp_ajax_wpstream_get_captcha_challenge', $plugin_admin, 'wpstream_get_captcha_challenge' );
274 - $this->loader->add_action( 'wp_ajax_nopriv_wpstream_get_captcha_challenge', $plugin_admin, 'wpstream_get_captcha_challenge' );
275 -
276 - // Register AJAX actions for multipart uploads
277 - $this->loader->add_action( 'wp_ajax_wpstream_initiate_multipart_upload', $plugin_admin, 'handle_initiate_multipart_upload' );
278 - $this->loader->add_action( 'wp_ajax_wpstream_complete_multipart_upload', $plugin_admin, 'handle_complete_multipart_upload' );
279 -
280 - $this->loader->add_action( 'admin_notices', $plugin_admin,'wpstream_admin_notice' );
281 - $this->loader->add_action( 'admin_notices', $plugin_admin,'wpstream_plugin_update_available_notice' );
282 -
283 - $this->loader->add_action( 'wp_ajax_wpstream_update_cache_notice', $plugin_admin,'wpstream_update_cache_notice' );
284 -// $this->loader->add_action( 'wp_ajax_wpstream_get_videos_list', $plugin_admin,'wpstream_get_videos_list' );
285 -
286 -
287 - $this->loader->add_action( 'wp_ajax_wpstream_settings_tab_update_plugin', $plugin_admin, 'wpstream_settings_tab_update_plugin' );
288 -
289 232 // add and save category extra fields
290 233 $this->loader->add_action( 'category_edit_form_fields', $plugin_post_types, 'wpstream_category_callback_function', 10, 2);
291 - $this->loader->add_action( 'category_add_form_fields', $plugin_post_types, 'wpstream_category_callback_add_function' );
234 + $this->loader->add_action( 'category_add_form_fields', $plugin_post_types, 'wpstream_category_callback_add_function', 10, 2 );
292 235 $this->loader->add_action( 'created_category', $plugin_post_types, 'wpstream_category_save_extra_fields_callback', 10, 2);
293 236 $this->loader->add_action( 'edited_category', $plugin_post_types, 'wpstream_category_save_extra_fields_callback', 10, 2);
294 237
295 238 $this->loader->add_action( 'product_cat_edit_form_fields', $plugin_post_types, 'wpstream_category_callback_function', 10, 2);
296 - $this->loader->add_action( 'product_cat_add_form_fields', $plugin_post_types, 'wpstream_category_callback_add_function' );
239 + $this->loader->add_action( 'product_cat_add_form_fields', $plugin_post_types, 'wpstream_category_callback_add_function', 10, 2 );
297 240 $this->loader->add_action( 'created_product_cat', $plugin_post_types, 'wpstream_category_save_extra_fields_callback', 10, 2);
298 241 $this->loader->add_action( 'edited_product_cat', $plugin_post_types, 'wpstream_category_save_extra_fields_callback', 10, 2);
299 242
300 243
301 244 $this->loader->add_action( 'wpstream_category_edit_form_fields', $plugin_post_types, 'wpstream_category_callback_function', 10, 2);
302 - $this->loader->add_action( 'wpstream_category_add_form_fields', $plugin_post_types, 'wpstream_category_callback_add_function' );
245 + $this->loader->add_action( 'wpstream_category_add_form_fields', $plugin_post_types, 'wpstream_category_callback_add_function', 10, 2 );
303 246 $this->loader->add_action( 'created_wpstream_category', $plugin_post_types, 'wpstream_category_save_extra_fields_callback', 10, 2);
304 247 $this->loader->add_action( 'edited_wpstream_category', $plugin_post_types, 'wpstream_category_save_extra_fields_callback', 10, 2);
305 248
306 249
307 250 $this->loader->add_action( 'wpstream_actors_edit_form_fields', $plugin_post_types, 'wpstream_category_callback_function', 10, 2);
308 - $this->loader->add_action( 'wpstream_actors_add_form_fields', $plugin_post_types, 'wpstream_category_callback_add_function' );
251 + $this->loader->add_action( 'wpstream_actors_add_form_fields', $plugin_post_types, 'wpstream_category_callback_add_function', 10, 2 );
309 252 $this->loader->add_action( 'created_wpstream_actors', $plugin_post_types, 'wpstream_category_save_extra_fields_callback', 10, 2);
310 253 $this->loader->add_action( 'edited_wpstream_actors', $plugin_post_types, 'wpstream_category_save_extra_fields_callback', 10, 2);
311 254
312 255 $this->loader->add_action( 'wpstream_movie_rating_edit_form_fields', $plugin_post_types, 'wpstream_category_callback_function', 10, 2);
313 - $this->loader->add_action( 'wpstream_movie_rating_add_form_fields', $plugin_post_types, 'wpstream_category_callback_add_function' );
256 + $this->loader->add_action( 'wpstream_movie_rating_add_form_fields', $plugin_post_types, 'wpstream_category_callback_add_function', 10, 2 );
314 257 $this->loader->add_action( 'created_wpstream_movie_rating', $plugin_post_types, 'wpstream_category_save_extra_fields_callback', 10, 2);
315 258 $this->loader->add_action( 'edited_wpstream_movie_rating', $plugin_post_types, 'wpstream_category_save_extra_fields_callback', 10, 2);
259 +
260 +
316 261
317 262
318 263 if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
319 -
320 - $this->loader->add_action( 'init', $plugin_admin, 'wpstream_add_custom_wc_products' );
264 +
321 265 $this->loader->add_filter( 'product_type_selector', $plugin_admin, 'wpstream_add_products' );
322 - $this->loader->add_filter( 'woocommerce_product_class', $plugin_admin, 'wpstream_add_products_class', 10, 2 );
323 266 $this->loader->add_action( 'admin_footer', $plugin_admin, 'wpstream_products_custom_js' );
324 267 $this->loader->add_filter( 'woocommerce_product_data_tabs', $plugin_admin, 'wpstream_hide_attributes_data_panel',10,1 );
325 - $this->loader->add_filter( 'woocommerce_is_purchasable', $plugin_admin, 'wpstream_hide_buy_now_subscription_mode',10,2);
326 268
327 269 $this->loader->add_filter( 'woocommerce_product_options_general_product_data',$plugin_admin, 'wpstream_add_custom_general_fields', 10,1);
328 270 $this->loader->add_filter( 'woocommerce_process_product_meta',$plugin_admin, 'wpstream_add_custom_general_fields_save',10,1 );
329 271 $this->loader->add_action( 'woocommerce_live_stream_add_to_cart', $plugin_admin, 'wpstream_add_to_cart',10,1);
@@ -329,14 +271,16 @@
329 271 $this->loader->add_action( 'woocommerce_live_stream_add_to_cart', $plugin_admin, 'wpstream_add_to_cart',10,1);
330 272 $this->loader->add_action( 'woocommerce_video_on_demand_add_to_cart', $plugin_admin, 'wpstream_add_to_cart',10,1);
331 273 $this->loader->add_filter( 'woocommerce_loop_add_to_cart_link', $plugin_admin,'replacing_add_to_cart_button', 10, 2 );
332 274 }
333 - }
275 +
276 +
277 +
278 +
334 279
335 280
281 + }
336 282
337 -
338 -
339 283 /**
340 284 * Register all of the hooks related to the public-facing functionality
341 285 * of the plugin.
342 286 *
@@ -348,49 +292,44 @@
348 292 $plugin_public = new Wpstream_Public( $this->get_plugin_name(), $this->get_version(), $this->main );
349 293
350 294 $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_styles' );
351 295 $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_scripts' );
296 +
297 + $this->loader->add_action( 'init', $plugin_public,'wpstream_my_custom_endpoints' );
298 + $this->loader->add_filter( 'query_vars',$plugin_public, 'wpstream_my_custom_query_vars', 0 );
299 +
300 + //live stream action
301 + $this->loader->add_action('init',$plugin_public,'wpstream_set_cookies',0);
302 + $this->loader->add_action('init',$plugin_public,'wpstream_live_streaming_key');
303 + $this->loader->add_action('init',$plugin_public,'wpstream_live_streaming_key_for_3rdparty');
304 + $this->loader->add_action('init',$plugin_public,'wpstream_live_streaming_key_vod');
305 + // woo action
306 +
307 + $this->loader->add_action( 'woocommerce_before_single_product', $plugin_public,'wpstream_non_image_content_wrapper_start', 20 );
308 + $this->loader->add_action( 'woocommerce_after_single_product', $plugin_public,'wpstream_non_image_content_wrapper_end', 20 );
309 +
310 + $this->loader->add_filter( 'woocommerce_account_menu_items', $plugin_public,'wpstream_custom_my_account_menu_items' );
311 + $this->loader->add_action( 'woocommerce_account_event-list_endpoint', $plugin_public,'wpstream_custom_endpoint_content_event_list' );
312 + $this->loader->add_action( 'woocommerce_account_video-list_endpoint', $plugin_public,'wpstream_custom_endpoint_video_list' );
313 +
352 314
353 - $this->loader->add_action( 'init', $plugin_public,'wpstream_my_custom_endpoints' );
354 - $this->loader->add_filter( 'query_vars',$plugin_public, 'wpstream_my_custom_query_vars', 0 );
315 + $this->loader->add_action( 'after_switch_theme', $plugin_public,'wpstream_custom_flush_rewrite_rules' );
316 + $this->loader->add_action('init', $plugin_public,'wpstream_shortcodes');
355 317
356 - //live stream action
357 - $this->loader->add_action('init',$plugin_public,'wpstream_set_cookies',0);
358 - $this->loader->add_action('init',$plugin_public,'wpstream_live_streaming_key');
359 - $this->loader->add_action('init',$plugin_public,'wpstream_live_streaming_key_for_3rdparty');
360 - $this->loader->add_action('init',$plugin_public,'wpstream_live_streaming_key_vod',10);
361 -
362 - // woo action
363 - $this->loader->add_action( 'woocommerce_before_single_product', $plugin_public,'wpstream_non_image_content_wrapper_start', 20 );
364 - $this->loader->add_action( 'woocommerce_after_single_product', $plugin_public,'wpstream_non_image_content_wrapper_end', 20 );
365 - $this->loader->add_action( 'woocommerce_thankyou_order_received_text', $plugin_public,'wpstream_thankyou_extra', 20,2 );
366 - $this->loader->add_action( 'woocommerce_email_order_details', $plugin_public,'wpstream_email_order_details', 20,4 );
367 -
368 - $this->loader->add_filter( 'woocommerce_account_menu_items', $plugin_public,'wpstream_custom_my_account_menu_items' );
369 - $this->loader->add_action( 'woocommerce_account_event-list_endpoint', $plugin_public,'wpstream_custom_endpoint_content_event_list' );
370 - $this->loader->add_action( 'woocommerce_account_video-list_endpoint', $plugin_public,'wpstream_custom_endpoint_video_list' );
371 -
372 - $this->loader->add_action( 'after_switch_theme', $plugin_public,'wpstream_custom_flush_rewrite_rules' );
373 - $this->loader->add_action('init', $plugin_public,'wpstream_shortcodes');
374 - $this->loader->add_action('vc_before_init', $plugin_public,'wpstream_bakery_shortcodes');
375 -
376 - $this->loader->add_action('wo_before_api', 'wpstream_cors_check_and_response',10,1);
377 -
378 - $this->loader->add_filter( 'wpstream_search_template_item_post_type', $plugin_public, 'wpstream_search_template_add_item_post_type' );
379 - $this->loader->add_filter( 'wpstream_sidebar_id_by_post_type', $plugin_public, 'wpstream_sidebar_id_by_post_type' );
380 - $this->loader->add_filter( 'wpstream_header_search_values', $plugin_public, 'wpstream_header_search_values' );
381 - $this->loader->add_filter( 'wpstream_extend_category_archive_query_filter', $plugin_public, 'wpstream_extend_category_archive_query_filter_callback' );
382 - $this->loader->add_filter( 'wpstream_archives_lists_taxonomy_labels', $plugin_public, 'wpstream_archives_lists_taxonomy_labels_callback' );
383 - $this->loader->add_filter( 'wpstream_author_archive_list_taxonomy_labels', $plugin_public, 'wpstream_author_archive_list_taxonomy_labels_callback' );
384 - $this->loader->add_action( 'wpstream_vod_attached_to_channel', $plugin_public, 'wpstream_vod_attached_to_channel' );
385 - $this->loader->add_action( 'wpstream_additional_content_post_type', $plugin_public, 'wpstream_additional_content_post_type_callback' );
386 - $this->loader->add_action( 'wpstream_post_author_content_post_type_list', $plugin_public, 'wpstream_post_author_content_post_type_list_callback' );
387 - $this->loader->add_action( 'wpstream_author_content_simple_post_type_message', $plugin_public, 'wpstream_author_content_simple_post_type_message_callback', 10, 2 );
388 - $this->loader->add_action( 'wpstream_author_content_post_type_message', $plugin_public, 'wpstream_author_content_post_type_message_callback', 10, 2 );
389 - $this->loader->add_action( 'wpstream_show_sidebar_for_post_type', $plugin_public, 'wpstream_show_sidebar_for_post_type_callback', 10, 2 );
390 - $this->loader->add_action( 'wpstream_video_episodes_post_type', $plugin_public, 'wpstream_video_episodes_post_type_callback' );
391 - $this->loader->add_action( 'wpstream_video_past_broadcast_post_type', $plugin_public, 'wpstream_video_past_broadcast_post_type_callback' );
392 - $this->loader->add_action( 'wpstream_additional_content_post_type_label', $plugin_public, 'wpstream_additional_content_post_type_label_callback', 10, 2 );
318 +// // rewrite urls
319 +// $this->loader->add_action('init', $plugin_public,'wpstream_custom_rewrite_tag', 10, 0);
320 +// $this->loader->add_action('init', $plugin_public,'wpstream_custom_rewrite_rule', 10, 0);
321 +//
322 +// $this->loader->add_filter( 'page_template',$plugin_public, 'wpstream_userkey_page_template' );
323 +// $this->loader->add_filter( 'page_template',$plugin_public, 'wpstream_vodkey_page_template' );
324 +
325 + //api
326 +
327 +
328 + $this->loader->add_action('wo_before_api', 'wpstream_cors_check_and_response',10,1);
329 +
330 +
331 +
393 332 }
394 333
395 334 /**
396 335 * Run the loader to execute all of the hooks with WordPress.
@@ -430,310 +369,20 @@
430 369 */
431 370 public function get_version() {
432 371 return $this->version;
433 372 }
434 -
435 - public function is_plugin_outdated(){
436 - $update_data = get_site_transient('update_plugins');
437 - $plugin_path = 'wpstream/wpstream.php';
438 -
439 - if (isset($update_data->response[$plugin_path])) {
440 - return true;
441 - }
442 -
443 - return false;
444 - }
445 -
446 -
447 -
448 - public function show_user_data($pack_details){
449 - if( isset($pack_details['available_data_mb']) && isset( $pack_details['available_storage_mb']) ){
450 - $wpstream_convert_band = $this->wpstream_convert_band($pack_details['available_data_mb']);
451 - if( $wpstream_convert_band < 0 ) {
452 - $wpstream_convert_band = 0;
453 - }
454 -
455 - $wpstream_convert_storage = $this->wpstream_convert_band($pack_details['available_storage_mb']);
456 - if( $wpstream_convert_storage < 0 ) {
457 - $wpstream_convert_storage = 0;
458 - }
459 -
460 - print '<div class="pack_details_wrapper">'
461 - . '<strong>' . __('Your account information: ', 'wpstream') . '</strong> '
462 - . __('You have ', 'wpstream') . '<strong id="wpstream_available_data">' . abs( $wpstream_convert_band ) . ' GB</strong> '
463 - . __('available cloud data and ', 'wpstream')
464 - . '<strong id="wpstream_available_storage">' . abs( $wpstream_convert_storage ) . ' GB</strong> '
465 - . __('available cloud storage', 'wpstream') . '.';
466 -
467 - print '<a href="https://wpstream.net/pricing/" class="wpstream_upgrade_topbar" target="_blank">'.esc_html__('Upgrade Plan','wpstream').'</a>';
468 - print '</div>';
469 - print'<input type="hidden" id="wpstream_band" value="'.$pack_details['available_data_mb'].'">';
470 - print'<input type="hidden" id="wpstream_storage" value="'.$pack_details['available_storage_mb'].'">';
471 -
472 - }
473 - }
474 -
475 373
476 - /**
477 - * help function for media list elementor widget
478 - *
479 - * @since 3.0.1
480 - * @return string
481 - */
482 374
483 - public function wpstream_media_list_elementor_function($attributes, $content = null){
484 -
485 -
486 - $media_number=3;
487 - if ( isset($attributes['media_number']) ){
488 - $media_number=$attributes['media_number'];
489 - }
490 -
491 -
492 - $row_number=3;
493 - if ( isset($attributes['row_number']) ){
494 - $row_number=$attributes['row_number'];
495 - }
496 - if($row_number>4){
497 - $row_number=4;
498 - }
499 -
500 -
501 - ob_start();
502 -
503 - // check if is vod or live stream
504 - $meta_query = array();
505 - $tax_query_array= array();
506 - $tax_query = array();
507 -
508 - // check if the media is paid or free
509 - $event_types = array();
510 - $product_type_free_paid = 0;
511 - if ( isset($attributes['product_type_free_paid']) ){
512 - $product_type_free_paid=$attributes['product_type_free_paid'];
513 -
514 - if($product_type_free_paid==0){
515 - $event_types=array('wpstream_product');
516 -
517 - if ( isset($attributes['product_type']) && intval($attributes['product_type'])==2){
518 - $event_types=array('wpstream_product_vod');
519 - }
520 -
521 - }else{
522 - $event_types=array('product');
523 - if ( isset($attributes['product_type']) ){
524 - $product_type = $attributes['product_type'];
525 - $product_type_slug = 'video_on_demand';
526 - if($product_type==1){
527 - $product_type_slug ='live_stream';
528 - }
529 -
530 - $tax_query_array = array(
531 - 'taxonomy' => 'product_type',
532 - 'field' => 'slug',
533 - 'terms' => $product_type_slug
534 - );
535 -
536 - $tax_query= array(
537 - 'relation' => 'AND',
538 - $tax_query_array
539 - );
540 -
541 - }
542 - }
543 -
544 - }
545 - $see_product='';
546 - if(isset($attributes['free_label'])){
547 - $see_product=$attributes['free_label'];
548 - }
549 -
550 - // pagination
551 - $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
552 - if( is_front_page() ){
553 - $paged= (get_query_var('page')) ? get_query_var('page') : 1;
554 - }
555 -
556 -
557 - //order
558 - $orderby='ID';
559 - $order ='ASC';
560 - if ( isset($attributes['order_by']) ){
561 - $order_by=intval($attributes['order_by']);
562 - switch ($order_by) {
563 - case 0:
564 - $orderby='ID';
565 - $order ='ASC';
566 - break;
567 - case 1:
568 - $orderby='ID';
569 - $order ='DESC';
570 - break;
571 - case 2:
572 - $orderby='title';
573 - $order ='ASC';
574 - break;
575 - case 3:
576 - $orderby='title';
577 - $order ='DESC';
578 - break;
579 - }
580 - }
581 -
582 - // building wp_query arg array
583 - $args = array(
584 - 'post_type' => $event_types,
585 - 'post_status' => 'publish',
586 - 'meta_query' => $meta_query,
587 - 'posts_per_page' => $media_number,
588 - 'paged' => $paged,
589 - 'orderby' => $orderby,
590 - 'order' => $order,
591 - 'tax_query' => $tax_query
592 - );
593 -
594 -
595 -
596 - // show live events
597 - if ( isset($attributes['product_show_live']) && $attributes['product_show_live']=='yes'){
598 - $live_event_for_user = $this->main->wpstream_live_connection->api20_wpstream_request_live_stream_for_user_for_shortcode('shortcode');
599 375
600 -
601 - if( is_array($live_event_for_user) ){
602 - $live_event_for_user[]=0;
603 -
604 - $args['post__in']=$live_event_for_user;
605 - }
606 - }
607 -
608 -
609 -
376 + public function show_user_data($pack_details){
377 + if( isset($pack_details['band']) && isset( $pack_details['storage']) ){
378 + print '<div class="pack_details_wrapper"><strong>'.__('Your account information: ','wpstream').'</strong> '.__('You have','wpstream').'<strong> '.$this->wpstream_convert_band($pack_details['band']).' Gb</strong> '.__('available streaming bandwidth and','wpstream').' <strong>'.$this->wpstream_convert_band($pack_details['storage']).' Gb</strong> '.__('available media storage','wpstream').'.</div>';
379 + print'<input type="hidden" id="wpstream_band" value="'.$pack_details['band'].'">';
380 + print'<input type="hidden" id="wpstream_storage" value="'.$pack_details['storage'].'">';
610 381
611 - $media_list= new WP_Query($args);
612 - if($media_list->have_posts()){
613 - print '<ul class="wpstream_media_list_wrapper products columns-'.esc_attr($row_number).'" >';
614 - while($media_list->have_posts()):$media_list->the_post();
615 - if($product_type_free_paid==0 ){
616 -
617 - $thumb=wp_get_attachment_image_src(get_post_thumbnail_id(),'medium');
618 -
619 - $thumb_src='';
620 - if( isset($thumb[0]) ){
621 - $thumb_src=$thumb[0];
622 - }
623 -
624 - if(($thumb_src)==''){
625 - $thumb_src= plugin_dir_url( dirname( __FILE__ ) ). 'img/default_300.png';
626 - }
627 - print '<li class="wpstream_product_unit">'
628 - .'<a href="'.get_permalink().'" class="product_title" ><div class="product_image" style="background-image:url('.esc_url($thumb_src).')"></div></a>'
629 - .'<a href="'.get_permalink().'" class="product_title" >'.get_the_title().'</a>';
630 -
631 - if($see_product!=''){
632 - print '<a href="'.get_permalink().'"class="see_product">'.$see_product.'</a>';
633 - }
634 - print '</li>';
635 - }else{
636 - wc_get_template_part( 'content', 'product' );
637 - }
638 - endwhile;
639 - print '</ul>';
640 - }else{
641 - print esc_html__('No media found! ','wpstream');
642 - }
643 -
644 -
645 - wp_reset_query();
646 - wp_reset_postdata();
647 -
648 - $this->wpstream_pagination($media_list->max_num_pages,$range=2);
649 - $return_string= ob_get_contents();
650 - ob_end_clean();
651 -
652 - return $return_string;
653 - }
654 -
655 -
656 -
657 -
658 -
659 -
660 - /*
661 - *
662 - *
663 - * Pagination for media lista
664 - *
665 - *
666 - *
667 - */
668 -
669 -
670 -
671 -
672 - function wpstream_pagination($pages = '', $range = 2){
673 -
674 - $showitems = ($range * 2)+1;
675 - global $paged;
676 - if(empty($paged)) $paged = 1;
677 -
678 -
679 - if($pages == ''){
680 - global $wp_query;
681 - $pages = $wp_query->max_num_pages;
682 - if(!$pages)
683 - {
684 - $pages = 1;
685 382 }
686 383 }
687 384
688 - if(1 != $pages){
689 - print '<ul class="wpstream_pagination ">';
690 - print '<li class="roundleft"><a href="'.get_pagenum_link($paged - 1).'"> < </a></li>';
691 -
692 - for ($i=1; $i <= $pages; $i++)
693 - {
694 - if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems ))
695 - {
696 - if ($paged == $i){
697 - print '<li class="active"><a href="'.esc_url(get_pagenum_link($i)).'" >'.$i.'</a><li>';
698 - }else{
699 - print '<li><a href="'.esc_url(get_pagenum_link($i)).'" >'.$i.'</a><li>';
700 - }
701 - }
702 - }
703 -
704 - $prev_page= get_pagenum_link($paged + 1);
705 - if ( ($paged +1) > $pages){
706 - $prev_page= get_pagenum_link($paged );
707 - }else{
708 - $prev_page= get_pagenum_link($paged + 1);
709 - }
710 -
711 -
712 - print '<li class="roundright"><a href="'.$prev_page.'"> > </a><li>';
713 - print '</ul>';
714 - }
715 - }
716 -
717 -
718 -
719 -
720 -
721 -
722 -
723 -
724 -
725 -
726 -
727 -
728 -
729 - /**
730 - * help function for player elementr widget
731 - *
732 - * @since 3.0.1
733 - * @return string
734 - */
735 -
736 385 public function wpstream_insert_player_elementor($attributes, $content = null){
737 386 $product_id = '';
738 387 $return_string = '';
739 388 $attributes = shortcode_atts(
@@ -738,9 +387,8 @@
738 387 $return_string = '';
739 388 $attributes = shortcode_atts(
740 389 array(
741 390 'id' => 0,
742 - 'user_id' => 0,
743 391 ), $attributes) ;
744 392
745 393
746 394 if ( isset($attributes['id']) ){
@@ -745,65 +393,11 @@
745 393
746 394 if ( isset($attributes['id']) ){
747 395 $product_id=$attributes['id'];
748 396 }
749 - if ( isset($attributes['user_id']) ){
750 - $user_id = intval( $attributes['user_id'] );
751 - }
752 -
753 - if(intval($product_id)==0 && $user_id!=0 ){
754 - $product_id= $this->wpstream_player_retrive_first_id($user_id);
755 - }
756 -
757 -
758 -
759 -
760 - ob_start();
761 - ?>
762 - <div class="wpstream_insert_player_elementor_wrapper">
763 - <?php
764 - $this->main->wpstream_player->wpstream_video_player_shortcode($product_id);
765 - ?>
766 - </div>
767 - <?php
768 - $return_string= ob_get_contents();
769 - ob_end_clean();
770 397
771 - return $return_string;
772 - }
773 -
774 - /**
775 - * help function for player low latency elementor widget
776 - *
777 - * @since 3.0.1
778 - * @return string
779 - */
780 -
781 - public function wpstream_insert_player__low_latency_elementor($attributes, $content = null){
782 - $product_id = '';
783 - $return_string = '';
784 - $attributes = shortcode_atts(
785 - array(
786 - 'id' => 0,
787 - 'user_id' => 0,
788 - ), $attributes) ;
789 -
790 -
791 - if ( isset($attributes['id']) ){
792 - $product_id=$attributes['id'];
793 - }
794 -
795 - if ( isset($attributes['user_id']) ){
796 - $user_id = intval( $attributes['user_id'] );
797 - }
798 -
799 - if(intval($product_id)==0 && $user_id!=0){
800 - $product_id= $this->wpstream_player_retrive_first_id($user_id);
801 - }
802 -
803 -
804 398 ob_start();
805 - $this->main->wpstream_player->wpstream_video_player_shortcode_low_latency($product_id);
399 + $this->main->wpstream_player->wpstream_video_player_shortcode($product_id);
806 400 $return_string= ob_get_contents();
807 401 ob_end_clean();
808 402
809 403 return $return_string;
@@ -810,224 +404,6 @@
810 404 }
811 405
812 406
813 407
814 - public function wpstream_player_retrive_first_id($received_user_id=''){
815 - $channel_type = get_option ('wpstream_user_streaming_channel_type');
816 - $product_id = $this->wpstream_get_current_event_per_author($received_user_id,$channel_type);
817 - return $product_id;
818 - }
819 -
820 -
821 -
822 - /**
823 - * help function for chat elementor widget
824 - *
825 - * @since 3.0.1
826 - * @return string
827 - */
828 -
829 - public function wpstream_insert_chat_elementor($attributes, $content = null){
830 - $product_id = '';
831 - $return_string = '';
832 - $attributes = shortcode_atts(
833 - array(
834 - 'id' => 0,
835 - ), $attributes) ;
836 408
837 -
838 - if ( isset($attributes['id']) ){
839 - $product_id=$attributes['id'];
840 - }
841 -
842 - $return_string.= '<div class="wpstream_plugin_chat_wrapper">';
843 - ob_start();
844 - $this->main->wpstream_player->wpstream_chat_wrapper($product_id);
845 - $return_string.= ob_get_contents();
846 - ob_end_clean();
847 - $return_string.='</div>';
848 - $this->main->wpstream_player->wpstream_connect_to_chat($product_id);
849 -
850 - return $return_string;
851 - }
852 -
853 -
854 - /**
855 - * edited 4.0
856 - *
857 - * Check if user is allowed to stream
858 - *
859 - * @since 3.7
860 - */
861 -
862 - public function wpstream_check_user_can_stream(){
863 - $current_user = wp_get_current_user();
864 -
865 - if( !is_user_logged_in() ){
866 - return false;
867 - exit('user not logged in');
868 - }
869 -
870 - if(current_user_can('administrator')){
871 - // admins can always brodcast
872 - return true;
873 - }
874 -
875 - $extra_roles = get_option( 'wpstream_stream_role', true );
876 - $user_role = '';
877 - if( is_array( $current_user->roles) && count( $current_user->roles ) > 0 ){
878 - $user_role = $current_user->roles[0];
879 - }
880 -
881 - if ( is_array($extra_roles) && in_array( $user_role, $extra_roles ) ) {
882 - return true;
883 - }
884 -
885 - if(function_exists('wpstream_get_option') && intval(wpstream_get_option('allow_streaming_regular_users',''))==1 ){
886 - return true;
887 - }
888 -
889 - return false;
890 - }
891 -
892 -
893 - /**
894 - * Start Streaming wrapper
895 - *
896 - * @since 3.7
897 - */
898 -
899 - public function wpstream_live_stream_unit_wrapper($item_id,$type){
900 - $item_id = intval($item_id);
901 -
902 - if($item_id == 0){
903 - //retrive or create channel for front end streamers
904 - $item_id=$this->wpstream_retrive_front_end_channel();
905 - }
906 - print'<div class="wpstream_modal_background"></div>';
907 - print '<div class="wpstream_error_modal_notification"><div class="wpstream_error_content">er2</div>
908 - <div class="wpstream_error_ok wpstream_button" type="button">'.esc_html__('Close','wpstream').'</div>
909 - </div>';
910 - $this->admin->wpstream_live_stream_unit( $item_id,$type );
911 - }
912 -
913 -
914 - /**
915 - * Start Streaming wrapper for wpstream theme
916 - *
917 - * @since 3.7
918 - */
919 -
920 - public function wpstream_live_stream_unit_wrapper_for_theme($item_id,$type){
921 - $item_id = intval($item_id);
922 -
923 - if($item_id == 0){
924 - //retrive or create channel for front end streamers
925 - $item_id=$this->wpstream_retrive_front_end_channel();
926 - }
927 - print'<div class="wpstream_modal_background"></div>';
928 - print '<div class="wpstream_error_modal_notification"><div class="wpstream_error_content">er2</div>
929 - <div class="wpstream_error_ok wpstream_button" type="button">'.esc_html__('Close','wpstream').'</div>
930 - </div>';
931 - $this->admin->wpstream_live_stream_unit_for_theme( $item_id,$type );
932 - }
933 -
934 -
935 - /**
936 - * retrive channel for front end streaming
937 - *
938 - * @since 3.7
939 - */
940 - public function wpstream_retrive_front_end_channel(){
941 -
942 - $current_user = wp_get_current_user();
943 - $channel_type = get_option ('wpstream_user_streaming_channel_type');
944 - $channel_price = floatval( get_option ('wpstream_user_streaming_default_price') );
945 -
946 - $front_end_streamin_channel = $this->wpstream_get_current_event_per_author($current_user->ID,$channel_type);
947 -
948 - if(intval($front_end_streamin_channel) == 0){
949 - $front_end_streamin_channel= $this->wpstrea_create_front_end_event($current_user->ID,$current_user->user_login ,$channel_type,$channel_price);
950 - }
951 - return $front_end_streamin_channel;
952 -
953 - }
954 -
955 - /**
956 - * create the event from front end
957 - *
958 - * @since 3.7
959 - */
960 -
961 - public function wpstrea_create_front_end_event($userID,$userLogin,$channel_type,$channel_price){
962 -
963 - if( !$this->wpstream_check_user_can_stream() ){
964 - return;
965 - }
966 -
967 - $post_type='wpstream_product';
968 - if($channel_type=='paid'){
969 - $post_type='product';
970 - }
971 -
972 - $post = array(
973 - 'post_title' => sprintf( esc_html__('%s Channel','wpstream'),$userLogin),
974 - 'post_content' => '',
975 - 'post_type' => $post_type ,
976 - 'post_author' => $userID,
977 - 'post_status' => 'publish',
978 - );
979 - $post_id = wp_insert_post($post );
980 - if($channel_type=='paid'){
981 - $product = wc_get_product($post_id);
982 - $price = wc_format_decimal($channel_price);
983 -
984 - $product = wc_get_product( $post_id );
985 - // Set the product active price (regular)
986 - $product->set_price( $price );
987 - $product->set_regular_price( $price ); // To be sure
988 - $product->save();
989 - update_post_meta ($post_id,'event_passed',0);
990 - wp_set_object_terms( $post_id, 'live_stream', 'product_type' );
991 - }
992 - update_post_meta($post_id,'wpstream_product_type',1);
993 -
994 - return $post_id;
995 - }
996 -
997 -
998 - public function wpstream_get_current_event_per_author($userID,$channel_type){
999 -
1000 - $post_type='wpstream_product';
1001 - if($channel_type=='paid'){
1002 - $post_type='product';
1003 - }
1004 -
1005 - $args = array(
1006 -
1007 - 'post_type' => $post_type,
1008 - 'author' => $userID,
1009 - 'posts_per_page' => 1,
1010 - 'fields' => 'ids'
1011 - )
1012 - ;
1013 - $author_posts = new WP_Query( $args );
1014 - if( $author_posts->have_posts() ) {
1015 - $author_posts->the_post();
1016 - $the_id= get_the_ID();
1017 - }else{
1018 - $the_id= 0;
1019 - }
1020 -
1021 - wp_reset_query();
1022 - wp_reset_postdata();
1023 - return $the_id;
1024 - }
1025 -
1026 - /**
1027 - * Cleanup old logs
1028 - */
1029 - public function cleanup_logs() {
1030 - $logger = new WPStream_Logger();
1031 - $logger->clear_old_logs();
1032 - }
1033 409 }