PluginProbe
Elementor Website Builder – more than just a page builder / 3.5.2
Elementor Website Builder – more than just a page builder v3.5.2
4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 4.0.7 All 451 releases
← All changes | includes/widgets/video.php +70 -319 4.2.0-dev23.5.2 View file →
@@ -1,9 +1,8 @@
1 1 <?php
2 2 namespace Elementor;
3 3
4 4 use Elementor\Modules\DynamicTags\Module as TagsModule;
5 -use Elementor\Modules\Promotions\Controls\Promotion_Control;
6 5
7 6 if ( ! defined( 'ABSPATH' ) ) {
8 7 exit; // Exit if accessed directly.
9 8 }
@@ -85,60 +84,16 @@
85 84 *
86 85 * @return array Widget keywords.
87 86 */
88 87 public function get_keywords() {
89 - return [ 'video', 'player', 'embed', 'youtube', 'vimeo', 'dailymotion', 'videopress' ];
88 + return [ 'video', 'player', 'embed', 'youtube', 'vimeo', 'dailymotion' ];
90 89 }
91 90
92 - protected function is_dynamic_content(): bool {
93 - return false;
94 - }
95 -
96 91 /**
97 - * Get style dependencies.
98 - *
99 - * Retrieve the list of style dependencies the widget requires.
100 - *
101 - * @since 3.24.0
102 - * @access public
103 - *
104 - * @return array Widget style dependencies.
105 - */
106 - public function get_style_depends(): array {
107 - return [ 'widget-video' ];
108 - }
109 -
110 - public function has_widget_inner_wrapper(): bool {
111 - return ! Plugin::$instance->experiments->is_feature_active( 'e_optimized_markup' );
112 - }
113 -
114 - /**
115 92 * Register video widget controls.
116 93 *
117 94 * Adds different input fields to allow the user to change and customize the widget settings.
118 95 *
119 - * @since 3.19.0
120 - * @access protected
121 - *
122 - * @return array Widget promotion data.
123 - */
124 - protected function get_upsale_data() {
125 - return [
126 - 'condition' => ! Utils::has_pro(),
127 - 'image' => esc_url( ELEMENTOR_ASSETS_URL . 'images/go-pro.svg' ),
128 - 'image_alt' => esc_attr__( 'Upgrade', 'elementor' ),
129 - 'title' => esc_html__( "Grab your visitors' attention", 'elementor' ),
130 - 'description' => esc_html__( 'Get the Video Playlist widget and grow your toolbox with Elementor Pro.', 'elementor' ),
131 - 'upgrade_url' => esc_url( 'https://go.elementor.com/go-pro-video-widget/' ),
132 - 'upgrade_text' => esc_html__( 'Upgrade Now', 'elementor' ),
133 - ];
134 - }
135 -
136 - /**
137 - * Register video widget controls.
138 - *
139 - * Adds different input fields to allow the user to change and customize the widget settings.
140 - *
141 96 * @since 3.1.0
142 97 * @access protected
143 98 */
144 99 protected function register_controls() {
@@ -158,9 +113,8 @@
158 113 'options' => [
159 114 'youtube' => esc_html__( 'YouTube', 'elementor' ),
160 115 'vimeo' => esc_html__( 'Vimeo', 'elementor' ),
161 116 'dailymotion' => esc_html__( 'Dailymotion', 'elementor' ),
162 - 'videopress' => esc_html__( 'VideoPress', 'elementor' ),
163 117 'hosted' => esc_html__( 'Self Hosted', 'elementor' ),
164 118 ],
165 119 'frontend_available' => true,
166 120 ]
@@ -183,11 +137,8 @@
183 137 'label_block' => true,
184 138 'condition' => [
185 139 'video_type' => 'youtube',
186 140 ],
187 - 'ai' => [
188 - 'active' => false,
189 - ],
190 141 'frontend_available' => true,
191 142 ]
192 143 );
193 144
@@ -208,11 +159,8 @@
208 159 'label_block' => true,
209 160 'condition' => [
210 161 'video_type' => 'vimeo',
211 162 ],
212 - 'ai' => [
213 - 'active' => false,
214 - ],
215 163 ]
216 164 );
217 165
218 166 $this->add_control(
@@ -232,11 +180,8 @@
232 180 'label_block' => true,
233 181 'condition' => [
234 182 'video_type' => 'dailymotion',
235 183 ],
236 - 'ai' => [
237 - 'active' => false,
238 - ],
239 184 ]
240 185 );
241 186
242 187 $this->add_control(
@@ -244,9 +189,9 @@
244 189 [
245 190 'label' => esc_html__( 'External URL', 'elementor' ),
246 191 'type' => Controls_Manager::SWITCHER,
247 192 'condition' => [
248 - 'video_type' => [ 'hosted', 'videopress' ],
193 + 'video_type' => 'hosted',
249 194 ],
250 195 ]
251 196 );
252 197
@@ -252,9 +197,9 @@
252 197
253 198 $this->add_control(
254 199 'hosted_url',
255 200 [
256 - 'label' => esc_html__( 'Choose Video File', 'elementor' ),
201 + 'label' => esc_html__( 'Choose File', 'elementor' ),
257 202 'type' => Controls_Manager::MEDIA,
258 203 'dynamic' => [
259 204 'active' => true,
260 205 'categories' => [
@@ -260,13 +205,11 @@
260 205 'categories' => [
261 206 TagsModule::MEDIA_CATEGORY,
262 207 ],
263 208 ],
264 - 'media_types' => [
265 - 'video',
266 - ],
209 + 'media_type' => 'video',
267 210 'condition' => [
268 - 'video_type' => [ 'hosted', 'videopress' ],
211 + 'video_type' => 'hosted',
269 212 'insert_url' => '',
270 213 ],
271 214 ]
272 215 );
@@ -286,8 +229,9 @@
286 229 TagsModule::POST_META_CATEGORY,
287 230 TagsModule::URL_CATEGORY,
288 231 ],
289 232 ],
233 + 'media_type' => 'video',
290 234 'placeholder' => esc_html__( 'Enter your URL', 'elementor' ),
291 235 'condition' => [
292 236 'video_type' => 'hosted',
293 237 'insert_url' => 'yes',
@@ -295,35 +239,8 @@
295 239 ]
296 240 );
297 241
298 242 $this->add_control(
299 - 'videopress_url',
300 - [
301 - 'label' => esc_html__( 'URL', 'elementor' ),
302 - 'type' => Controls_Manager::TEXT,
303 - 'label_block' => true,
304 - 'show_label' => false,
305 - 'default' => 'https://videopress.com/v/ZCAOzTNk',
306 - 'dynamic' => [
307 - 'active' => true,
308 - 'categories' => [
309 - TagsModule::POST_META_CATEGORY,
310 - TagsModule::URL_CATEGORY,
311 - ],
312 - ],
313 - 'placeholder' => esc_html__( 'VideoPress URL', 'elementor' ),
314 - 'ai' => [
315 - 'active' => false,
316 - ],
317 - 'condition' => [
318 - 'video_type' => 'videopress',
319 - 'insert_url' => 'yes',
320 - ],
321 -
322 - ]
323 - );
324 -
325 - $this->add_control(
326 243 'start',
327 244 [
328 245 'label' => esc_html__( 'Start Time', 'elementor' ),
329 246 'type' => Controls_Manager::NUMBER,
@@ -328,9 +245,8 @@
328 245 'label' => esc_html__( 'Start Time', 'elementor' ),
329 246 'type' => Controls_Manager::NUMBER,
330 247 'description' => esc_html__( 'Specify a start time (in seconds)', 'elementor' ),
331 248 'frontend_available' => true,
332 - 'separator' => 'before',
333 249 ]
334 250 );
335 251
336 252 $this->add_control(
@@ -358,16 +274,23 @@
358 274 $this->add_control(
359 275 'autoplay',
360 276 [
361 277 'label' => esc_html__( 'Autoplay', 'elementor' ),
362 - 'description' => sprintf(
363 - /* translators: 1: `<a>` opening tag, 2: `</a>` closing tag. */
364 - esc_html__( 'Note: Autoplay is affected by %1$s Google’s Autoplay policy %2$s on Chrome browsers.', 'elementor' ),
365 - '<a href="https://developers.google.com/web/updates/2017/09/autoplay-policy-changes" target="_blank">',
366 - '</a>'
367 - ),
368 278 'type' => Controls_Manager::SWITCHER,
369 279 'frontend_available' => true,
280 + 'conditions' => [
281 + 'relation' => 'or',
282 + 'terms' => [
283 + [
284 + 'name' => 'show_image_overlay',
285 + 'value' => '',
286 + ],
287 + [
288 + 'name' => 'image_overlay[url]',
289 + 'value' => '',
290 + ],
291 + ],
292 + ],
370 293 ]
371 294 );
372 295
373 296 $this->add_control(
@@ -432,11 +355,11 @@
432 355 ]
433 356 );
434 357
435 358 $this->add_control(
436 - 'cc_load_policy',
359 + 'modestbranding',
437 360 [
438 - 'label' => esc_html__( 'Captions', 'elementor' ),
361 + 'label' => esc_html__( 'Modest Branding', 'elementor' ),
439 362 'type' => Controls_Manager::SWITCHER,
440 363 'condition' => [
441 364 'video_type' => [ 'youtube' ],
442 365 'controls' => 'yes',
@@ -464,11 +387,11 @@
464 387 'yt_privacy',
465 388 [
466 389 'label' => esc_html__( 'Privacy Mode', 'elementor' ),
467 390 'type' => Controls_Manager::SWITCHER,
468 - 'description' => esc_html__( 'When you turn on privacy mode, YouTube/Vimeo won\'t store information about visitors on your website unless they play the video.', 'elementor' ),
391 + 'description' => esc_html__( 'When you turn on privacy mode, YouTube won\'t store information about visitors on your website unless they play the video.', 'elementor' ),
469 392 'condition' => [
470 - 'video_type' => [ 'youtube', 'vimeo' ],
393 + 'video_type' => 'youtube',
471 394 ],
472 395 'frontend_available' => true,
473 396 ]
474 397 );
@@ -590,41 +513,27 @@
590 513 ]
591 514 );
592 515
593 516 $this->add_control(
594 - 'preload',
517 + 'poster',
595 518 [
596 - 'label' => esc_html__( 'Preload', 'elementor' ),
597 - 'type' => Controls_Manager::SELECT,
598 - 'options' => [
599 - 'metadata' => esc_html__( 'Metadata', 'elementor' ),
600 - 'auto' => esc_html__( 'Auto', 'elementor' ),
601 - 'none' => esc_html__( 'None', 'elementor' ),
519 + 'label' => esc_html__( 'Poster', 'elementor' ),
520 + 'type' => Controls_Manager::MEDIA,
521 + 'dynamic' => [
522 + 'active' => true,
602 523 ],
603 - 'description' => sprintf(
604 - '%1$s <a target="_blank" href="https://go.elementor.com/preload-video/">%2$s</a>',
605 - esc_html__( 'Preload attribute lets you specify how the video should be loaded when the page loads.', 'elementor' ),
606 - esc_html__( 'Learn more', 'elementor' ),
607 - ),
608 - 'default' => 'metadata',
609 524 'condition' => [
610 525 'video_type' => 'hosted',
611 - 'autoplay' => '',
612 526 ],
613 527 ]
614 528 );
615 529
616 530 $this->add_control(
617 - 'poster',
531 + 'view',
618 532 [
619 - 'label' => esc_html__( 'Poster', 'elementor' ),
620 - 'type' => Controls_Manager::MEDIA,
621 - 'dynamic' => [
622 - 'active' => true,
623 - ],
624 - 'condition' => [
625 - 'video_type' => 'hosted',
626 - ],
533 + 'label' => esc_html__( 'View', 'elementor' ),
534 + 'type' => Controls_Manager::HIDDEN,
535 + 'default' => 'youtube',
627 536 ]
628 537 );
629 538
630 539 $this->end_controls_section();
@@ -669,8 +578,9 @@
669 578 Group_Control_Image_Size::get_type(),
670 579 [
671 580 'name' => 'image_overlay', // Usage: `{name}_size` and `{name}_custom_dimension`, in this case `image_overlay_size` and `image_overlay_custom_dimension`.
672 581 'default' => 'full',
582 + 'separator' => 'none',
673 583 'condition' => [
674 584 'show_image_overlay' => 'yes',
675 585 ],
676 586 ]
@@ -681,11 +591,8 @@
681 591 [
682 592 'label' => esc_html__( 'Play Icon', 'elementor' ),
683 593 'type' => Controls_Manager::SWITCHER,
684 594 'default' => 'yes',
685 - 'label_off' => esc_html__( 'Hide', 'elementor' ),
686 - 'label_on' => esc_html__( 'Show', 'elementor' ),
687 - 'separator' => 'before',
688 595 'condition' => [
689 596 'show_image_overlay' => 'yes',
690 597 'image_overlay[url]!' => '',
691 598 ],
@@ -692,43 +599,8 @@
692 599 ]
693 600 );
694 601
695 602 $this->add_control(
696 - 'play_icon',
697 - [
698 - 'label' => esc_html__( 'Icon', 'elementor' ),
699 - 'type' => Controls_Manager::ICONS,
700 - 'fa4compatibility' => 'icon',
701 - 'skin' => 'inline',
702 - 'label_block' => false,
703 - 'skin_settings' => [
704 - 'inline' => [
705 - 'none' => [
706 - 'label' => 'Default',
707 - 'icon' => 'eicon-play',
708 - ],
709 - 'icon' => [
710 - 'icon' => 'eicon-star',
711 - ],
712 - ],
713 - ],
714 - 'recommended' => [
715 - 'fa-regular' => [
716 - 'play-circle',
717 - ],
718 - 'fa-solid' => [
719 - 'play',
720 - 'play-circle',
721 - ],
722 - ],
723 - 'condition' => [
724 - 'show_image_overlay' => 'yes',
725 - 'show_play_icon!' => '',
726 - ],
727 - ]
728 - );
729 -
730 - $this->add_control(
731 603 'lightbox',
732 604 [
733 605 'label' => esc_html__( 'Lightbox', 'elementor' ),
734 606 'type' => Controls_Manager::SWITCHER,
@@ -765,20 +637,11 @@
765 637 '32' => '3:2',
766 638 '11' => '1:1',
767 639 '916' => '9:16',
768 640 ],
769 - 'selectors_dictionary' => [
770 - '169' => '1.77777', // 16 / 9
771 - '219' => '2.33333', // 21 / 9
772 - '43' => '1.33333', // 4 / 3
773 - '32' => '1.5', // 3 / 2
774 - '11' => '1', // 1 / 1
775 - '916' => '0.5625', // 9 / 16
776 - ],
777 641 'default' => '169',
778 - 'selectors' => [
779 - '{{WRAPPER}} .elementor-wrapper' => '--video-aspect-ratio: {{VALUE}}',
780 - ],
642 + 'prefix_class' => 'elementor-aspect-ratio-',
643 + 'frontend_available' => true,
781 644 ]
782 645 );
783 646
784 647 $this->add_group_control(
@@ -788,22 +651,8 @@
788 651 'selector' => '{{WRAPPER}} .elementor-wrapper',
789 652 ]
790 653 );
791 654
792 - $this->end_controls_section();
793 -
794 - $this->start_controls_section(
795 - 'section_image_overlay_style',
796 - [
797 - 'label' => esc_html__( 'Image Overlay', 'elementor' ),
798 - 'tab' => Controls_Manager::TAB_STYLE,
799 - 'condition' => [
800 - 'show_image_overlay' => 'yes',
801 - 'show_play_icon' => 'yes',
802 - ],
803 - ]
804 - );
805 -
806 655 $this->add_control(
807 656 'play_icon_title',
808 657 [
809 658 'label' => esc_html__( 'Play Icon', 'elementor' ),
@@ -811,8 +660,9 @@
811 660 'condition' => [
812 661 'show_image_overlay' => 'yes',
813 662 'show_play_icon' => 'yes',
814 663 ],
664 + 'separator' => 'before',
815 665 ]
816 666 );
817 667
818 668 $this->add_control(
@@ -835,9 +685,8 @@
835 685 'play_icon_size',
836 686 [
837 687 'label' => esc_html__( 'Size', 'elementor' ),
838 688 'type' => Controls_Manager::SLIDER,
839 - 'size_units' => [ 'px', 'em', 'rem', 'custom' ],
840 689 'range' => [
841 690 'px' => [
842 691 'min' => 10,
843 692 'max' => 300,
@@ -861,15 +710,14 @@
861 710 'name' => 'play_icon_text_shadow',
862 711 'selector' => '{{WRAPPER}} .elementor-custom-embed-play i',
863 712 'fields_options' => [
864 713 'text_shadow_type' => [
865 - 'label' => esc_html__( 'Shadow', 'elementor' ),
714 + 'label' => _x( 'Shadow', 'Text Shadow Control', 'elementor' ),
866 715 ],
867 716 ],
868 717 'condition' => [
869 718 'show_image_overlay' => 'yes',
870 719 'show_play_icon' => 'yes',
871 - 'play_icon[library]!' => 'svg',
872 720 ],
873 721 ]
874 722 );
875 723
@@ -905,9 +753,8 @@
905 753 'label' => esc_html__( 'UI Color', 'elementor' ),
906 754 'type' => Controls_Manager::COLOR,
907 755 'selectors' => [
908 756 '#elementor-lightbox-{{ID}} .dialog-lightbox-close-button' => 'color: {{VALUE}}',
909 - '#elementor-lightbox-{{ID}} .dialog-lightbox-close-button svg' => 'fill: {{VALUE}}',
910 757 ],
911 758 ]
912 759 );
913 760
@@ -917,58 +764,32 @@
917 764 'label' => esc_html__( 'UI Hover Color', 'elementor' ),
918 765 'type' => Controls_Manager::COLOR,
919 766 'selectors' => [
920 767 '#elementor-lightbox-{{ID}} .dialog-lightbox-close-button:hover' => 'color: {{VALUE}}',
921 - '#elementor-lightbox-{{ID}} .dialog-lightbox-close-button:hover svg' => 'fill: {{VALUE}}',
922 768 ],
769 + 'separator' => 'after',
923 770 ]
924 771 );
925 772
926 - $this->add_responsive_control(
927 - 'lightbox_content_animation',
928 - [
929 - 'label' => esc_html__( 'Entrance Animation', 'elementor' ),
930 - 'type' => Controls_Manager::ANIMATION,
931 - 'frontend_available' => true,
932 - 'separator' => 'before',
933 - ]
934 - );
935 -
936 773 $this->add_control(
937 - 'deprecation_warning',
938 - [
939 - 'type' => Controls_Manager::ALERT,
940 - 'alert_type' => 'danger',
941 - 'content' => esc_html__( 'Note: These controls have been deprecated and are only visible if they were previously in use. The video’s width and position are now set based on its aspect ratio.', 'elementor' ),
942 - 'separator' => 'before',
943 - 'condition' => [
944 - 'lightbox_video_width!' => '',
945 - 'lightbox_content_position!' => '',
946 - ],
947 - ]
948 - );
949 -
950 - // Deprecated control. Visible only if it was previously in use.
951 - $this->add_control(
952 774 'lightbox_video_width',
953 775 [
954 776 'label' => esc_html__( 'Content Width', 'elementor' ),
955 777 'type' => Controls_Manager::SLIDER,
956 - 'size_units' => [ 'px', '%', 'em', 'rem', 'vw', 'custom' ],
957 778 'default' => [
958 779 'unit' => '%',
959 780 ],
960 - // 'selectors' => [
961 - // '(desktop+)#elementor-lightbox-{{ID}} .elementor-video-container' => 'width: {{SIZE}}{{UNIT}};',
962 - // ],
963 - 'condition' => [
964 - 'lightbox_video_width!' => '',
965 - 'lightbox_content_position!' => '',
781 + 'range' => [
782 + '%' => [
783 + 'min' => 30,
784 + ],
966 785 ],
786 + 'selectors' => [
787 + '(desktop+)#elementor-lightbox-{{ID}} .elementor-video-container' => 'width: {{SIZE}}{{UNIT}};',
788 + ],
967 789 ]
968 790 );
969 791
970 - // Deprecated control. Visible only if it was previously in use.
971 792 $this->add_control(
972 793 'lightbox_content_position',
973 794 [
974 795 'label' => esc_html__( 'Content Position', 'elementor' ),
@@ -977,32 +798,29 @@
977 798 'options' => [
978 799 '' => esc_html__( 'Center', 'elementor' ),
979 800 'top' => esc_html__( 'Top', 'elementor' ),
980 801 ],
981 - // 'selectors' => [
982 - // '#elementor-lightbox-{{ID}} .elementor-video-container' => '{{VALUE}}; transform: translateX(-50%);',
983 - // ],
802 + 'selectors' => [
803 + '#elementor-lightbox-{{ID}} .elementor-video-container' => '{{VALUE}}; transform: translateX(-50%);',
804 + ],
984 805 'selectors_dictionary' => [
985 806 'top' => 'top: 60px',
986 807 ],
987 - 'condition' => [
988 - 'lightbox_video_width!' => '',
989 - 'lightbox_content_position!' => '',
990 - ],
991 808 ]
992 809 );
993 810
811 + $this->add_responsive_control(
812 + 'lightbox_content_animation',
813 + [
814 + 'label' => esc_html__( 'Entrance Animation', 'elementor' ),
815 + 'type' => Controls_Manager::ANIMATION,
816 + 'frontend_available' => true,
817 + ]
818 + );
819 +
994 820 $this->end_controls_section();
995 821 }
996 822
997 - public function print_a11y_text( $image_overlay ) {
998 - if ( empty( $image_overlay['alt'] ) ) {
999 - echo esc_html__( 'Play Video', 'elementor' );
1000 - } else {
1001 - echo esc_html__( 'Play Video about', 'elementor' ) . ' ' . esc_attr( $image_overlay['alt'] );
1002 - }
1003 - }
1004 -
1005 823 /**
1006 824 * Render video widget output on the frontend.
1007 825 *
1008 826 * Written in PHP and used to generate the final HTML.
@@ -1017,12 +835,8 @@
1017 835
1018 836 if ( 'hosted' === $settings['video_type'] ) {
1019 837 $video_url = $this->get_hosted_video_url();
1020 838 } else {
1021 - if ( 'videopress' === $settings['video_type'] ) {
1022 - $video_url = $this->get_videopress_video_url();
1023 - }
1024 -
1025 839 $embed_params = $this->get_embed_params();
1026 840 $embed_options = $this->get_embed_options();
1027 841 }
1028 842
@@ -1048,9 +862,9 @@
1048 862
1049 863 if ( $is_static_render_mode ) {
1050 864 $video_html = Embed::get_embed_thumbnail_html( $video_url, $post_id );
1051 865 // YouTube API requires a different markup which was set above.
1052 - } elseif ( 'youtube' !== $settings['video_type'] ) {
866 + } else if ( 'youtube' !== $settings['video_type'] ) {
1053 867 $video_html = Embed::get_embed_html( $video_url, $embed_params, $embed_options );
1054 868 }
1055 869 }
1056 870
@@ -1061,8 +875,12 @@
1061 875 }
1062 876
1063 877 $this->add_render_attribute( 'video-wrapper', 'class', 'elementor-wrapper' );
1064 878
879 + if ( ! $settings['lightbox'] ) {
880 + $this->add_render_attribute( 'video-wrapper', 'class', 'elementor-fit-aspect-ratio' );
881 + }
882 +
1065 883 $this->add_render_attribute( 'video-wrapper', 'class', 'elementor-open-' . ( $settings['lightbox'] ? 'lightbox' : 'inline' ) );
1066 884 ?>
1067 885 <div <?php $this->print_render_attribute_string( 'video-wrapper' ); ?>>
1068 886 <?php
@@ -1083,15 +901,14 @@
1083 901 $lightbox_options = [
1084 902 'type' => 'video',
1085 903 'videoType' => $settings['video_type'],
1086 904 'url' => $lightbox_url,
1087 - 'autoplay' => $settings['autoplay'],
1088 905 'modalOptions' => [
1089 906 'id' => 'elementor-lightbox-' . $this->get_id(),
1090 907 'entranceAnimation' => $settings['lightbox_content_animation'],
1091 908 'entranceAnimation_tablet' => $settings['lightbox_content_animation_tablet'],
1092 909 'entranceAnimation_mobile' => $settings['lightbox_content_animation_mobile'],
1093 - 'videoAspectRatio' => $settings['aspect_ratio'] ?? '169',
910 + 'videoAspectRatio' => $settings['aspect_ratio'],
1094 911 ],
1095 912 ];
1096 913
1097 914 if ( 'hosted' === $settings['video_type'] ) {
@@ -1100,9 +917,8 @@
1100 917
1101 918 $this->add_render_attribute( 'image-overlay', [
1102 919 'data-elementor-open-lightbox' => 'yes',
1103 920 'data-elementor-lightbox' => wp_json_encode( $lightbox_options ),
1104 - 'data-e-action-hash' => Plugin::instance()->frontend->create_action_hash( 'lightbox', $lightbox_options ),
1105 921 ] );
1106 922
1107 923 if ( Plugin::$instance->editor->is_edit_mode() ) {
1108 924 $this->add_render_attribute( 'image-overlay', [
@@ -1124,18 +940,16 @@
1124 940 <?php if ( $settings['lightbox'] ) : ?>
1125 941 <?php Group_Control_Image_Size::print_attachment_image_html( $settings, 'image_overlay' ); ?>
1126 942 <?php endif; ?>
1127 943 <?php if ( 'yes' === $settings['show_play_icon'] ) : ?>
1128 - <div class="elementor-custom-embed-play" role="button" aria-label="<?php $this->print_a11y_text( $settings['image_overlay'] ); ?>" tabindex="0">
944 + <div class="elementor-custom-embed-play" role="button">
1129 945 <?php
1130 - if ( empty( $settings['play_icon']['value'] ) ) {
1131 - $settings['play_icon'] = [
946 + Icons_Manager::render_icon( [
1132 947 'library' => 'eicons',
1133 948 'value' => 'eicon-play',
1134 - ];
1135 - }
1136 - Icons_Manager::render_icon( $settings['play_icon'], [ 'aria-hidden' => 'true' ] );
949 + ], [ 'aria-hidden' => 'true' ] );
1137 950 ?>
951 + <span class="elementor-screen-only"><?php echo esc_html__( 'Play Video', 'elementor' ); ?></span>
1138 952 </div>
1139 953 <?php endif; ?>
1140 954 </div>
1141 955 <?php } ?>
@@ -1145,9 +959,9 @@
1145 959
1146 960 /**
1147 961 * Render video widget as plain content.
1148 962 *
1149 - * Override the default behavior, by printing the video URL instead of rendering it.
963 + * Override the default behavior, by printing the video URL insted of rendering it.
1150 964 *
1151 965 * @since 1.4.5
1152 966 * @access public
1153 967 */
@@ -1193,9 +1007,9 @@
1193 1007 'loop',
1194 1008 'controls',
1195 1009 'mute',
1196 1010 'rel',
1197 - 'cc_load_policy',
1011 + 'modestbranding',
1198 1012 ];
1199 1013
1200 1014 if ( $settings['loop'] ) {
1201 1015 $video_properties = Embed::get_video_properties( $settings['youtube_url'] );
@@ -1219,12 +1033,8 @@
1219 1033
1220 1034 $params['color'] = str_replace( '#', '', $settings['color'] );
1221 1035
1222 1036 $params['autopause'] = '0';
1223 -
1224 - if ( ! empty( $settings['yt_privacy'] ) ) {
1225 - $params['dnt'] = 'true';
1226 - }
1227 1037 } elseif ( 'dailymotion' === $settings['video_type'] ) {
1228 1038 $params_dictionary = [
1229 1039 'controls',
1230 1040 'mute',
@@ -1236,12 +1046,8 @@
1236 1046
1237 1047 $params['start'] = $settings['start'];
1238 1048
1239 1049 $params['endscreen-enable'] = '0';
1240 - } elseif ( 'videopress' === $settings['video_type'] ) {
1241 - $params_dictionary = $this->get_params_dictionary_for_videopress();
1242 -
1243 - $params['at'] = $settings['start'];
1244 1050 }
1245 1051
1246 1052 foreach ( $params_dictionary as $key => $param_name ) {
1247 1053 $setting_name = $param_name;
@@ -1308,12 +1114,8 @@
1308 1114 $video_params[ $option_name ] = '';
1309 1115 }
1310 1116 }
1311 1117
1312 - if ( $settings['preload'] ) {
1313 - $video_params['preload'] = $settings['preload'];
1314 - }
1315 -
1316 1118 if ( $settings['mute'] ) {
1317 1119 $video_params['muted'] = 'muted';
1318 1120 }
1319 1121
@@ -1332,8 +1134,9 @@
1332 1134 return $video_params;
1333 1135 }
1334 1136
1335 1137 /**
1138 + * @param bool $from_media
1336 1139 *
1337 1140 * @return string
1338 1141 * @since 2.1.0
1339 1142 * @access private
@@ -1366,39 +1169,9 @@
1366 1169 return $video_url;
1367 1170 }
1368 1171
1369 1172 /**
1370 - * Get the VideoPress video URL from the current selected settings.
1371 1173 *
1372 - * @return string
1373 - */
1374 - private function get_videopress_video_url() {
1375 - $settings = $this->get_settings_for_display();
1376 -
1377 - if ( ! empty( $settings['insert_url'] ) ) {
1378 - return $settings['videopress_url'];
1379 - }
1380 -
1381 - return $settings['hosted_url']['url'];
1382 - }
1383 -
1384 - /**
1385 - * Get the params dictionary for VideoPress videos.
1386 - *
1387 - * @return array
1388 - */
1389 - private function get_params_dictionary_for_videopress() {
1390 - return [
1391 - 'controls',
1392 - 'autoplay' => 'autoPlay',
1393 - 'mute' => 'muted',
1394 - 'loop',
1395 - 'play_on_mobile' => 'playsinline',
1396 - ];
1397 - }
1398 -
1399 - /**
1400 - *
1401 1174 * @since 2.1.0
1402 1175 * @access private
1403 1176 */
1404 1177 private function render_hosted_video() {
@@ -1411,28 +1184,6 @@
1411 1184 /* Sometimes the video url is base64, therefore we use `esc_attr` in `src`. */
1412 1185 ?>
1413 1186 <video class="elementor-video" src="<?php echo esc_attr( $video_url ); ?>" <?php Utils::print_html_attributes( $video_params ); ?>></video>
1414 1187 <?php
1415 - }
1416 -
1417 - public function render_markdown(): string {
1418 - $settings = $this->get_settings_for_display();
1419 - $video_type = $settings['video_type'] ?? 'youtube';
1420 - $url = '';
1421 -
1422 - if ( 'hosted' === $video_type ) {
1423 - if ( ! empty( $settings['insert_url'] ) ) {
1424 - $url = $settings['external_url']['url'] ?? '';
1425 - } else {
1426 - $url = $settings['hosted_url']['url'] ?? '';
1427 - }
1428 - } else {
1429 - $url = $settings[ $video_type . '_url' ] ?? '';
1430 - }
1431 -
1432 - if ( empty( $url ) ) {
1433 - return '';
1434 - }
1435 -
1436 - return '[Video](' . esc_url( $url ) . ')';
1437 1188 }
1438 1189 }