PluginProbe
WpStream – Live Streaming, Video on Demand, Pay Per View / 3.7
WpStream – Live Streaming, Video on Demand, Pay Per View v3.7
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 +28 -340 4.5.113.7 View file →
@@ -81,10 +81,10 @@
81 81 public $plugin_admin;
82 82
83 83 public function __construct() {
84 84 $this->main = $this;
85 - if ( defined( 'WPSTREAM_PLUGIN_VERSION' ) ) {
86 - $this->version = WPSTREAM_PLUGIN_VERSION;
85 + if ( defined( 'WPSTREAM_VERSION' ) ) {
86 + $this->version = WPSTREAM_VERSION;
87 87 } else {
88 88 $this->version = '3.0.1';
89 89 }
90 90 $this->plugin_name = 'wpstream';
@@ -93,9 +93,9 @@
93 93 $this->set_locale();
94 94 $this->define_admin_hooks();
95 95 $this->define_public_hooks();
96 96
97 -
97 + $this->xtest = "this is test2";
98 98 $this->wpstream_conection();
99 99 $this->wpstream_player();
100 100
101 101 }
@@ -209,11 +209,13 @@
209 209 */
210 210 private function define_admin_hooks() {
211 211
212 212 $this->admin= $plugin_admin = new Wpstream_Admin( $this->get_plugin_name(), $this->get_version(), $this->main );
213 +
213 214
214 - $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_styles' );
215 - $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts' );
215 +
216 + $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_styles' );
217 + $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts' );
216 218 $this->loader->add_action( 'admin_menu', $plugin_admin, 'wpstream_manage_admin_menu',999);
217 219
218 220 $plugin_post_types = new Wpstream_Product();
219 221 $this->loader->add_action( 'init', $plugin_post_types, 'create_custom_post_type', 999 );
@@ -219,13 +221,10 @@
219 221 $this->loader->add_action( 'init', $plugin_post_types, 'create_custom_post_type', 999 );
220 222
221 223 // save and render metaboxed
222 224 $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 - $this->loader->add_action( 'publish_wpstream_product', $plugin_admin, 'wpstream_publish_wpstream_product',1,2 );
225 -
226 -
227 -
225 + $this->loader->add_action( 'save_post', $plugin_admin, 'wpstream_free_product_update_post',1,2 );
226 +
228 227 // make product virtual
229 228 $this->loader->add_action( 'save_post', $plugin_admin, 'wpstream_make_product_virtual', 99999, 2 );
230 229
231 230
@@ -231,27 +230,13 @@
231 230
232 231
233 232 // show streaming controls on sidebar
234 233 $this->loader->add_action('add_meta_boxes', $plugin_admin, 'wpstream_startstreaming_sidebar_meta');
235 -
236 - // on boarding actions
237 - $this->loader->add_action('admin_footer',$plugin_admin, 'wpstream_admin_footer_onboarding');
238 - $this->loader->add_action( 'wp_ajax_wpstream_on_board_create_channel', $plugin_admin,'wpstream_on_board_create_channel' );
239 - $this->loader->add_action( 'wp_ajax_wpstream_on_board_create_channel_ppv', $plugin_admin,'wpstream_on_board_create_channel_ppv' );
240 - $this->loader->add_action( 'wp_ajax_wpstream_on_board_create_free_vod', $plugin_admin,'wpstream_on_board_create_free_vod' );
241 - $this->loader->add_action( 'wp_ajax_wpstream_on_board_create_ppv_vod', $plugin_admin,'wpstream_on_board_create_ppv_vod' );
242 -
243 -
244 - $this->loader->add_action( 'wp_ajax_wpstream_on_board_login', $plugin_admin,'wpstream_on_board_login' );
245 - $this->loader->add_action( 'wp_ajax_wpstream_on_board_register', $plugin_admin,'wpstream_on_board_register' );
246 234
247 -
248 - $this->loader->add_action( 'admin_notices', $plugin_admin,'wpstream_admin_notice' );
249 - $this->loader->add_action( 'wp_ajax_wpstream_update_cache_notice', $plugin_admin,'wpstream_update_cache_notice' );
250 235
251 -
252 -
253 -
236 + $this->loader->add_action( 'admin_notices', $plugin_admin,'wpstream_admin_notice' );
237 + $this->loader->add_action( 'wp_ajax_wpstream_update_cache_notice', $plugin_admin,'wpstream_update_cache_notice' );
238 +
254 239 // add and save category extra fields
255 240 $this->loader->add_action( 'category_edit_form_fields', $plugin_post_types, 'wpstream_category_callback_function', 10, 2);
256 241 $this->loader->add_action( 'category_add_form_fields', $plugin_post_types, 'wpstream_category_callback_add_function', 10, 2 );
257 242 $this->loader->add_action( 'created_category', $plugin_post_types, 'wpstream_category_save_extra_fields_callback', 10, 2);
@@ -286,9 +271,8 @@
286 271
287 272 $this->loader->add_filter( 'product_type_selector', $plugin_admin, 'wpstream_add_products' );
288 273 $this->loader->add_action( 'admin_footer', $plugin_admin, 'wpstream_products_custom_js' );
289 274 $this->loader->add_filter( 'woocommerce_product_data_tabs', $plugin_admin, 'wpstream_hide_attributes_data_panel',10,1 );
290 - $this->loader->add_filter( 'woocommerce_is_purchasable', $plugin_admin, 'wpstream_hide_buy_now_subscription_mode',10,2);
291 275
292 276 $this->loader->add_filter( 'woocommerce_product_options_general_product_data',$plugin_admin, 'wpstream_add_custom_general_fields', 10,1);
293 277 $this->loader->add_filter( 'woocommerce_process_product_meta',$plugin_admin, 'wpstream_add_custom_general_fields_save',10,1 );
294 278 $this->loader->add_action( 'woocommerce_live_stream_add_to_cart', $plugin_admin, 'wpstream_add_to_cart',10,1);
@@ -302,12 +286,8 @@
302 286
303 287
304 288 }
305 289
306 -
307 -
308 -
309 -
310 290 /**
311 291 * Register all of the hooks related to the public-facing functionality
312 292 * of the plugin.
313 293 *
@@ -327,16 +307,14 @@
327 307 //live stream action
328 308 $this->loader->add_action('init',$plugin_public,'wpstream_set_cookies',0);
329 309 $this->loader->add_action('init',$plugin_public,'wpstream_live_streaming_key');
330 310 $this->loader->add_action('init',$plugin_public,'wpstream_live_streaming_key_for_3rdparty');
331 - $this->loader->add_action('init',$plugin_public,'wpstream_live_streaming_key_vod',10);
311 + $this->loader->add_action('init',$plugin_public,'wpstream_live_streaming_key_vod');
332 312 // woo action
333 313
334 314 $this->loader->add_action( 'woocommerce_before_single_product', $plugin_public,'wpstream_non_image_content_wrapper_start', 20 );
335 315 $this->loader->add_action( 'woocommerce_after_single_product', $plugin_public,'wpstream_non_image_content_wrapper_end', 20 );
336 - $this->loader->add_action( 'woocommerce_thankyou_order_received_text', $plugin_public,'wpstream_thankyou_extra', 20,2 );
337 - $this->loader->add_action( 'woocommerce_email_order_details', $plugin_public,'wpstream_email_order_details', 20,4 );
338 -
316 +
339 317 $this->loader->add_filter( 'woocommerce_account_menu_items', $plugin_public,'wpstream_custom_my_account_menu_items' );
340 318 $this->loader->add_action( 'woocommerce_account_event-list_endpoint', $plugin_public,'wpstream_custom_endpoint_content_event_list' );
341 319 $this->loader->add_action( 'woocommerce_account_video-list_endpoint', $plugin_public,'wpstream_custom_endpoint_video_list' );
342 320
@@ -342,10 +320,8 @@
342 320
343 321
344 322 $this->loader->add_action( 'after_switch_theme', $plugin_public,'wpstream_custom_flush_rewrite_rules' );
345 323 $this->loader->add_action('init', $plugin_public,'wpstream_shortcodes');
346 - $this->loader->add_action('vc_before_init', $plugin_public,'wpstream_bakery_shortcodes');
347 -
348 324
349 325 $this->loader->add_action('wo_before_api', 'wpstream_cors_check_and_response',10,1);
350 326
351 327
@@ -394,20 +370,18 @@
394 370
395 371
396 372
397 373 public function show_user_data($pack_details){
398 - if( isset($pack_details['available_data_mb']) && isset( $pack_details['available_storage_mb']) ){
399 - $wpstream_convert_band = $this->wpstream_convert_band($pack_details['available_data_mb']);
374 + if( isset($pack_details['band']) && isset( $pack_details['storage']) ){
375 + $wpstream_convert_band = $this->wpstream_convert_band($pack_details['band']);
400 376 if($wpstream_convert_band<0)$wpstream_convert_band=0;
401 -
402 - $wpstream_convert_storage = $this->wpstream_convert_band($pack_details['available_storage_mb']);
377 +
378 + $wpstream_convert_storage = $this->wpstream_convert_band($pack_details['storage']);
403 379 if($wpstream_convert_storage<0)$wpstream_convert_storage=0;
404 380
405 - print '<div class="pack_details_wrapper"><strong>'.__('Your account information: ','wpstream').'</strong> '.__('You have','wpstream').'<strong> '.$wpstream_convert_band.' Gb</strong> '.__('available streaming data and','wpstream').' <strong>'.$wpstream_convert_storage.' Gb</strong> '.__('available recording storage','wpstream');
406 - print '<a href="https://wpstream.net/pricing/" class="wpstream_upgrade_topbar" target="_blank">'.esc_html__('Upgrade Subscription','wpstream').'</a>';
407 - print '</div>';
408 - print'<input type="hidden" id="wpstream_band" value="'.$pack_details['available_data_mb'].'">';
409 - print'<input type="hidden" id="wpstream_storage" value="'.$pack_details['available_storage_mb'].'">';
381 + print '<div class="pack_details_wrapper"><strong>'.__('Your account information: ','wpstream').'</strong> '.__('You have','wpstream').'<strong> '.$wpstream_convert_band.' Gb</strong> '.__('available streaming bandwidth and','wpstream').' <strong>'.$wpstream_convert_storage.' Gb</strong> '.__('available media storage','wpstream').'.</div>';
382 + print'<input type="hidden" id="wpstream_band" value="'.$pack_details['band'].'">';
383 + print'<input type="hidden" id="wpstream_storage" value="'.$pack_details['storage'].'">';
410 384
411 385 }
412 386 }
413 387
@@ -412,261 +386,8 @@
412 386 }
413 387
414 388
415 389 /**
416 - * help function for media list elementor widget
417 - *
418 - * @since 3.0.1
419 - * @return string
420 - */
421 -
422 - public function wpstream_media_list_elementor_function($attributes, $content = null){
423 -
424 -
425 - $media_number=3;
426 - if ( isset($attributes['media_number']) ){
427 - $media_number=$attributes['media_number'];
428 - }
429 -
430 -
431 - $row_number=3;
432 - if ( isset($attributes['row_number']) ){
433 - $row_number=$attributes['row_number'];
434 - }
435 - if($row_number>4){
436 - $row_number=4;
437 - }
438 -
439 -
440 - ob_start();
441 -
442 - // check if is vod or live stream
443 - $meta_query = array();
444 - $tax_query_array= array();
445 - $tax_query = array();
446 -
447 - // check if the media is paid or free
448 - $event_types = array();
449 - $product_type_free_paid = 0;
450 - if ( isset($attributes['product_type_free_paid']) ){
451 - $product_type_free_paid=$attributes['product_type_free_paid'];
452 -
453 - if($product_type_free_paid==0){
454 - $event_types=array('wpstream_product');
455 -
456 - if ( isset($attributes['product_type']) && intval($attributes['product_type'])==2){
457 - $event_types=array('wpstream_product_vod');
458 - }
459 -
460 - }else{
461 - $event_types=array('product');
462 - if ( isset($attributes['product_type']) ){
463 - $product_type = $attributes['product_type'];
464 - $product_type_slug = 'video_on_demand';
465 - if($product_type==1){
466 - $product_type_slug ='live_stream';
467 - }
468 -
469 - $tax_query_array = array(
470 - 'taxonomy' => 'product_type',
471 - 'field' => 'slug',
472 - 'terms' => $product_type_slug
473 - );
474 -
475 - $tax_query= array(
476 - 'relation' => 'AND',
477 - $tax_query_array
478 - );
479 -
480 - }
481 - }
482 -
483 - }
484 - $see_product='';
485 - if(isset($attributes['free_label'])){
486 - $see_product=$attributes['free_label'];
487 - }
488 -
489 - // pagination
490 - $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
491 - if( is_front_page() ){
492 - $paged= (get_query_var('page')) ? get_query_var('page') : 1;
493 - }
494 -
495 -
496 - //order
497 - $orderby='ID';
498 - $order ='ASC';
499 - if ( isset($attributes['order_by']) ){
500 - $order_by=intval($attributes['order_by']);
501 - switch ($order_by) {
502 - case 0:
503 - $orderby='ID';
504 - $order ='ASC';
505 - break;
506 - case 1:
507 - $orderby='ID';
508 - $order ='DESC';
509 - break;
510 - case 2:
511 - $orderby='title';
512 - $order ='ASC';
513 - break;
514 - case 3:
515 - $orderby='title';
516 - $order ='DESC';
517 - break;
518 - }
519 - }
520 -
521 - // building wp_query arg array
522 - $args = array(
523 - 'post_type' => $event_types,
524 - 'post_status' => 'publish',
525 - 'meta_query' => $meta_query,
526 - 'posts_per_page' => $media_number,
527 - 'paged' => $paged,
528 - 'orderby' => $orderby,
529 - 'order' => $order,
530 - 'tax_query' => $tax_query
531 - );
532 -
533 -
534 -
535 - // show live events
536 - if ( isset($attributes['product_show_live']) && $attributes['product_show_live']=='yes'){
537 - $live_event_for_user = $this->main->wpstream_live_connection->api20_wpstream_request_live_stream_for_user_for_shortcode('shortcode');
538 -
539 -
540 - if( is_array($live_event_for_user) ){
541 - $live_event_for_user[]=0;
542 -
543 - $args['post__in']=$live_event_for_user;
544 - }
545 - }
546 -
547 -
548 -
549 -
550 - $media_list= new WP_Query($args);
551 - if($media_list->have_posts()){
552 - print '<ul class="wpstream_media_list_wrapper products columns-'.esc_attr($row_number).'" >';
553 - while($media_list->have_posts()):$media_list->the_post();
554 - if($product_type_free_paid==0 ){
555 -
556 - $thumb=wp_get_attachment_image_src(get_post_thumbnail_id(),'medium');
557 -
558 - $thumb_src='';
559 - if( isset($thumb[0]) ){
560 - $thumb_src=$thumb[0];
561 - }
562 -
563 - if(($thumb_src)==''){
564 - $thumb_src= plugin_dir_url( dirname( __FILE__ ) ). 'img/default_300.png';
565 - }
566 - print '<li class="wpstream_product_unit">'
567 - .'<a href="'.get_permalink().'" class="product_title" ><div class="product_image" style="background-image:url('.esc_url($thumb_src).')"></div></a>'
568 - .'<a href="'.get_permalink().'" class="product_title" >'.get_the_title().'</a>';
569 -
570 - if($see_product!=''){
571 - print '<a href="'.get_permalink().'"class="see_product">'.$see_product.'</a>';
572 - }
573 - print '</li>';
574 - }else{
575 - wc_get_template_part( 'content', 'product' );
576 - }
577 - endwhile;
578 - print '</ul>';
579 - }else{
580 - print esc_html__('No media found! ','wpstream');
581 - }
582 -
583 -
584 - wp_reset_query();
585 - wp_reset_postdata();
586 -
587 - $this->wpstream_pagination($media_list->max_num_pages,$range=2);
588 - $return_string= ob_get_contents();
589 - ob_end_clean();
590 -
591 - return $return_string;
592 - }
593 -
594 -
595 -
596 -
597 -
598 -
599 - /*
600 - *
601 - *
602 - * Pagination for media lista
603 - *
604 - *
605 - *
606 - */
607 -
608 -
609 -
610 -
611 - function wpstream_pagination($pages = '', $range = 2){
612 -
613 - $showitems = ($range * 2)+1;
614 - global $paged;
615 - if(empty($paged)) $paged = 1;
616 -
617 -
618 - if($pages == ''){
619 - global $wp_query;
620 - $pages = $wp_query->max_num_pages;
621 - if(!$pages)
622 - {
623 - $pages = 1;
624 - }
625 - }
626 -
627 - if(1 != $pages){
628 - print '<ul class="wpstream_pagination ">';
629 - print '<li class="roundleft"><a href="'.get_pagenum_link($paged - 1).'"> < </a></li>';
630 -
631 - for ($i=1; $i <= $pages; $i++)
632 - {
633 - if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems ))
634 - {
635 - if ($paged == $i){
636 - print '<li class="active"><a href="'.esc_url(get_pagenum_link($i)).'" >'.$i.'</a><li>';
637 - }else{
638 - print '<li><a href="'.esc_url(get_pagenum_link($i)).'" >'.$i.'</a><li>';
639 - }
640 - }
641 - }
642 -
643 - $prev_page= get_pagenum_link($paged + 1);
644 - if ( ($paged +1) > $pages){
645 - $prev_page= get_pagenum_link($paged );
646 - }else{
647 - $prev_page= get_pagenum_link($paged + 1);
648 - }
649 -
650 -
651 - print '<li class="roundright"><a href="'.$prev_page.'"> > </a><li>';
652 - print '</ul>';
653 - }
654 - }
655 -
656 -
657 -
658 -
659 -
660 -
661 -
662 -
663 -
664 -
665 -
666 -
667 -
668 - /**
669 390 * help function for player elementr widget
670 391 *
671 392 * @since 3.0.1
672 393 * @return string
@@ -784,10 +505,8 @@
784 505 }
785 506
786 507
787 508 /**
788 - * edited 4.0
789 - *
790 509 * Check if user is allowed to stream
791 510 *
792 511 * @since 3.7
793 512 */
@@ -796,9 +515,9 @@
796 515 $current_user = wp_get_current_user();
797 516
798 517 if( !is_user_logged_in() ){
799 518 return false;
800 - exit('user not logged in');
519 + exit('user not logged in 497');
801 520 }
802 521
803 522 if(current_user_can('administrator')){
804 523 // admins can always brodcast
@@ -807,9 +526,9 @@
807 526
808 527 $extra_roles = get_option( 'wpstream_stream_role', true );
809 528 $user_role = $current_user->roles[0];
810 529
811 - if (is_array($extra_roles) && in_array($user_role, $extra_roles)){
530 + if (in_array($user_role, $extra_roles)){
812 531 return true;
813 532 }
814 533
815 534 if(function_exists('wpstream_get_option') && intval(wpstream_get_option('allow_streaming_regular_users',''))==1 ){
@@ -832,35 +551,14 @@
832 551 if($item_id == 0){
833 552 //retrive or create channel for front end streamers
834 553 $item_id=$this->wpstream_retrive_front_end_channel();
835 554 }
836 - print'<div class="wpstream_modal_background"></div>';
837 - print '<div class="wpstream_error_modal_notification"><div class="wpstream_error_content">er2</div>
838 - <div class="wpstream_error_ok wpstream_button" type="button">'.esc_html__('Close','wpstream').'</div>
839 - </div>';
555 +
840 556 $this->admin->wpstream_live_stream_unit( $item_id,$type );
841 557 }
842 558
843 559
844 - /**
845 - * Start Streaming wrapper for wpstream theme
846 - *
847 - * @since 3.7
848 - */
849 560
850 - public function wpstream_live_stream_unit_wrapper_for_theme($item_id,$type){
851 - $item_id = intval($item_id);
852 -
853 - if($item_id == 0){
854 - //retrive or create channel for front end streamers
855 - $item_id=$this->wpstream_retrive_front_end_channel();
856 - }
857 - print'<div class="wpstream_modal_background"></div>';
858 - print '<div class="wpstream_error_modal_notification"><div class="wpstream_error_content">er2</div>
859 - <div class="wpstream_error_ok wpstream_button" type="button">'.esc_html__('Close','wpstream').'</div>
860 - </div>';
861 - $this->admin->wpstream_live_stream_unit_for_theme( $item_id,$type );
862 - }
863 561
864 562
865 563 /**
866 564 * retrive channel for front end streaming
@@ -880,20 +578,11 @@
880 578 }
881 579 return $front_end_streamin_channel;
882 580
883 581 }
884 -
885 - /**
886 - * create the event from front end
887 - *
888 - * @since 3.7
889 - */
890 582
583 +
891 584 public function wpstrea_create_front_end_event($userID,$userLogin,$channel_type,$channel_price){
892 -
893 - if( !$this->wpstream_check_user_can_stream() ){
894 - return;
895 - }
896 585
897 586 $post_type='wpstream_product';
898 587 if($channel_type=='paid'){
899 588 $post_type='product';
@@ -915,9 +604,9 @@
915 604 // Set the product active price (regular)
916 605 $product->set_price( $price );
917 606 $product->set_regular_price( $price ); // To be sure
918 607 $product->save();
919 - update_post_meta ($post_id,'event_passed',0);
608 +
920 609 wp_set_object_terms( $post_id, 'live_stream', 'product_type' );
921 610 }
922 611 update_post_meta($post_id,'wpstream_product_type',1);
923 612
@@ -942,15 +631,14 @@
942 631 ;
943 632 $author_posts = new WP_Query( $args );
944 633 if( $author_posts->have_posts() ) {
945 634 $author_posts->the_post();
946 - $the_id= get_the_ID();
635 + return get_the_ID();
947 636 }else{
948 - $the_id= 0;
637 + return 0;
949 638 }
950 639
951 640 wp_reset_query();
952 641 wp_reset_postdata();
953 - return $the_id;
954 642 }
955 643
956 644 }