PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, 3D PDF FlipBook, Google Reviews, YouTube Videos, Upload & Embed PDF documents / 3.8.4
EmbedPress – PDF Embedder, 3D PDF FlipBook, Google Reviews, YouTube Videos, Upload & Embed PDF documents v3.8.4
4.6.0 4.5.6 4.5.5 4.5.4 4.5.3 4.5.2 trunk 1.0.0 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.5.0 1.6.0 1.6.1 1.6.2 1.6.3 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.2.0 2.2.1 2.2.2 2.3.0 2.3.1 2.3.2 2.3.3 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.1.3 3.2.0 3.2.1 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.6.8 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 3.9.1 3.9.10 3.9.11 3.9.12 3.9.13 3.9.14 3.9.15 3.9.16 3.9.17 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9 4.0.0 4.0.1 4.0.10 4.0.11 4.0.12 4.0.13 4.0.14 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.0.9 4.1.0 4.1.1 4.1.10 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9 4.2.0 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 4.2.9 4.3.0 4.3.1 4.4.0 4.4.1 4.4.10 4.4.11 4.4.2 4.4.3 4.4.4 4.4.5 4.4.6 4.4.7 4.4.8 4.4.9 4.5.0 4.5.1
embedpress / EmbedPress / Elementor / Widgets / Embedpress_Elementor.php
embedpress / EmbedPress / Elementor / Widgets Last commit date
Embedpress_Calendar.php 3 years ago Embedpress_Document.php 3 years ago Embedpress_Elementor.php 2 years ago Embedpress_Pdf.php 2 years ago
Embedpress_Elementor.php
3103 lines
1 <?php
2
3 namespace EmbedPress\Elementor\Widgets;
4
5
6 use Elementor\Controls_Manager as Controls_Manager;
7
8 use Elementor\Plugin;
9 use Elementor\Widget_Base as Widget_Base;
10 use EmbedPress\Includes\Classes\Helper;
11 use EmbedPress\Includes\Traits\Branding;
12 use EmbedPress\Shortcode;
13
14 (defined('ABSPATH')) or die("No direct script access allowed.");
15
16 class Embedpress_Elementor extends Widget_Base
17 {
18
19 use Branding;
20 protected $pro_class = '';
21 protected $pro_text = '';
22 public function get_name()
23 {
24 return 'embedpres_elementor';
25 }
26
27 public function get_title()
28 {
29 return esc_html__('EmbedPress', 'embedpress');
30 }
31
32 public function get_categories()
33 {
34 return ['embedpress'];
35 }
36
37 public function get_custom_help_url()
38 {
39 return 'https://embedpress.com/documentation';
40 }
41
42 public function get_icon()
43 {
44 return 'icon-embedpress';
45 }
46
47 /**
48 * Get widget keywords.
49 *
50 * Retrieve the list of keywords the widget belongs to.
51 *
52 * @return array Widget keywords.
53 * @since 2.4.1
54 * @access public
55 *
56 */
57 public function get_keywords()
58 {
59 return [
60 'embedpress',
61 'audio',
62 'video',
63 'map',
64 'youtube',
65 'vimeo',
66 'wistia',
67 'twitch',
68 'soundcloud',
69 'giphy gifs',
70 'spotify',
71 'smugmug',
72 'meetup',
73 'apple',
74 'apple podcast',
75 'podcast',
76 'dailymotion',
77 'instagram',
78 'slideshare',
79 'flickr',
80 'ted',
81 'google docs',
82 'google slides',
83 'google drawings'
84 ];
85 }
86
87 protected function register_controls()
88 {
89 $this->pro_class = is_embedpress_pro_active() ? '' : 'embedpress-pro-control not-active';
90 $this->pro_text = is_embedpress_pro_active() ? '' : '<sup class="embedpress-pro-label" style="color:red">' . __('Pro', 'embedpress') . '</sup>';
91 /**
92 * EmbedPress General Settings
93 */
94 $this->start_controls_section(
95 'embedpress_elementor_content_settings',
96 [
97 'label' => esc_html__('General', 'embedpress'),
98 ]
99 );
100
101 do_action('embedpress/embeded/extend', $this);
102 $this->add_control(
103 'embedpress_pro_embeded_source',
104 [
105 'label' => __('Source Name', 'embedpress'),
106 'type' => Controls_Manager::SELECT2,
107 'label_block' => false,
108 'default' => 'default',
109 'options' => [
110 'default' => __('Default', 'embedpress'),
111 'youtube' => __('YouTube', 'embedpress'),
112 'vimeo' => __('Vimeo', 'embedpress'),
113 'dailymotion' => __('Dailymotion', 'embedpress'),
114 'wistia' => __('Wistia', 'embedpress'),
115 'twitch' => __('Twitch', 'embedpress'),
116 'soundcloud' => __('SoundCloud', 'embedpress'),
117 'opensea' => __('OpenSea', 'embedpress'),
118 'calendly' => __('Calendly', 'embedpress'),
119 'selfhosted_video' => __('Self-hosted Video', 'embedpress'),
120 'selfhosted_audio' => __('Self-hosted Audio', 'embedpress'),
121 ]
122 ]
123 );
124
125 $this->add_control(
126 'embedpress_pro_embeded_nft_type',
127 [
128 'label' => __('Type', 'embedpress'),
129 'type' => Controls_Manager::SELECT,
130 'label_block' => false,
131 'default' => 'collection',
132 'options' => [
133 'collection' => __('Assets Collection', 'embedpress'),
134 'single' => __('Single Asset', 'embedpress'),
135 ],
136 'condition' => [
137 'embedpress_pro_embeded_source' => 'opensea'
138 ]
139 ]
140 );
141
142 $this->add_control(
143 'embedpress_embeded_link',
144 [
145
146 'label' => __('Embedded Link', 'embedpress'),
147 'type' => Controls_Manager::TEXT,
148 'dynamic' => [
149 'active' => true,
150 ],
151 'placeholder' => __('Enter your Link', 'embedpress'),
152 'label_block' => true,
153 'ai' => [
154 'active' => false,
155 ],
156
157 ]
158 );
159
160 $this->add_control(
161 'spotify_theme',
162 [
163 'label' => __('Player Background', 'embedpress'),
164 'description' => __('Dynamic option will use the most vibrant color from the album art.', 'embedpress'),
165 'type' => Controls_Manager::SELECT,
166 'label_block' => false,
167 'default' => '1',
168 'options' => [
169 '1' => __('Dynamic', 'embedpress'),
170 '0' => __('Black & White', 'embedpress')
171 ],
172 'condition' => [
173 'embedpress_pro_embeded_source' => 'spotify'
174 ]
175 ]
176 );
177 do_action('embedpress/control/extend', $this);
178
179 $this->add_control(
180 'emberpress_custom_player',
181 [
182 'label' => __('Enable Custom Player', 'embedpress'),
183 'type' => Controls_Manager::SWITCHER,
184 'label_block' => false,
185 'return_value' => 'yes',
186 'default' => '',
187 'condition' => [
188 'embedpress_pro_embeded_source' => ['youtube', 'vimeo', 'selfhosted_video', 'selfhosted_audio']
189 ],
190 ]
191 );
192
193 $this->add_control(
194 'custom_player_important_note',
195 [
196 'type' => \Elementor\Controls_Manager::RAW_HTML,
197 'raw' => esc_html__('Custom player take effect only when a single video is embedded.', 'embedpress'),
198 'content_classes' => 'elementor-panel-alert elementor-panel-warning-info',
199 'condition' => [
200 'emberpress_custom_player' => 'yes',
201 'embedpress_pro_embeded_source' => 'youtube',
202 ],
203 ]
204 );
205
206 $this->add_control(
207 'custom_payer_preset',
208 [
209 'label' => sprintf(__('Preset %s', 'embedpress'), $this->pro_text),
210
211 'type' => Controls_Manager::SELECT,
212 'label_block' => false,
213 'default' => 'default',
214 'options' => [
215 'default' => __('Default', 'embedpress'),
216 'custom-player-preset-1' => __('Preset 1', 'embedpress'),
217 // 'custom-player-preset-2' => __('Preset 2', 'embedpress'),
218 'custom-player-preset-3' => __('Preset 2', 'embedpress'),
219 // 'custom-player-preset-4' => __('Preset 4', 'embedpress'),
220 ],
221 'classes' => $this->pro_class,
222 'condition' => [
223 'emberpress_custom_player' => 'yes',
224 'embedpress_pro_embeded_source' => ['youtube', 'vimeo', 'selfhosted_video']
225 ],
226 ]
227 );
228
229 $this->add_control(
230 'embedpress_pro_video_start_time',
231 [
232 'label' => __('Start Time', 'embedpress'),
233 'type' => Controls_Manager::NUMBER,
234 'description' => __('Specify a start time (in seconds)', 'embedpress'),
235 'condition' => [
236 'embedpress_pro_embeded_source' => ['youtube', 'vimeo', 'wistia', 'dailymotion', 'twitch']
237 ],
238 ]
239 );
240
241
242
243
244 /**
245 * Initialized controls
246 */
247 $this->init_youtube_controls();
248 $this->init_vimeo_controls();
249
250 $this->init_wistia_controls();
251 $this->init_soundcloud_controls();
252 $this->init_dailymotion_control();
253 $this->init_twitch_control();
254 $this->init_opensea_control();
255 $this->end_controls_section();
256
257
258 $this->init_youtube_channel_section();
259 $this->init_youtube_subscription_section();
260 $this->init_youtube_livechat_section();
261
262
263 /**
264 * Opensea Control section
265 */
266 $this->init_opensea_control_section();
267
268 /**
269 * Calendly Control section
270 */
271 $this->init_calendly_control_section();
272
273
274 do_action('extend_elementor_controls', $this, '_', $this->pro_text, $this->pro_class);
275
276 if (!is_embedpress_pro_active()) {
277 $this->start_controls_section(
278 'embedpress_pro_section',
279 [
280 'label' => __('Go Premium for More Features', 'embedpress'),
281 ]
282 );
283
284 $this->add_control(
285 'embedpress_pro_cta',
286 [
287 'label' => __('Unlock more possibilities', 'embedpress'),
288 'type' => Controls_Manager::CHOOSE,
289 'options' => [
290 '1' => [
291 'title' => '',
292 'icon' => 'eicon-lock',
293 ],
294 ],
295 'default' => '1',
296 'description' => '<span class="pro-feature"> Get the <a href="https://wpdeveloper.com/in/upgrade-embedpress" target="_blank">Pro version</a> for more provider support and customization options.</span>',
297 ]
298 );
299
300 $this->end_controls_section();
301 }
302
303 $this->init_style_controls();
304 $this->init_opensea_color_and_typography();
305 }
306
307 /**
308 * Youtube Controls
309 */
310
311 public function init_youtube_controls()
312 {
313 $yt_condition = [
314 'embedpress_pro_embeded_source' => 'youtube'
315 ];
316 $this->add_control(
317 'embedpress_pro_youtube_end_time',
318 [
319 'label' => __('End Time', 'embedpress'),
320 'type' => Controls_Manager::NUMBER,
321 'description' => __('Specify an end time (in seconds)', 'embedpress'),
322 'condition' => $yt_condition,
323 ]
324 );
325
326
327 $this->add_control(
328 'embedpress_player_color',
329 [
330 'label' => sprintf(__('Player Color %s', 'embedpress'), $this->pro_text),
331 'type' => Controls_Manager::COLOR,
332 'label_block' => false,
333 'classes' => $this->pro_class,
334 'default' => '#5b4e96',
335 'condition' => [
336 'emberpress_custom_player' => 'yes',
337 'embedpress_pro_embeded_source' => ['youtube', 'vimeo', 'selfhosted_video', 'selfhosted_audio']
338 ],
339 ]
340 );
341
342 $this->add_control(
343 'embedpress_pro_vimeo_auto_play',
344 [
345 'label' => __('Auto Play', 'embedpress'),
346 'type' => Controls_Manager::SWITCHER,
347 'label_block' => false,
348 'return_value' => 'yes',
349 'default' => 'no',
350 'condition' => [
351 'embedpress_pro_embeded_source' => 'vimeo'
352 ]
353 ]
354 );
355
356 $this->add_control(
357 'embedpress_pro_vimeo_autopause',
358 [
359 'label' => sprintf(__('Auto Pause %s', 'embedpress'), $this->pro_text),
360 'type' => Controls_Manager::SWITCHER,
361 'label_block' => false,
362 'return_value' => 'yes',
363 'default' => 'no',
364 'description' => __(
365 'Automatically stop the current video from playing when another one starts.',
366 'embedpress'
367 ),
368 'condition' => [
369 'embedpress_pro_embeded_source' => 'vimeo'
370 ],
371 'classes' => $this->pro_class,
372 ]
373 );
374
375 $this->add_control(
376 'embedpress_pro_vimeo_dnt',
377 [
378 'label' => sprintf(__('DNT %s', 'embedpress'), $this->pro_text),
379 'type' => Controls_Manager::SWITCHER,
380 'label_block' => false,
381 'return_value' => 'yes',
382 'default' => 'yes',
383 'description' => __(
384 'Set this parameter to "yes" will block tracking any session data, including cookies. If Auto Pause is enabled this will not work.',
385 'embedpress'
386 ),
387 'condition' => [
388 'embedpress_pro_embeded_source' => 'vimeo'
389 ],
390 'classes' => $this->pro_class,
391 ]
392 );
393
394
395 $this->add_control(
396 'embedpress_pro_youtube_auto_play',
397 [
398 'label' => __('Auto Play', 'embedpress'),
399 'type' => Controls_Manager::SWITCHER,
400 'label_block' => false,
401 'return_value' => 'yes',
402 'default' => 'no',
403 'condition' => $yt_condition,
404 ]
405 );
406 $this->add_control(
407 'embedpress_pro_youtube_player_options',
408 [
409 'label' => __('Player Options', 'embedpress'),
410 'type' => Controls_Manager::HEADING,
411 'condition' => [
412 'embedpress_pro_embeded_source' => 'youtube',
413 'emberpress_custom_player!' => 'yes'
414 ],
415 ]
416 );
417 $this->add_control(
418 'embedpress_pro_youtube_display_controls',
419 [
420 'label' => __('Controls', 'embedpress'),
421 'type' => Controls_Manager::SELECT,
422 'label_block' => false,
423 'default' => 1,
424 'options' => [
425 '1' => __('Display immediately', 'embedpress'),
426 '2' => __('Display after user initiation', 'embedpress'),
427 '0' => __('Hide controls', 'embedpress')
428 ],
429 'condition' => [
430 'embedpress_pro_embeded_source' => 'youtube',
431 'emberpress_custom_player!' => 'yes'
432 ],
433 ]
434 );
435 $this->add_control(
436 'embedpress_pro_youtube_enable_fullscreen_button',
437 [
438 'label' => __('Fullscreen button', 'embedpress'),
439 'type' => Controls_Manager::SWITCHER,
440 'label_block' => false,
441 'return_value' => 'yes',
442 'default' => 'yes',
443 'condition' => [
444 'embedpress_pro_embeded_source' => ['youtube', 'vimeo'],
445 'embedpress_pro_youtube_display_controls!' => '0'
446 ]
447 ]
448 );
449 $this->add_control(
450 'embedpress_pro_youtube_display_video_annotations',
451 [
452 'label' => __('Video Annotations', 'embedpress'),
453 'type' => Controls_Manager::SWITCHER,
454 'label_block' => false,
455 'default' => 1,
456 'options' => [
457 '1' => __('Display', 'embedpress'),
458 '3' => __('Do Not Display', 'embedpress')
459 ],
460 'condition' => [
461 'embedpress_pro_embeded_source' => 'youtube',
462 'emberpress_custom_player!' => 'yes'
463 ],
464 ]
465 );
466 //--- YouTube Pro control starts ---
467 $this->add_control(
468 'embedpress_pro_youtube_progress_bar_color',
469 [
470 'label' => __('Progress Bar Color', 'embedpress'),
471 'type' => Controls_Manager::SELECT,
472 'label_block' => false,
473 'default' => 'red',
474 'options' => [
475 'red' => __('Red', 'embedpress'),
476 'white' => __('White', 'embedpress')
477 ],
478 'condition' => [
479 'embedpress_pro_embeded_source' => 'youtube',
480 'emberpress_custom_player!' => 'yes'
481 ],
482 ]
483 );
484 $this->add_control(
485 'embedpress_pro_youtube_force_closed_captions',
486 [
487 'label' => sprintf(__('Closed Captions %s', 'embedpress'), $this->pro_text),
488 'type' => Controls_Manager::SWITCHER,
489 'label_block' => false,
490 'return_value' => 'yes',
491 'default' => 'no',
492 'separator' => 'before',
493 'classes' => $this->pro_class,
494 'condition' => [
495 'embedpress_pro_embeded_source' => 'youtube',
496 'emberpress_custom_player!' => 'yes'
497 ],
498 ]
499 );
500 $this->add_control(
501 'embedpress_pro_youtube_modest_branding',
502 [
503 'label' => sprintf(__('Modest Branding %s', 'embedpress'), $this->pro_text),
504 'type' => Controls_Manager::SELECT,
505 'label_block' => false,
506 'default' => 1,
507 'options' => [
508 '0' => __('Display', 'embedpress'),
509 '1' => __('Do Not Display', 'embedpress')
510 ],
511 'condition' => [
512 'embedpress_pro_embeded_source' => 'youtube',
513 'embedpress_pro_youtube_display_controls!' => '0',
514 'embedpress_pro_youtube_progress_bar_color!' => 'white',
515 'embedpress_custom_player!' => 'yes',
516 ],
517 'classes' => $this->pro_class,
518 ]
519 );
520
521
522
523
524
525 do_action('extend_customplayer_controls', $this, '_', $this->pro_text, $this->pro_class);
526
527
528 $this->add_control(
529 'embepress_player_always_on_top',
530 [
531 'label' => sprintf(__('Sticky Video %s', 'embedpress'), $this->pro_text),
532 'description' => __('Watch video and seamlessly scroll through other content with a sleek pop-up window.', 'embedpress'),
533 'type' => Controls_Manager::SWITCHER,
534 'label_block' => false,
535 'return_value' => 'yes',
536 'classes' => $this->pro_class,
537 'default' => '',
538 'condition' => [
539 'emberpress_custom_player' => 'yes',
540 'embedpress_pro_embeded_source' => ['youtube', 'vimeo', 'selfhosted_video']
541 ],
542 ]
543 );
544
545 $this->add_control(
546 'embedpress_pro_youtube_display_related_videos',
547 [
548 'label' => __('Related Videos', 'embedpress'),
549 'description' => __('Set it to "Yes" to display related videos from all channels. Otherwise, related videos will show from the same channel.', 'embedpress'),
550 'type' => Controls_Manager::SWITCHER,
551 'label_block' => false,
552 'return_value' => 'yes',
553 'default' => 'yes',
554 'condition' => $yt_condition,
555 ]
556 );
557
558
559
560 $this->add_control(
561 "embedpress_player_poster_thumbnail",
562 [
563 'label' => sprintf(__('Thumbnail %s', 'embedpress'), $this->pro_text),
564 'type' => Controls_Manager::MEDIA,
565 'dynamic' => [
566 'active' => true,
567 ],
568 'classes' => $this->pro_class,
569 'condition' => [
570 'emberpress_custom_player' => 'yes',
571 'embedpress_pro_embeded_source' => ['youtube', 'vimeo', 'selfhosted_video']
572 ],
573 ]
574 );
575
576 $this->init_branding_controls('youtube');
577 }
578
579 public function init_youtube_channel_section()
580 {
581 $yt_condition = [
582 'embedpress_pro_embeded_source' => 'youtube',
583 ];
584 $this->start_controls_section(
585 'embedpress_yt_channel_section',
586 [
587 'label' => __('YouTube Channel', 'embedpress'),
588 'condition' => [
589 'embedpress_pro_embeded_source' => 'youtube',
590 'emberpress_custom_player!' => 'yes'
591 ],
592
593 ]
594 );
595
596 $this->add_control(
597 'important_note',
598 [
599 'type' => \Elementor\Controls_Manager::RAW_HTML,
600 'raw' => esc_html__('These options take effect only when a YouTube channel is embedded.', 'embedpress'),
601 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
602 ]
603 );
604
605 $this->add_control(
606 'pagesize',
607 [
608 'label' => __('Video Per Page', 'embedpress'),
609 'type' => Controls_Manager::NUMBER,
610 'label_block' => false,
611 'default' => 6,
612 'min' => 1,
613 'max' => 50,
614 'conditions' => [
615 'terms' => [
616 [
617 'name' => 'embedpress_pro_embeded_source',
618 'operator' => '===',
619 'value' => 'youtube',
620 ],
621 ],
622 ]
623 ]
624 );
625
626 $this->add_control(
627 'columns',
628 [
629 'label' => __('Column', 'embedpress'),
630 'type' => \Elementor\Controls_Manager::SELECT,
631 'label_block' => false,
632 'default' => '3',
633 'options' => [
634 '2' => esc_html__('2', 'embedpress'),
635 '3' => esc_html__('3', 'embedpress'),
636 '4' => esc_html__('4', 'embedpress'),
637 '6' => esc_html__('6', 'embedpress'),
638 'auto' => esc_html__('Auto', 'embedpress'),
639 ],
640 'conditions' => [
641 'terms' => [
642 [
643 'name' => 'embedpress_pro_embeded_source',
644 'operator' => '===',
645 'value' => 'youtube',
646 ],
647 ],
648 ]
649 ]
650 );
651 $this->add_control(
652 'gapbetweenvideos',
653 [
654 'label' => __('Gap Between Videos', 'embedpress'),
655 'label_block' => true,
656 'type' => \Elementor\Controls_Manager::SLIDER,
657 'size_units' => ['px', '%'],
658 'range' => [
659 'px' => [
660 'min' => 0,
661 'max' => 100,
662 'step' => 1,
663 ],
664 '%' => [
665 'min' => 0,
666 'max' => 100,
667 ],
668 ],
669 'default' => [
670 'unit' => 'px',
671 'size' => 30,
672 ],
673 'conditions' => [
674 'terms' => [
675 [
676 'name' => 'embedpress_pro_embeded_source',
677 'operator' => '===',
678 'value' => 'youtube',
679 ],
680 ],
681 ],
682 'selectors' => [
683 '{{WRAPPER}} .ep-youtube__content__block .youtube__content__body .content__wrap' => 'gap: {{SIZE}}{{UNIT}}!important;margin-top: {{SIZE}}{{UNIT}}!important;',
684 ],
685 ]
686 );
687
688 $this->add_control(
689 'pagination',
690 [
691 'label' => __('Pagination', 'embedpress'),
692 'type' => Controls_Manager::SWITCHER,
693 'label_block' => false,
694 'label_on' => esc_html__('Show', 'embedpress'),
695 'label_off' => esc_html__('Hide', 'embedpress'),
696 'return_value' => 'show',
697 'default' => 'show',
698 'condition' => $yt_condition,
699 ]
700 );
701
702
703 $this->end_controls_section();
704 }
705 public function init_youtube_subscription_section()
706 {
707 $yt_condition = [
708 'embedpress_pro_embeded_source' => 'youtube',
709 ];
710 $this->start_controls_section(
711 'embedpress_yt_subscription_section',
712 [
713 'label' => __('YouTube Subscriber', 'embedpress'),
714 'condition' => $yt_condition,
715
716 ]
717 );
718
719
720 $this->add_control(
721 'yt_sub_channel',
722 [
723
724 'label' => sprintf(__('Channel ID %s', 'embedpress'), $this->pro_text),
725 'type' => Controls_Manager::TEXT,
726 'dynamic' => [
727 'active' => true,
728 ],
729 'placeholder' => __('Enter Channel ID', 'embedpress'),
730 'label_block' => true,
731 'condition' => $yt_condition,
732 'classes' => $this->pro_class,
733 ]
734 );
735 $this->add_control(
736 'yt_sub_text',
737 [
738
739 'label' => sprintf(__('Subscription Text %s', 'embedpress'), $this->pro_text),
740 'type' => Controls_Manager::TEXT,
741 'dynamic' => [
742 'active' => true,
743 ],
744 'placeholder' => __('Eg. Don\'t miss out! Subscribe', 'embedpress'),
745 'label_block' => true,
746 'condition' => $yt_condition,
747 'classes' => $this->pro_class,
748 ]
749 );
750
751
752 $this->add_control(
753 'yt_sub_layout',
754 [
755 'label' => sprintf(__('Layout %s', 'embedpress'), $this->pro_text),
756 'type' => Controls_Manager::SELECT,
757 'label_block' => false,
758 'default' => 'default',
759 'options' => [
760 'default' => __('Default', 'embedpress'),
761 'full' => __('Full', 'embedpress')
762 ],
763 'condition' => [
764 'embedpress_pro_embeded_source' => 'youtube',
765 ],
766 'classes' => $this->pro_class,
767 ]
768 );
769
770 $this->add_control(
771 'yt_sub_theme',
772 [
773 'label' => sprintf(__('Theme %s', 'embedpress'), $this->pro_text),
774 'type' => Controls_Manager::SELECT,
775 'label_block' => false,
776 'default' => 'default',
777 'options' => [
778 'default' => __('Default', 'embedpress'),
779 'dark' => __('Dark', 'embedpress')
780 ],
781 'condition' => [
782 'embedpress_pro_embeded_source' => 'youtube',
783 ],
784 'classes' => $this->pro_class,
785 ]
786 );
787
788 $this->add_control(
789 'yt_sub_count',
790 [
791 'label' => sprintf(__('Subscriber Count %s', 'embedpress'), $this->pro_text),
792 'type' => Controls_Manager::SWITCHER,
793 'label_block' => false,
794 'return_value' => 'yes',
795 'default' => 'yes',
796 'condition' => $yt_condition,
797 'classes' => $this->pro_class,
798 ]
799 );
800
801 $this->end_controls_section();
802 }
803
804 public function init_youtube_livechat_section()
805 {
806 $yt_condition = [
807 'embedpress_pro_embeded_source' => 'youtube',
808 ];
809 $this->start_controls_section(
810 'embedpress_yt_livechat_section',
811 [
812 'label' => __('YouTube Live Chat', 'embedpress'),
813 'condition' => $yt_condition,
814
815 ]
816 );
817
818 $this->add_control(
819 'yt_lc_show',
820 [
821 'label' => sprintf(__('Show YouTube Live Chat %s', 'embedpress'), $this->pro_text),
822 'type' => Controls_Manager::SWITCHER,
823 'label_block' => false,
824 'return_value' => 'yes',
825 'default' => '',
826 'label_off' => __('Hide', 'embedpress'),
827 'label_on' => __('Show', 'embedpress'),
828 'condition' => $yt_condition,
829 'classes' => $this->pro_class,
830 ]
831 );
832
833
834 $this->end_controls_section();
835 }
836
837 //End Youtube Controls
838
839 /**
840 * Dailymotion Controls
841 */
842 public function init_dailymotion_control()
843 {
844 //@TODO; Kamal - migrate from 'embedpress_pro_dailymotion_logo' to 'embedpress_pro_dailymotion_ui_logo'
845 $this->add_control(
846 'embedpress_pro_dailymotion_ui_logo',
847 [
848 'label' => sprintf(__('Logo %s', 'embedpress'), $this->pro_text),
849 'type' => Controls_Manager::SWITCHER,
850 'label_block' => false,
851 'return_value' => 'yes',
852 'default' => 'yes',
853 'label_off' => __('Hide', 'embedpress'),
854 'label_on' => __('Show', 'embedpress'),
855 'condition' => [
856 'embedpress_pro_embeded_source' => 'dailymotion'
857 ],
858 'classes' => $this->pro_class,
859 ]
860 );
861 $this->add_control(
862 'embedpress_pro_dailymotion_autoplay',
863 [
864 'label' => __('Auto Play', 'embedpress'),
865 'type' => Controls_Manager::SWITCHER,
866 'label_block' => false,
867 'return_value' => 'yes',
868 'default' => 'no',
869 'label_off' => __('Hide', 'embedpress'),
870 'label_on' => __('Show', 'embedpress'),
871 'condition' => [
872 'embedpress_pro_embeded_source' => 'dailymotion'
873 ]
874 ]
875 );
876 $this->add_control(
877 'embedpress_pro_dailymotion_play_on_mobile',
878 [
879 'label' => __('Play On Mobile', 'embedpress'),
880 'type' => Controls_Manager::SWITCHER,
881 'label_block' => false,
882 'return_value' => 'yes',
883 'default' => 'no',
884 'label_off' => __('Hide', 'embedpress'),
885 'label_on' => __('Show', 'embedpress'),
886 'condition' => [
887 'embedpress_pro_embeded_source' => 'dailymotion',
888 'embedpress_pro_dailymotion_autoplay' => 'yes'
889 ]
890 ]
891 );
892 $this->add_control(
893 'embedpress_pro_dailymotion_mute',
894 [
895 'label' => __('Mute', 'embedpress'),
896 'type' => Controls_Manager::SWITCHER,
897 'label_block' => false,
898 'return_value' => 'yes',
899 'default' => 'no',
900 'label_off' => __('Hide', 'embedpress'),
901 'label_on' => __('Show', 'embedpress'),
902 'condition' => [
903 'embedpress_pro_embeded_source' => 'dailymotion'
904 ]
905 ]
906 );
907 $this->add_control(
908 'embedpress_pro_dailymotion_player_control',
909 [
910 'label' => __('Player Controls', 'embedpress'),
911 'type' => Controls_Manager::SWITCHER,
912 'label_block' => false,
913 'return_value' => 'yes',
914 'default' => 'yes',
915 'label_off' => __('Hide', 'embedpress'),
916 'label_on' => __('Show', 'embedpress'),
917 'condition' => [
918 'embedpress_pro_embeded_source' => 'dailymotion'
919 ]
920 ]
921 );
922 $this->add_control(
923 'embedpress_pro_dailymotion_video_info',
924 [
925 'label' => __('Video Info', 'embedpress'),
926 'type' => Controls_Manager::SWITCHER,
927 'label_block' => false,
928 'return_value' => 'yes',
929 'default' => 'yes',
930 'label_off' => __('Hide', 'embedpress'),
931 'label_on' => __('Show', 'embedpress'),
932 'condition' => [
933 'embedpress_pro_embeded_source' => 'dailymotion'
934 ]
935 ]
936 );
937 $this->add_control(
938 'embedpress_pro_dailymotion_control_color',
939 [
940 'label' => __('Control Color', 'embedpress'),
941 'type' => Controls_Manager::COLOR,
942 'label_block' => false,
943 'default' => '#dd3333',
944 'condition' => [
945 'embedpress_pro_embeded_source' => 'dailymotion'
946 ]
947 ]
948 );
949 $this->init_branding_controls('dailymotion');
950 }
951 //End Dailymotion Controls
952
953 /**
954 * Wistia Controls
955 */
956 public function init_wistia_controls()
957 {
958 $this->add_control(
959 'embedpress_pro_wistia_auto_play',
960 [
961 'label' => __('Auto Play', 'embedpress'),
962 'type' => Controls_Manager::SWITCHER,
963 'label_block' => false,
964 'return_value' => 'yes',
965 'default' => 'no',
966 'condition' => [
967 'embedpress_pro_embeded_source' => 'wistia'
968 ],
969 ]
970 );
971
972 $this->add_control(
973 'embedpress_pro_wistia_color',
974 [
975 'label' => __('Scheme', 'embedpress'),
976 'type' => Controls_Manager::COLOR,
977 'label_block' => false,
978 'default' => '#dd3333',
979 'condition' => [
980 'embedpress_pro_embeded_source' => 'wistia'
981 ]
982 ]
983 );
984
985
986
987 $this->add_control(
988 'embedpress_pro_wistia_captions_enabled_by_default',
989 [
990 'label' => __('Captions Enabled By Default', 'embedpress'),
991 'type' => Controls_Manager::SWITCHER,
992 'label_block' => false,
993 'return_value' => 'yes',
994 'default' => 'no',
995 'condition' => [
996 'embedpress_pro_embeded_source' => 'wistia',
997 'embedpress_pro_wistia_captions' => 'yes'
998 ],
999 'classes' => $this->pro_class,
1000 ]
1001 );
1002
1003 $this->add_control(
1004 'embedpress_pro_wistia_player_options',
1005 [
1006 'label' => __('Player Options', 'embedpress'),
1007 'type' => Controls_Manager::HEADING,
1008 'separator' => 'before',
1009 'condition' => [
1010 'embedpress_pro_embeded_source' => 'wistia'
1011 ]
1012 ]
1013 );
1014
1015
1016
1017 $this->add_control(
1018 'embedpress_pro_wistia_fullscreen_button',
1019 [
1020 'label' => __('Fullscreen Button', 'embedpress'),
1021 'type' => Controls_Manager::SWITCHER,
1022 'label_block' => false,
1023 'return_value' => 'yes',
1024 'default' => 'no',
1025 'condition' => [
1026 'embedpress_pro_embeded_source' => 'wistia'
1027 ],
1028 ]
1029 );
1030
1031 $this->add_control(
1032 'embedpress_pro_wistia_small_play_button',
1033 [
1034 'label' => __('Small Play Button', 'embedpress'),
1035 'type' => Controls_Manager::SWITCHER,
1036 'label_block' => false,
1037 'return_value' => 'yes',
1038 'default' => 'no',
1039 'condition' => [
1040 'embedpress_pro_embeded_source' => 'wistia'
1041 ],
1042 ]
1043 );
1044
1045
1046
1047
1048 $this->add_control(
1049 'embedpress_pro_wistia_resumable',
1050 [
1051 'label' => __('Resumable', 'embedpress'),
1052 'type' => Controls_Manager::SWITCHER,
1053 'label_block' => false,
1054 'return_value' => 'yes',
1055 'default' => 'no',
1056 'condition' => [
1057 'embedpress_pro_embeded_source' => 'wistia'
1058 ],
1059 ]
1060 );
1061
1062
1063 $this->add_control(
1064 'embedpress_pro_wistia_focus',
1065 [
1066 'label' => __('Focus', 'embedpress'),
1067 'type' => Controls_Manager::SWITCHER,
1068 'label_block' => false,
1069 'return_value' => 'yes',
1070 'default' => 'no',
1071 'condition' => [
1072 'embedpress_pro_embeded_source' => 'wistia'
1073 ],
1074 ]
1075 );
1076
1077 // --- Wistia PRO Controls --
1078 $this->add_control(
1079 'embedpress_pro_wistia_captions',
1080 [
1081 'label' => sprintf(__('Closed Captions %s', 'embedpress'), $this->pro_text),
1082 'type' => Controls_Manager::SWITCHER,
1083 'label_block' => false,
1084 'return_value' => 'yes',
1085 'default' => 'no',
1086 'condition' => [
1087 'embedpress_pro_embeded_source' => 'wistia'
1088 ],
1089 'classes' => $this->pro_class,
1090 ]
1091 );
1092 $this->add_control(
1093 'embedpress_pro_wistia_playbar',
1094 [
1095 'label' => __('Playbar ', 'embedpress'),
1096 'type' => Controls_Manager::SWITCHER,
1097 'label_block' => false,
1098 'return_value' => 'yes',
1099 'default' => 'no',
1100 'condition' => [
1101 'embedpress_pro_embeded_source' => 'wistia'
1102 ],
1103 ]
1104 );
1105
1106 $this->add_control(
1107 'embedpress_pro_wistia_volume_control',
1108 [
1109 'label' => sprintf(__('Volume Control %s', 'embedpress'), $this->pro_text),
1110 'type' => Controls_Manager::SWITCHER,
1111 'label_block' => false,
1112 'return_value' => 'yes',
1113 'default' => 'yes',
1114 'condition' => [
1115 'embedpress_pro_embeded_source' => 'wistia'
1116 ],
1117 'classes' => $this->pro_class,
1118 ]
1119 );
1120
1121
1122 $this->add_control(
1123 'embedpress_pro_wistia_volume',
1124 [
1125 'label' => sprintf(__('Volume %s', 'embedpress'), $this->pro_text),
1126 'type' => Controls_Manager::SLIDER,
1127 'default' => [
1128 'size' => 100,
1129 ],
1130 'range' => [
1131 'px' => [
1132 'min' => 0,
1133 'max' => 100,
1134 ]
1135 ],
1136 'condition' => [
1137 'embedpress_pro_embeded_source' => 'wistia',
1138 'embedpress_pro_wistia_volume_control' => 'yes'
1139 ],
1140 'classes' => $this->pro_class,
1141 ]
1142 );
1143
1144 $this->add_control(
1145 'embedpress_pro_wistia_rewind',
1146 [
1147 'label' => __('Rewind', 'embedpress'),
1148 'type' => Controls_Manager::SWITCHER,
1149 'label_block' => false,
1150 'return_value' => 'yes',
1151 'default' => 'no',
1152 'condition' => [
1153 'embedpress_pro_embeded_source' => 'wistia'
1154 ],
1155 ]
1156 );
1157
1158 $this->add_control(
1159 'embedpress_pro_wistia_rewind_time',
1160 [
1161 'label' => __('Rewind time', 'embedpress'),
1162 'type' => Controls_Manager::SLIDER,
1163 'default' => [
1164 'size' => 10,
1165 ],
1166 'range' => [
1167 'px' => [
1168 'min' => 1,
1169 'max' => 100,
1170 ]
1171 ],
1172 'condition' => [
1173 'embedpress_pro_wistia_rewind' => 'yes',
1174 'embedpress_pro_embeded_source' => 'wistia'
1175 ],
1176 ]
1177 );
1178 $this->init_branding_controls('wistia');
1179 }
1180 //End Wistia controls
1181
1182
1183
1184 /**
1185 * Twitch Controls
1186 */
1187 public function init_twitch_control()
1188 {
1189 $condition = [
1190 'embedpress_pro_embeded_source' => 'twitch'
1191 ];
1192 $this->add_control(
1193 'embedpress_pro_twitch_autoplay',
1194 [
1195 'label' => __('Autoplay', 'embedpress'),
1196 'type' => Controls_Manager::SWITCHER,
1197 'label_off' => __('No', 'embedpress'),
1198 'label_on' => __('Yes', 'embedpress'),
1199 'default' => 'yes',
1200 'condition' => $condition,
1201 ]
1202 );
1203 $this->add_control(
1204 'embedpress_pro_fs',
1205 [
1206 'label' => __('Allow Full Screen Video', 'embedpress'),
1207 'type' => Controls_Manager::SWITCHER,
1208 'label_off' => __('No', 'embedpress'),
1209 'label_on' => __('Yes', 'embedpress'),
1210 'default' => 'yes',
1211 'condition' => $condition,
1212 ]
1213 );
1214
1215 // -- Twitch PRO controls --
1216 $this->add_control(
1217 'embedpress_pro_twitch_chat',
1218 [
1219 'label' => sprintf(__('Show Chat %s', 'embedpress'), $this->pro_text),
1220 'type' => Controls_Manager::SWITCHER,
1221 'label_off' => __('Hide', 'embedpress'),
1222 'label_on' => __('Show', 'embedpress'),
1223 'condition' => $condition,
1224 'classes' => $this->pro_class,
1225
1226 ]
1227 );
1228 $this->add_control(
1229 'embedpress_pro_twitch_mute',
1230 [
1231 'label' => __('Mute on start', 'embedpress'),
1232 'type' => Controls_Manager::SWITCHER,
1233 'label_off' => __('Hide', 'embedpress'),
1234 'label_on' => __('Show', 'embedpress'),
1235 'condition' => $condition,
1236 ]
1237 );
1238 $this->add_control(
1239 'embedpress_pro_twitch_theme',
1240 [
1241 'label' => __('Theme', 'embedpress'),
1242 'type' => Controls_Manager::SELECT,
1243 'default' => 'dark',
1244 'options' => [
1245 'dark' => __('Dark', 'embedpress'),
1246 'light' => __('Light', 'embedpress'),
1247 ],
1248 'condition' => $condition,
1249 ]
1250 );
1251
1252 $this->init_branding_controls('twitch');
1253 }
1254 //End Twitch controls
1255
1256
1257 /**
1258 * SoundCloud Controls
1259 */
1260 public function init_soundcloud_controls()
1261 {
1262 $this->add_control(
1263 'embedpress_pro_soundcloud_visual',
1264 [
1265 'label' => __('Visual Player', 'embedpress'),
1266 'type' => Controls_Manager::SWITCHER,
1267 'label_block' => false,
1268 'return_value' => 'yes',
1269 'default' => 'no',
1270 'label_off' => __('Hide', 'embedpress'),
1271 'label_on' => __('Show', 'embedpress'),
1272 'condition' => [
1273 'embedpress_pro_embeded_source' => 'soundcloud'
1274 ],
1275 ]
1276 );
1277
1278 $this->add_control(
1279 'embedpress_pro_soundcloud_color',
1280 [
1281 'label' => __('Scheme', 'embedpress'),
1282 'type' => Controls_Manager::COLOR,
1283 'label_block' => false,
1284 'default' => '#FF5500',
1285 'condition' => [
1286 'embedpress_pro_embeded_source' => 'soundcloud'
1287 ]
1288 ]
1289 );
1290
1291 $this->add_control(
1292 'embedpress_pro_soundcloud_autoplay',
1293 [
1294 'label' => __('Auto Play', 'embedpress'),
1295 'type' => Controls_Manager::SWITCHER,
1296 'label_block' => false,
1297 'return_value' => 'yes',
1298 'default' => 'no',
1299 'label_off' => __('Hide', 'embedpress'),
1300 'label_on' => __('Show', 'embedpress'),
1301 'condition' => [
1302 'embedpress_pro_embeded_source' => 'soundcloud'
1303 ],
1304 ]
1305 );
1306
1307
1308
1309 $this->add_control(
1310 'embedpress_pro_soundcloud_share_button',
1311 [
1312 'label' => __('Share Button', 'embedpress'),
1313 'type' => Controls_Manager::SWITCHER,
1314 'label_block' => false,
1315 'return_value' => 'yes',
1316 'default' => 'yes',
1317 'label_off' => __('Hide', 'embedpress'),
1318 'label_on' => __('Show', 'embedpress'),
1319 'condition' => [
1320 'embedpress_pro_embeded_source' => 'soundcloud'
1321 ],
1322 ]
1323 );
1324
1325 $this->add_control(
1326 'embedpress_pro_soundcloud_comments',
1327 [
1328 'label' => __('Comments', 'embedpress'),
1329 'type' => Controls_Manager::SWITCHER,
1330 'label_block' => false,
1331 'return_value' => 'yes',
1332 'default' => 'yes',
1333 'label_off' => __('Hide', 'embedpress'),
1334 'label_on' => __('Show', 'embedpress'),
1335 'condition' => [
1336 'embedpress_pro_embeded_source' => 'soundcloud'
1337 ],
1338 ]
1339 );
1340
1341
1342
1343 $this->add_control(
1344 'embedpress_pro_soundcloud_artwork',
1345 [
1346 'label' => __('Artwork', 'embedpress'),
1347 'type' => Controls_Manager::SWITCHER,
1348 'label_block' => false,
1349 'return_value' => 'yes',
1350 'default' => 'yes',
1351 'label_off' => __('Hide', 'embedpress'),
1352 'label_on' => __('Show', 'embedpress'),
1353 'condition' => [
1354 'embedpress_pro_embeded_source' => 'soundcloud',
1355 'embedpress_pro_soundcloud_visual!' => 'yes'
1356 ]
1357 ]
1358 );
1359
1360 $this->add_control(
1361 'embedpress_pro_soundcloud_play_count',
1362 [
1363 'label' => __('Play Count', 'embedpress'),
1364 'type' => Controls_Manager::SWITCHER,
1365 'label_block' => false,
1366 'return_value' => 'yes',
1367 'default' => 'yes',
1368 'label_off' => __('Hide', 'embedpress'),
1369 'label_on' => __('Show', 'embedpress'),
1370 'condition' => [
1371 'embedpress_pro_embeded_source' => 'soundcloud',
1372 'embedpress_pro_soundcloud_visual!' => 'yes'
1373 ],
1374 ]
1375 );
1376
1377 $this->add_control(
1378 'embedpress_pro_soundcloud_user_name',
1379 [
1380 'label' => __('User Name', 'embedpress'),
1381 'type' => Controls_Manager::SWITCHER,
1382 'label_block' => false,
1383 'return_value' => 'yes',
1384 'default' => 'yes',
1385 'label_off' => __('Hide', 'embedpress'),
1386 'label_on' => __('Show', 'embedpress'),
1387 'condition' => [
1388 'embedpress_pro_embeded_source' => 'soundcloud'
1389 ],
1390 ]
1391 );
1392
1393 $this->add_control(
1394 'embedpress_pro_soundcloud_buy_button',
1395 [
1396 'label' => sprintf(__('Buy Button %s', 'embedpress'), $this->pro_text),
1397 'type' => Controls_Manager::SWITCHER,
1398 'label_block' => false,
1399 'return_value' => 'yes',
1400 'default' => 'yes',
1401 'label_off' => __('Hide', 'embedpress'),
1402 'label_on' => __('Show', 'embedpress'),
1403 'condition' => [
1404 'embedpress_pro_embeded_source' => 'soundcloud'
1405 ],
1406 'classes' => $this->pro_class,
1407 ]
1408 );
1409 $this->add_control(
1410 'embedpress_pro_soundcloud_download_button',
1411 [
1412 'label' => sprintf(__('Download Button %s', 'embedpress'), $this->pro_text),
1413 'type' => Controls_Manager::SWITCHER,
1414 'label_block' => false,
1415 'return_value' => 'yes',
1416 'default' => 'yes',
1417 'label_off' => __('Hide', 'embedpress'),
1418 'label_on' => __('Show', 'embedpress'),
1419 'condition' => [
1420 'embedpress_pro_embeded_source' => 'soundcloud'
1421 ],
1422 'classes' => $this->pro_class,
1423 ]
1424 );
1425 }
1426 //End SoundCloud controls
1427
1428 /**
1429 * Vimeo Controls
1430 */
1431 public function init_vimeo_controls()
1432 {
1433
1434
1435
1436 $this->add_control(
1437 'embedpress_pro_vimeo_color',
1438 [
1439 'label' => __('Scheme', 'embedpress'),
1440 'type' => Controls_Manager::COLOR,
1441 'label_block' => false,
1442 'default' => '#00adef',
1443 'condition' => [
1444 'emberpress_custom_player!' => 'yes',
1445 'embedpress_pro_embeded_source' => 'vimeo'
1446 ]
1447 ]
1448 );
1449
1450 $this->add_control(
1451 'embedpress_pro_vimeo_author_options',
1452 [
1453 'label' => __('Author Information', 'embedpress'),
1454 'type' => Controls_Manager::HEADING,
1455 'separator' => 'before',
1456 'condition' => [
1457 'embedpress_pro_embeded_source' => 'vimeo',
1458 'emberpress_custom_player!' => 'yes',
1459 ]
1460 ]
1461 );
1462
1463 $this->add_control(
1464 'embedpress_pro_vimeo_display_title',
1465 [
1466 'label' => __('Title', 'embedpress'),
1467 'type' => Controls_Manager::SWITCHER,
1468 'label_block' => false,
1469 'return_value' => 'yes',
1470 'default' => 'yes',
1471 'condition' => [
1472 'emberpress_custom_player!' => 'yes',
1473 'embedpress_pro_embeded_source' => 'vimeo'
1474 ]
1475 ]
1476 );
1477
1478 //----- Vimeo PRO controls
1479
1480 $this->add_control(
1481 'embedpress_pro_vimeo_display_author',
1482 [
1483 'label' => __('Author', 'embedpress'),
1484 'type' => Controls_Manager::SWITCHER,
1485 'label_block' => false,
1486 'return_value' => 'yes',
1487 'default' => 'yes',
1488 'condition' => [
1489 'emberpress_custom_player!' => 'yes',
1490 'embedpress_pro_embeded_source' => 'vimeo'
1491 ],
1492 ]
1493 );
1494
1495 $this->add_control(
1496 'embedpress_pro_vimeo_avatar',
1497 [
1498 'label' => __('Avatar', 'embedpress'),
1499 'type' => Controls_Manager::SWITCHER,
1500 'label_block' => false,
1501 'return_value' => 'yes',
1502 'default' => 'yes',
1503 'condition' => [
1504 'emberpress_custom_player!' => 'yes',
1505 'embedpress_pro_embeded_source' => 'vimeo'
1506 ],
1507 ]
1508 );
1509
1510 $this->add_control(
1511 'embedpress_pro_vimeo_loop',
1512 [
1513 'label' => sprintf(__('Loop %s', 'embedpress'), $this->pro_text),
1514 'type' => Controls_Manager::SWITCHER,
1515 'label_block' => false,
1516 'return_value' => 'yes',
1517 'default' => 'no',
1518 'condition' => [
1519 'emberpress_custom_player!' => 'yes',
1520 'embedpress_pro_embeded_source' => 'vimeo'
1521 ],
1522 'classes' => $this->pro_class,
1523 ]
1524 );
1525
1526 $this->init_branding_controls('vimeo');
1527 }
1528 //End Vimeo controls
1529
1530
1531 /**
1532 * Spotify Controls
1533 */
1534 public function init_spotify_controls()
1535 {
1536 $condition = [
1537 'embedpress_pro_embeded_source' => 'spotify'
1538 ];
1539
1540 $this->add_control(
1541 'spotify_theme',
1542 [
1543 'label' => __('Player Background', 'embedpress'),
1544 'description' => __('Dynamic option will use the most vibrant color from the album art.', 'embedpress'),
1545 'type' => Controls_Manager::SELECT,
1546 'label_block' => false,
1547 'default' => '1',
1548 'options' => [
1549 '1' => __('Dynamic', 'embedpress'),
1550 '0' => __('Black & White', 'embedpress')
1551 ],
1552 'condition' => $condition
1553 ]
1554 );
1555 }
1556 //End Spotify controls
1557
1558 /**
1559 * OpenSea Controls
1560 */
1561 public function init_opensea_control()
1562 {
1563 $condition = [
1564 'embedpress_pro_embeded_source' => 'opensea'
1565 ];
1566
1567 $this->add_control(
1568 'limit',
1569 [
1570 'type' => \Elementor\Controls_Manager::NUMBER,
1571 'label' => esc_html__('Limit', 'embedpress'),
1572 'placeholder' => '9',
1573 'min' => 1,
1574 'max' => 100,
1575 'step' => 1,
1576 'default' => 20,
1577 'condition' => [
1578 'embedpress_pro_embeded_nft_type' => ['collection'],
1579 'embedpress_pro_embeded_source!' => [
1580 'default',
1581 'youtube',
1582 'vimeo',
1583 'dailymotion',
1584 'wistia',
1585 'twitch',
1586 'soundcloud',
1587 'calendly',
1588 'selfhosted_video',
1589 'selfhosted_audio',
1590 ],
1591 ],
1592 ]
1593 );
1594
1595
1596 $this->add_control(
1597 'orderby',
1598 [
1599 'type' => \Elementor\Controls_Manager::SELECT,
1600 'label' => esc_html__('Order By', 'embedpress'),
1601 'options' => [
1602 'asc' => esc_html__('Oldest', 'embedpress'),
1603 'desc' => esc_html__('Newest', 'embedpress'),
1604 ],
1605 'default' => 'desc',
1606 'condition' => [
1607 'embedpress_pro_embeded_nft_type' => ['collection'],
1608 'embedpress_pro_embeded_source!' => [
1609 'default',
1610 'youtube',
1611 'vimeo',
1612 'dailymotion',
1613 'wistia',
1614 'twitch',
1615 'soundcloud',
1616 'calendly',
1617 'selfhosted_video',
1618 'selfhosted_audio',
1619 ],
1620 ],
1621 ]
1622 );
1623 }
1624
1625 public function init_opensea_control_section()
1626 {
1627 $condition = [
1628 'embedpress_pro_embeded_source' => 'opensea',
1629 ];
1630
1631 $this->start_controls_section(
1632 'embedpress_opensea_control_section',
1633 [
1634 'label' => __('OpenSea Control Settings', 'embedpress'),
1635 'condition' => $condition,
1636 ]
1637 );
1638
1639 $this->add_control(
1640 'opense_important_note_single',
1641 [
1642 'type' => \Elementor\Controls_Manager::RAW_HTML,
1643 'raw' => esc_html__('These options take effect only when a Opensea Single Asset is embedded.', 'embedpress'),
1644 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
1645 'condition' => [
1646 'embedpress_pro_embeded_nft_type' => 'single'
1647 ],
1648
1649 ]
1650 );
1651 $this->add_control(
1652 'opense_important_note_collection',
1653 [
1654 'type' => \Elementor\Controls_Manager::RAW_HTML,
1655 'raw' => esc_html__('These options take effect only when a Opensea Collection is embedded.', 'embedpress'),
1656 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
1657 'condition' => [
1658 'embedpress_pro_embeded_nft_type' => 'collection'
1659 ],
1660 ]
1661 );
1662
1663 $this->add_control(
1664 'layout',
1665 [
1666 'label' => __('Layout', 'embedpress'),
1667 'type' => \Elementor\Controls_Manager::SELECT,
1668 'label_block' => false,
1669 'default' => 'ep-grid',
1670 'options' => [
1671 'ep-grid' => esc_html__('Grid', 'embedpress'),
1672 'ep-list' => esc_html__('List', 'embedpress'),
1673 ],
1674 'conditions' => [
1675 'terms' => [
1676 [
1677 'name' => 'embedpress_pro_embeded_nft_type',
1678 'operator' => '===',
1679 'value' => 'collection',
1680 ],
1681 ],
1682 ]
1683
1684 ]
1685 );
1686
1687
1688 $this->add_control(
1689 'preset',
1690 [
1691 'label' => __('Preset', 'embedpress'),
1692 'type' => \Elementor\Controls_Manager::SELECT,
1693 'label_block' => false,
1694 'default' => 'ep-preset-1',
1695 'options' => [
1696 'ep-preset-1' => esc_html__('Preset 1', 'embedpress'),
1697 'ep-preset-2' => esc_html__('Preset 2', 'embedpress'),
1698 ],
1699 'conditions' => [
1700 'terms' => [
1701 [
1702 'name' => 'embedpress_pro_embeded_nft_type',
1703 'operator' => '===',
1704 'value' => 'collection',
1705 'relation' => 'and'
1706 ],
1707 [
1708 'name' => 'layout',
1709 'operator' => '===',
1710 'value' => 'ep-grid',
1711 'relation' => 'and'
1712 ],
1713 ],
1714 ]
1715
1716 ]
1717 );
1718
1719 $this->add_control(
1720 'nftperrow',
1721 [
1722 'label' => __('Column', 'embedpress'),
1723 'type' => \Elementor\Controls_Manager::SELECT,
1724 'label_block' => false,
1725 'default' => '3',
1726 'options' => [
1727 '1' => esc_html__('1', 'embedpress'),
1728 '2' => esc_html__('2', 'embedpress'),
1729 '3' => esc_html__('3', 'embedpress'),
1730 '4' => esc_html__('4', 'embedpress'),
1731 '5' => esc_html__('5', 'embedpress'),
1732 '6' => esc_html__('6', 'embedpress'),
1733 'auto' => esc_html__('Auto', 'embedpress'),
1734 ],
1735 'condition' => [
1736 'embedpress_pro_embeded_nft_type' => ['collection']
1737 ],
1738
1739 ]
1740 );
1741
1742 $this->add_control(
1743 'gapbetweenitem',
1744 [
1745 'label' => esc_html__('Gap Between Item', 'embedpress'),
1746 'type' => \Elementor\Controls_Manager::SLIDER,
1747 'size_units' => ['px'],
1748 'range' => [
1749 'px' => [
1750 'min' => 1,
1751 'max' => 100,
1752 'step' => 1,
1753 ],
1754 ],
1755 'default' => [
1756 'unit' => 'px',
1757 'size' => 15,
1758 ],
1759 'condition' => [
1760 'embedpress_pro_embeded_nft_type' => ['collection']
1761 ],
1762 ]
1763 );
1764
1765 $this->add_control(
1766 'collectionname',
1767 [
1768 'label' => __('Collection Name', 'embedpress'),
1769 'type' => Controls_Manager::SWITCHER,
1770 'label_block' => false,
1771 'return_value' => 'yes',
1772 'label_off' => __('Hide', 'embedpress'),
1773 'label_on' => __('Show', 'embedpress'),
1774 'default' => 'yes',
1775 'condition' => [
1776 'embedpress_pro_embeded_nft_type' => 'single'
1777 ],
1778 ]
1779 );
1780 $this->add_control(
1781 'nftimage',
1782 [
1783 'label' => __('Thumbnail', 'embedpress'),
1784 'type' => Controls_Manager::SWITCHER,
1785 'label_block' => false,
1786 'return_value' => 'yes',
1787 'label_off' => __('Hide', 'embedpress'),
1788 'label_on' => __('Show', 'embedpress'),
1789 'default' => 'yes',
1790 'condition' => $condition,
1791 ]
1792 );
1793 $this->add_control(
1794 'nfttitle',
1795 [
1796 'label' => __('Title', 'embedpress'),
1797 'type' => Controls_Manager::SWITCHER,
1798 'label_block' => false,
1799 'return_value' => 'yes',
1800 'default' => '',
1801 'label_off' => __('Hide', 'embedpress'),
1802 'label_on' => __('Show', 'embedpress'),
1803 'default' => 'yes',
1804 'condition' => $condition,
1805 ]
1806 );
1807 $this->add_control(
1808 'nftcreator',
1809 [
1810 'label' => __('Creator', 'embedpress'),
1811 'type' => Controls_Manager::SWITCHER,
1812 'label_block' => false,
1813 'return_value' => 'yes',
1814 'default' => '',
1815 'label_off' => __('Hide', 'embedpress'),
1816 'label_on' => __('Show', 'embedpress'),
1817 'default' => 'yes',
1818 'condition' => $condition,
1819 ]
1820 );
1821
1822 $this->add_control(
1823 'prefix_nftcreator',
1824 [
1825 'label' => sprintf(__('Prefix %s', 'embedpress'), $this->pro_text),
1826 'type' => \Elementor\Controls_Manager::TEXT,
1827 'default' => esc_html__('Created By', 'embedpress'),
1828 'placeholder' => esc_html__('Created By', 'embedpress'),
1829 'classes' => $this->pro_class,
1830 'condition' => [
1831 'nftcreator' => 'yes',
1832 ]
1833 ]
1834 );
1835
1836 $this->add_control(
1837 'nftprice',
1838 [
1839 'label' => __('Current Price', 'embedpress'),
1840 'type' => Controls_Manager::SWITCHER,
1841 'label_block' => false,
1842 'return_value' => 'yes',
1843 'default' => '',
1844 'label_off' => __('Hide', 'embedpress'),
1845 'label_on' => __('Show', 'embedpress'),
1846 'default' => 'yes',
1847 'condition' => $condition,
1848 ]
1849 );
1850
1851 $this->add_control(
1852 'prefix_nftprice',
1853 [
1854 'label' => sprintf(__('Prefix %s', 'embedpress'), $this->pro_text),
1855 'type' => \Elementor\Controls_Manager::TEXT,
1856 'default' => esc_html__('Current Price', 'embedpress'),
1857 'placeholder' => esc_html__('Current Price', 'embedpress'),
1858 'classes' => $this->pro_class,
1859 'condition' => [
1860 'nftprice' => 'yes',
1861 ]
1862 ]
1863 );
1864
1865 $this->add_control(
1866 'nftlastsale',
1867 [
1868 'label' => __('Last Sale', 'embedpress'),
1869 'type' => Controls_Manager::SWITCHER,
1870 'label_block' => false,
1871 'return_value' => 'yes',
1872 'default' => '',
1873 'label_off' => __('Hide', 'embedpress'),
1874 'label_on' => __('Show', 'embedpress'),
1875 'default' => 'yes',
1876 'condition' => $condition,
1877 ]
1878 );
1879
1880 $this->add_control(
1881 'prefix_nftlastsale',
1882 [
1883 'label' => sprintf(__('Prefix %s', 'embedpress'), $this->pro_text),
1884 'type' => \Elementor\Controls_Manager::TEXT,
1885 'default' => esc_html__('Last Sale', 'embedpress'),
1886 'placeholder' => esc_html__('Last Sale', 'embedpress'),
1887 'classes' => $this->pro_class,
1888 'condition' => [
1889 'nftlastsale' => 'yes',
1890 ]
1891 ]
1892 );
1893
1894 $this->add_control(
1895 'nftbutton',
1896 [
1897 'label' => __('Button', 'embedpress'),
1898 'type' => Controls_Manager::SWITCHER,
1899 'label_block' => false,
1900 'return_value' => 'yes',
1901 'default' => '',
1902 'label_off' => __('Hide', 'embedpress'),
1903 'label_on' => __('Show', 'embedpress'),
1904 'default' => 'yes',
1905 'condition' => $condition,
1906 ]
1907 );
1908 $this->add_control(
1909 'label_nftbutton',
1910 [
1911 'label' => sprintf(__('Button Label %s', 'embedpress'), $this->pro_text),
1912 'type' => \Elementor\Controls_Manager::TEXT,
1913 'default' => esc_html__('See Details', 'embedpress'),
1914 'placeholder' => esc_html__('See Details', 'embedpress'),
1915 'classes' => $this->pro_class,
1916 'condition' => [
1917 'nftbutton' => 'yes',
1918 ]
1919 ]
1920 );
1921
1922 $this->add_control(
1923 'loadmore',
1924 [
1925 'label' => sprintf(__('Load More %s', 'embedpress'), $this->pro_text),
1926 'type' => Controls_Manager::SWITCHER,
1927 'label_block' => false,
1928 'return_value' => 'yes',
1929 'default' => '',
1930 'label_off' => __('Hide', 'embedpress'),
1931 'label_on' => __('Show', 'embedpress'),
1932 'default' => '',
1933 'classes' => $this->pro_class,
1934 'condition' => [
1935 'embedpress_pro_embeded_nft_type' => ['collection']
1936 ],
1937 ]
1938 );
1939 $this->add_control(
1940 'itemperpage',
1941 [
1942 'type' => \Elementor\Controls_Manager::NUMBER,
1943 'label' => esc_html__('Item Per Page', 'embedpress'),
1944 'placeholder' => '9',
1945 'min' => 1,
1946 'max' => 100,
1947 'step' => 1,
1948 'default' => 9,
1949 'condition' => [
1950 'loadmore' => 'yes'
1951 ],
1952 ]
1953 );
1954 $this->add_control(
1955 'loadmorelabel',
1956 [
1957 'type' => \Elementor\Controls_Manager::TEXT,
1958 'label' => esc_html__('Load More Label', 'embedpress'),
1959 'placeholder' => 'Load More',
1960 'default' => 'Load More',
1961 'condition' => [
1962 'loadmore' => 'yes'
1963 ],
1964 ]
1965 );
1966
1967 $this->add_control(
1968 'nftrank',
1969 [
1970 'label' => __('Rank', 'embedpress'),
1971 'type' => Controls_Manager::SWITCHER,
1972 'label_block' => false,
1973 'return_value' => 'yes',
1974 'label_off' => __('Hide', 'embedpress'),
1975 'label_on' => __('Show', 'embedpress'),
1976 'default' => 'yes',
1977 'condition' => [
1978 'embedpress_pro_embeded_nft_type' => 'single'
1979 ],
1980 ]
1981 );
1982 $this->add_control(
1983 'label_nftrank',
1984 [
1985 'label' => sprintf(__('Rank Label %s', 'embedpress'), $this->pro_text),
1986 'type' => \Elementor\Controls_Manager::TEXT,
1987 'default' => esc_html__('Rank', 'embedpress'),
1988 'placeholder' => esc_html__('Rank', 'embedpress'),
1989 'classes' => $this->pro_class,
1990 'condition' => [
1991 'nftrank' => 'yes',
1992 'embedpress_pro_embeded_nft_type!' => 'collection'
1993 ]
1994 ]
1995 );
1996
1997 $this->add_control(
1998 'nftdetails',
1999 [
2000 'label' => __('Details', 'embedpress'),
2001 'type' => Controls_Manager::SWITCHER,
2002 'label_block' => false,
2003 'return_value' => 'yes',
2004 'label_off' => __('Hide', 'embedpress'),
2005 'label_on' => __('Show', 'embedpress'),
2006 'default' => 'yes',
2007 'condition' => [
2008 'embedpress_pro_embeded_nft_type' => 'single'
2009 ],
2010 ]
2011 );
2012
2013 $this->add_control(
2014 'label_nftdetails',
2015 [
2016 'label' => sprintf(__('Details Label %s', 'embedpress'), $this->pro_text),
2017 'type' => \Elementor\Controls_Manager::TEXT,
2018 'default' => esc_html__('Details', 'embedpress'),
2019 'placeholder' => esc_html__('Details', 'embedpress'),
2020 'classes' => $this->pro_class,
2021 'condition' => [
2022 'nftdetails' => 'yes',
2023 'embedpress_pro_embeded_nft_type!' => 'collection'
2024 ]
2025 ]
2026 );
2027
2028 $this->end_controls_section();
2029 }
2030
2031 public function init_opensea_color_and_typography()
2032 {
2033 $condition = [
2034 'embedpress_pro_embeded_source' => 'opensea',
2035 ];
2036
2037 $this->start_controls_section(
2038 'embedpress_color_typography_control_section',
2039 [
2040 'label' => __('Color and Typography', 'embedpress'),
2041 'tab' => Controls_Manager::TAB_STYLE,
2042 'condition' => $condition,
2043 ]
2044 );
2045
2046 $this->add_control(
2047 'opense_color_important_note_single',
2048 [
2049 'type' => \Elementor\Controls_Manager::RAW_HTML,
2050 'raw' => esc_html__('These options take effect only when a Opensea Single Asset is embedded.', 'embedpress'),
2051 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
2052 'condition' => [
2053 'embedpress_pro_embeded_nft_type' => 'single'
2054 ],
2055
2056 ]
2057 );
2058 $this->add_control(
2059 'opense_color_important_note_collection',
2060 [
2061 'type' => \Elementor\Controls_Manager::RAW_HTML,
2062 'raw' => esc_html__('These options take effect only when a Opensea Collection is embedded.', 'embedpress'),
2063 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
2064 'condition' => [
2065 'embedpress_pro_embeded_nft_type' => 'collection'
2066 ],
2067 ]
2068 );
2069
2070
2071 $this->add_control(
2072 'item_heading',
2073 [
2074 'label' => esc_html__('Item', 'embedpress'),
2075 'type' => \Elementor\Controls_Manager::HEADING,
2076 'separator' => 'before',
2077 ]
2078 );
2079
2080 $this->add_control(
2081 'nft_item_background_color',
2082 [
2083 'label' => esc_html__('Background Color', 'embedpress'),
2084 'type' => \Elementor\Controls_Manager::COLOR,
2085 'selectors' => [
2086 '{{WRAPPER}} .ep_nft_content_wrap .ep_nft_item' => 'background-color: {{VALUE}}',
2087 ],
2088 ]
2089 );
2090
2091 $this->add_control(
2092 'collectionname_heading',
2093 [
2094 'label' => esc_html__('Collection Name', 'embedpress'),
2095 'type' => \Elementor\Controls_Manager::HEADING,
2096 'separator' => 'before',
2097 ]
2098 );
2099
2100 $this->add_control(
2101 'nft_collectionname_color',
2102 [
2103 'label' => esc_html__('Color', 'embedpress'),
2104 'type' => \Elementor\Controls_Manager::COLOR,
2105 'selectors' => [
2106 '{{WRAPPER}} .ep-nft-single-item-wraper a.CollectionLink--link' => 'color: {{VALUE}}',
2107 ],
2108 ]
2109 );
2110 $this->add_control(
2111 'nft_collectionname_hover_color',
2112 [
2113 'label' => esc_html__('Hove Color', 'embedpress'),
2114 'type' => \Elementor\Controls_Manager::COLOR,
2115 'selectors' => [
2116 '{{WRAPPER}} .ep-nft-single-item-wraper a.CollectionLink--link:hover' => 'color: {{VALUE}}',
2117 ],
2118 ]
2119 );
2120 $this->add_group_control(
2121 \Elementor\Group_Control_Typography::get_type(),
2122 [
2123 'name' => 'nft_collectionname_typography',
2124 'selector' => '{{WRAPPER}} .ep-nft-single-item-wraper a.CollectionLink--link',
2125 ]
2126 );
2127
2128 $this->add_control(
2129 'title_heading',
2130 [
2131 'label' => esc_html__('Title', 'embedpress'),
2132 'type' => \Elementor\Controls_Manager::HEADING,
2133 'separator' => 'before',
2134 ]
2135 );
2136
2137 $this->add_control(
2138 'nft_title_color',
2139 [
2140 'label' => esc_html__('Color', 'embedpress'),
2141 'type' => \Elementor\Controls_Manager::COLOR,
2142 'selectors' => [
2143 '{{WRAPPER}} .ep_nft_title' => 'color: {{VALUE}}',
2144 ],
2145 ]
2146 );
2147 $this->add_group_control(
2148 \Elementor\Group_Control_Typography::get_type(),
2149 [
2150 'name' => 'nft_title_typography',
2151 'selector' => '{{WRAPPER}} .ep_nft_title',
2152 ]
2153 );
2154
2155
2156 $this->add_control(
2157 'creator_heading',
2158 [
2159 'label' => esc_html__('Creator', 'embedpress'),
2160 'type' => \Elementor\Controls_Manager::HEADING,
2161 'separator' => 'before',
2162 ]
2163 );
2164
2165 $this->add_control(
2166 'nft_creator_color',
2167 [
2168 'label' => esc_html__('Color', 'embedpress'),
2169 'type' => \Elementor\Controls_Manager::COLOR,
2170 'selectors' => [
2171 '{{WRAPPER}} .ep_nft_creator span' => 'color: {{VALUE}}',
2172 ],
2173 ]
2174 );
2175 $this->add_group_control(
2176 \Elementor\Group_Control_Typography::get_type(),
2177 [
2178 'name' => 'nft_creator_typography',
2179 'selector' => '{{WRAPPER}} .ep_nft_creator span',
2180 ]
2181 );
2182
2183 $this->add_control(
2184 'nft_created_by_color',
2185 [
2186 'label' => esc_html__('Link Color', 'embedpress'),
2187 'type' => \Elementor\Controls_Manager::COLOR,
2188 'selectors' => [
2189 '{{WRAPPER}} .ep_nft_creator span a' => 'color: {{VALUE}}',
2190 ],
2191 ]
2192 );
2193 $this->add_group_control(
2194 \Elementor\Group_Control_Typography::get_type(),
2195 [
2196 'label' => esc_html__('Link Typography', 'embedpress'),
2197 'name' => 'nft_created_by_typography',
2198 'selector' => '{{WRAPPER}} .ep_nft_creator span a',
2199 ]
2200 );
2201
2202 $this->add_control(
2203 'price_heading',
2204 [
2205 'label' => esc_html__('Current Price', 'embedpress'),
2206 'type' => \Elementor\Controls_Manager::HEADING,
2207 'separator' => 'before',
2208 ]
2209 );
2210
2211 $this->add_control(
2212 'nft_price_color',
2213 [
2214 'label' => esc_html__('Color', 'embedpress'),
2215 'type' => \Elementor\Controls_Manager::COLOR,
2216 'selectors' => [
2217 '{{WRAPPER}} .ep_current_price span' => 'color: {{VALUE}}',
2218 ],
2219 ]
2220 );
2221
2222 $this->add_group_control(
2223 \Elementor\Group_Control_Typography::get_type(),
2224 [
2225 'name' => 'nft_price_typography',
2226 'selector' => '{{WRAPPER}} .ep_current_price span',
2227 ]
2228 );
2229 $this->add_control(
2230 'last_sale_heading',
2231 [
2232 'label' => esc_html__('Last Sale Price', 'embedpress'),
2233 'type' => \Elementor\Controls_Manager::HEADING,
2234 'separator' => 'before',
2235 ]
2236 );
2237
2238 $this->add_control(
2239 'nft_last_sale_color',
2240 [
2241 'label' => esc_html__('Color', 'embedpress'),
2242 'type' => \Elementor\Controls_Manager::COLOR,
2243 'selectors' => [
2244 '{{WRAPPER}} .ep_nft_last_sale span' => 'color: {{VALUE}}',
2245 ],
2246 ]
2247 );
2248 $this->add_group_control(
2249 \Elementor\Group_Control_Typography::get_type(),
2250 [
2251 'name' => 'nft_last_sale_typography',
2252 'selector' => '{{WRAPPER}} .ep_nft_last_sale span',
2253 ]
2254 );
2255 $this->add_control(
2256 'nftbutton_heading',
2257 [
2258 'label' => esc_html__('Button', 'embedpress'),
2259 'type' => \Elementor\Controls_Manager::HEADING,
2260 'separator' => 'before',
2261 ]
2262 );
2263
2264
2265 $this->add_control(
2266 'nftbutton_color',
2267 [
2268 'label' => esc_html__('Color', 'embedpress'),
2269 'type' => \Elementor\Controls_Manager::COLOR,
2270 'selectors' => [
2271 '{{WRAPPER}} .ep-nft-gallery-wrapper.ep-nft-gallery-r1a5mbx .ep_nft_button a' => 'color: {{VALUE}}',
2272 ],
2273 ]
2274 );
2275 $this->add_control(
2276 'nftbutton_bg_color',
2277 [
2278 'label' => esc_html__('Background Color', 'embedpress'),
2279 'type' => \Elementor\Controls_Manager::COLOR,
2280 'selectors' => [
2281 '{{WRAPPER}} .ep-nft-gallery-wrapper.ep-nft-gallery-r1a5mbx .ep_nft_button a' => 'background-color: {{VALUE}}',
2282 ],
2283 ]
2284 );
2285 $this->add_group_control(
2286 \Elementor\Group_Control_Typography::get_type(),
2287 [
2288 'name' => 'nftbutton_typography',
2289 'selector' => '{{WRAPPER}} .ep-nft-gallery-wrapper.ep-nft-gallery-r1a5mbx .ep_nft_button a',
2290 ]
2291 );
2292 $this->add_control(
2293 'nft_loadmore_style',
2294 [
2295 'label' => esc_html__('Load More', 'embedpress'),
2296 'type' => \Elementor\Controls_Manager::HEADING,
2297 'separator' => 'before',
2298 'condition' => [
2299 'loadmore' => 'yes',
2300 'embedpress_pro_embeded_nft_type' => 'collection'
2301 ]
2302 ]
2303 );
2304
2305 $this->add_control(
2306 'nft_loadmore_color',
2307 [
2308 'label' => esc_html__('Text Color', 'embedpress'),
2309 'type' => \Elementor\Controls_Manager::COLOR,
2310 'selectors' => [
2311 '{{WRAPPER}} .nft-loadmore' => 'color: {{VALUE}}!important;',
2312 '{{WRAPPER}} .nft-loadmore svg' => 'fill: {{VALUE}}!important;',
2313 ],
2314 'condition' => [
2315 'loadmore' => 'yes',
2316 'embedpress_pro_embeded_nft_type' => 'collection'
2317 ]
2318 ]
2319 );
2320 $this->add_group_control(
2321 \Elementor\Group_Control_Typography::get_type(),
2322 [
2323 'name' => 'nft_loadmore_typography',
2324 'selector' => '{{WRAPPER}} .nft-loadmore, {{WRAPPER}} .nft-loadmore svg',
2325 'condition' => [
2326 'loadmore' => 'yes',
2327 'embedpress_pro_embeded_nft_type' => 'collection'
2328 ]
2329 ]
2330 );
2331 $this->add_control(
2332 'nft_loadmore_bgcolor',
2333 [
2334 'label' => esc_html__('Background Color', 'embedpress'),
2335 'type' => \Elementor\Controls_Manager::COLOR,
2336 'selectors' => [
2337 '{{WRAPPER}} .nft-loadmore' => 'background-color: {{VALUE}}!important;',
2338 ],
2339 'condition' => [
2340 'loadmore' => 'yes',
2341 'embedpress_pro_embeded_nft_type' => 'collection'
2342 ]
2343 ]
2344 );
2345
2346 $this->add_control(
2347 'nftrank_heading',
2348 [
2349 'label' => esc_html__('Rank', 'embedpress'),
2350 'type' => \Elementor\Controls_Manager::HEADING,
2351 'separator' => 'before',
2352 'condition' => [
2353 'nftrank' => 'yes',
2354 'embedpress_pro_embeded_nft_type!' => 'collection'
2355 ]
2356 ]
2357 );
2358
2359 $this->add_control(
2360 'nftrank_label_color',
2361 [
2362 'label' => esc_html__('Label Color', 'embedpress'),
2363 'type' => \Elementor\Controls_Manager::COLOR,
2364 'selectors' => [
2365 '{{WRAPPER}} .ep-nft-single-item-wraper .ep-nft-rank-wraper' => 'color: {{VALUE}}!important;',
2366 ],
2367 'condition' => [
2368 'nftrank' => 'yes',
2369 'embedpress_pro_embeded_nft_type!' => 'collection'
2370 ]
2371 ]
2372 );
2373 $this->add_group_control(
2374 \Elementor\Group_Control_Typography::get_type(),
2375 [
2376 'name' => 'nftrank_label_typography',
2377 'selector' => '{{WRAPPER}} .ep-nft-single-item-wraper .ep-nft-rank-wraper ',
2378 'condition' => [
2379 'nftrank' => 'yes',
2380 'embedpress_pro_embeded_nft_type!' => 'collection'
2381 ]
2382 ]
2383 );
2384 $this->add_control(
2385 'nftrank_color',
2386 [
2387 'label' => esc_html__('Rank Color', 'embedpress'),
2388 'type' => \Elementor\Controls_Manager::COLOR,
2389 'selectors' => [
2390 '{{WRAPPER}} .ep-nft-single-item-wraper .ep-nft-rank-wraper span.ep-nft-rank' => 'color: {{VALUE}}!important;',
2391 ],
2392 'condition' => [
2393 'nftrank' => 'yes',
2394 'embedpress_pro_embeded_nft_type!' => 'collection'
2395 ]
2396 ]
2397 );
2398 $this->add_control(
2399 'nftrank_border_color',
2400 [
2401 'label' => esc_html__('Border Color', 'embedpress'),
2402 'type' => \Elementor\Controls_Manager::COLOR,
2403 'selectors' => [
2404 '{{WRAPPER}} .ep-nft-single-item-wraper .ep-nft-rank-wraper span.ep-nft-rank' => 'border-color: {{VALUE}}!important',
2405 ],
2406 'condition' => [
2407 'nftrank' => 'yes',
2408 'embedpress_pro_embeded_nft_type!' => 'collection'
2409 ]
2410 ]
2411 );
2412 $this->add_group_control(
2413 \Elementor\Group_Control_Typography::get_type(),
2414 [
2415 'name' => 'nftrank_typography',
2416 'selector' => '{{WRAPPER}} .ep-nft-single-item-wraper .ep-nft-rank-wraper span.ep-nft-rank',
2417 'condition' => [
2418 'nftrank' => 'yes',
2419 'embedpress_pro_embeded_nft_type!' => 'collection'
2420 ]
2421 ]
2422 );
2423
2424
2425
2426 $this->add_control(
2427 'nftdetails_heading',
2428 [
2429 'label' => esc_html__('Details', 'embedpress'),
2430 'type' => \Elementor\Controls_Manager::HEADING,
2431 'separator' => 'before',
2432 'condition' => [
2433 'nftrank' => 'yes',
2434 'embedpress_pro_embeded_nft_type!' => 'collection'
2435 ]
2436 ]
2437 );
2438
2439 $this->add_control(
2440 'nftdetail_title_color',
2441 [
2442 'label' => esc_html__('Title Color', 'embedpress'),
2443 'type' => \Elementor\Controls_Manager::COLOR,
2444 'selectors' => [
2445 '{{WRAPPER}} .ep-title' => 'color: {{VALUE}}',
2446 ],
2447 'condition' => [
2448 'nftrank' => 'yes',
2449 'embedpress_pro_embeded_nft_type!' => 'collection'
2450 ]
2451 ]
2452 );
2453 $this->add_group_control(
2454 \Elementor\Group_Control_Typography::get_type(),
2455 [
2456 'label' => esc_html__('Title Typography', 'embedpress'),
2457 'name' => 'nftdetail_title_typography',
2458 'selector' => '{{WRAPPER}} .ep-title',
2459 'condition' => [
2460 'nftrank' => 'yes',
2461 'embedpress_pro_embeded_nft_type!' => 'collection'
2462 ]
2463 ]
2464 );
2465
2466 $this->add_control(
2467 'nftdetail_color',
2468 [
2469 'label' => esc_html__('Content Color', 'embedpress'),
2470 'type' => \Elementor\Controls_Manager::COLOR,
2471 'selectors' => [
2472 '{{WRAPPER}} .ep-asset-detail-item' => 'color: {{VALUE}}',
2473 ],
2474 'condition' => [
2475 'nftrank' => 'yes',
2476 'embedpress_pro_embeded_nft_type!' => 'collection'
2477 ]
2478 ]
2479 );
2480 $this->add_group_control(
2481 \Elementor\Group_Control_Typography::get_type(),
2482 [
2483 'label' => esc_html__('Content Typography', 'embedpress'),
2484 'name' => 'nftdetail_typography',
2485 'selector' => '{{WRAPPER}} .ep-asset-detail-item',
2486 'condition' => [
2487 'nftrank' => 'yes',
2488 'embedpress_pro_embeded_nft_type!' => 'collection'
2489 ]
2490 ]
2491 );
2492
2493 $this->add_control(
2494 'nftdetail_link_color',
2495 [
2496 'label' => esc_html__('Link Color', 'embedpress'),
2497 'type' => \Elementor\Controls_Manager::COLOR,
2498 'selectors' => [
2499 '{{WRAPPER}} .ep-asset-detail-item a' => 'color: {{VALUE}}',
2500 ],
2501 'condition' => [
2502 'nftrank' => 'yes',
2503 'embedpress_pro_embeded_nft_type!' => 'collection'
2504 ]
2505 ]
2506 );
2507 $this->add_group_control(
2508 \Elementor\Group_Control_Typography::get_type(),
2509 [
2510 'name' => 'nftdetail_link_typography',
2511 'selector' => '{{WRAPPER}} .ep-asset-detail-item a, .ep-asset-detail-item',
2512 'condition' => [
2513 'nftrank' => 'yes',
2514 'embedpress_pro_embeded_nft_type!' => 'collection'
2515 ]
2516 ]
2517 );
2518
2519
2520 $this->end_controls_section();
2521 }
2522 //End OpenSea controls
2523
2524 /**
2525 * Calendly Controls
2526 */
2527
2528 public function init_calendly_control_section(){
2529
2530 $condition = [
2531 'embedpress_pro_embeded_source' => 'calendly',
2532 ];
2533
2534 $this->start_controls_section(
2535 'embedpress_calendly_control_section',
2536 [
2537 'label' => __('Calendly Controls', 'embedpress'),
2538 'condition' => $condition,
2539 ]
2540 );
2541 $this->add_control(
2542 'cEmbedType',
2543 [
2544 'label' => __( 'Embed Type', 'embedpress' ),
2545 'type' => \Elementor\Controls_Manager::SELECT,
2546 'default' => 'inline',
2547 'options' => [
2548 'inline' => __( 'Inline', 'embedpress' ),
2549 'popup_button' => __( 'Popup Button', 'embedpress' ),
2550 ],
2551 'condition' => $condition
2552 ]
2553 );
2554 $this->add_control(
2555 'popupControlsHeadding',
2556 [
2557 'label' => esc_html__( 'Popup Button Settings', 'embedpress' ),
2558 'type' => \Elementor\Controls_Manager::HEADING,
2559 'separator' => 'before',
2560 'condition' => [
2561 'embedpress_pro_embeded_source' => 'calendly',
2562 'cEmbedType' => 'popup_button'
2563 ]
2564 ]
2565 );
2566 $this->add_control(
2567 'cPopupButtonText',
2568 [
2569 'label' => __( 'Button Text', 'embedpress' ),
2570 'type' => \Elementor\Controls_Manager::TEXT,
2571 'label_block' => true,
2572 'default' => 'Schedule time with me',
2573 'condition' => [
2574 'embedpress_pro_embeded_source' => 'calendly',
2575 'cEmbedType' => 'popup_button'
2576 ],
2577 'ai' => [
2578 'active' => false,
2579 ],
2580 ]
2581 );
2582
2583
2584 $this->add_control(
2585 'cPopupButtonTextColor',
2586 [
2587 'label' => __( 'Text Color', 'embedpress' ),
2588 'type' => \Elementor\Controls_Manager::COLOR,
2589 'default' => '#ffffff',
2590 'condition' => [
2591 'embedpress_pro_embeded_source' => 'calendly',
2592 'cEmbedType' => 'popup_button'
2593 ]
2594 ]
2595 );
2596 $this->add_control(
2597 'cPopupButtonBGColor',
2598 [
2599 'label' => __( 'Background Color', 'embedpress' ),
2600 'type' => \Elementor\Controls_Manager::COLOR,
2601 'default' => '#0000FF',
2602 'condition' => [
2603 'embedpress_pro_embeded_source' => 'calendly',
2604 'cEmbedType' => 'popup_button'
2605 ]
2606 ]
2607 );
2608
2609 $this->add_control(
2610 'calendlyControlsHeadding',
2611 [
2612 'label' => esc_html__( 'Calender Settings', 'embedpress' ),
2613 'type' => \Elementor\Controls_Manager::HEADING,
2614 'separator' => 'before',
2615 ]
2616 );
2617
2618 $this->add_control(
2619 'hideCookieBanner',
2620 [
2621 'label' => __( 'Hide Cookie Banner', 'embedpress' ),
2622 'type' => \Elementor\Controls_Manager::SWITCHER,
2623 'default' => '',
2624 'condition' => $condition
2625 ]
2626 );
2627 $this->add_control(
2628 'hideEventTypeDetails',
2629 [
2630 'label' => __( 'Hide Event Type Details', 'embedpress' ),
2631 'type' => \Elementor\Controls_Manager::SWITCHER,
2632 'default' => '',
2633 'condition' => $condition
2634 ]
2635 );
2636
2637 $this->add_control(
2638 'cBackgroundColor',
2639 [
2640 'label' => __( 'Background Color', 'embedpress' ),
2641 'type' => \Elementor\Controls_Manager::COLOR,
2642 'default' => '',
2643 'condition' => $condition
2644 ]
2645 );
2646
2647 $this->add_control(
2648 'cTextColor',
2649 [
2650 'label' => __( 'Text Color', 'embedpress' ),
2651 'type' => \Elementor\Controls_Manager::COLOR,
2652 'default' => '',
2653 'condition' => $condition
2654 ]
2655 );
2656
2657 $this->add_control(
2658 'cButtonLinkColor',
2659 [
2660 'label' => __( 'Button & Link Color', 'embedpress' ),
2661 'type' => \Elementor\Controls_Manager::COLOR,
2662 'default' => '',
2663 'condition' => $condition
2664 ]
2665 );
2666
2667 $this->end_controls_section();
2668
2669 }
2670
2671 //End calendly controlS
2672
2673 public function init_style_controls()
2674 {
2675 $this->start_controls_section(
2676 'embedpress_style_section',
2677 [
2678 'label' => __('General', 'embedpress'),
2679 'tab' => Controls_Manager::TAB_STYLE,
2680 'conditions' => [
2681 'terms' => [
2682 [
2683 'name' => 'embedpress_pro_embeded_source',
2684 'operator' => '!==',
2685 'value' => 'opensea',
2686 ],
2687 ],
2688 ]
2689
2690 ]
2691 );
2692 $this->add_responsive_control(
2693 'width',
2694 [
2695 'label' => __('Width', 'embedpress'),
2696 'type' => Controls_Manager::SLIDER,
2697 'size_units' => ['px'],
2698 'range' => [
2699 'px' => [
2700 'min' => 0,
2701 'max' => 1500,
2702 'step' => 1,
2703 ],
2704 ],
2705 'devices' => [ 'desktop', 'tablet', 'mobile' ],
2706 'desktop_default' => [
2707 'size' => 600,
2708 'unit' => 'px',
2709 ],
2710 'tablet_default' => [
2711 'size' => 600,
2712 'unit' => 'px',
2713 ],
2714 'mobile_default' => [
2715 'size' => 600,
2716 'unit' => 'px',
2717 ],
2718 'selectors' => [
2719 '{{WRAPPER}} .embedpress-elements-wrapper .ose-embedpress-responsive>iframe,{{WRAPPER}} .embedpress-elements-wrapper .ose-embedpress-responsive
2720 ' => 'width: {{size}}{{UNIT}}!important; max-width: 100%!important;',
2721 ],
2722 ]
2723 );
2724
2725 $this->add_responsive_control(
2726 'height',
2727 [
2728 'label' => __('Height', 'embedpress'),
2729 'type' => Controls_Manager::SLIDER,
2730 'size_units' => ['px'],
2731 'range' => [
2732 'px' => [
2733 'min' => 0,
2734 'max' => 1500,
2735 'step' => 1,
2736 ],
2737 ],
2738 'devices' => [ 'desktop', 'tablet', 'mobile' ],
2739 'desktop_default' => [
2740 'size' => 400,
2741 'unit' => 'px',
2742 ],
2743 'tablet_default' => [
2744 'size' => 400,
2745 'unit' => 'px',
2746 ],
2747 'mobile_default' => [
2748 'size' => 400,
2749 'unit' => 'px',
2750 ],
2751 'selectors' => [
2752 '{{WRAPPER}} .embedpress-elements-wrapper .ose-embedpress-responsive>iframe, {{WRAPPER}} .embedpress-elements-wrapper .ose-embedpress-responsive
2753 ' => 'height: {{size}}{{UNIT}}!important;max-height: 100%!important',
2754 ],
2755 ]
2756 );
2757 $this->add_control(
2758 'width_height_important_note',
2759 [
2760 'type' => \Elementor\Controls_Manager::RAW_HTML,
2761 'raw' => esc_html__('Note: The maximum width and height are set to 100%.', 'embedpress'),
2762 'content_classes' => 'elementor-panel-alert elementor-panel-warning-info',
2763 ]
2764 );
2765 $this->add_responsive_control(
2766 'margin',
2767 [
2768 'label' => __('Margin', 'embedpress'),
2769 'type' => Controls_Manager::DIMENSIONS,
2770 'size_units' => ['px', '%', 'em'],
2771 'selectors' => [
2772 '{{WRAPPER}} .embedpress-elements-wrapper .embedpress-wrapper' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
2773 ],
2774 ]
2775 );
2776 $this->add_responsive_control(
2777 'padding',
2778 [
2779 'label' => __('Padding', 'embedpress'),
2780 'type' => Controls_Manager::DIMENSIONS,
2781 'size_units' => ['px', '%', 'em'],
2782 'selectors' => [
2783 '{{WRAPPER}} .embedpress-elements-wrapper .embedpress-wrapper' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
2784 ],
2785 ]
2786 );
2787 $this->add_responsive_control(
2788 'align',
2789 [
2790 'label' => esc_html__('Alignment', 'embedpress'),
2791 'type' => Controls_Manager::CHOOSE,
2792 'options' => [
2793 'left' => [
2794 'title' => esc_html__('Left', 'embedpress'),
2795 'icon' => 'eicon-text-align-left',
2796 ],
2797 'center' => [
2798 'title' => esc_html__('Center', 'embedpress'),
2799 'icon' => 'eicon-text-align-center',
2800 ],
2801 'right' => [
2802 'title' => esc_html__('Right', 'embedpress'),
2803 'icon' => 'eicon-text-align-right',
2804 ],
2805 ],
2806 'prefix_class' => 'elementor%s-align-',
2807 'default' => '',
2808 ]
2809 );
2810 $this->end_controls_section();
2811 }
2812
2813 public function render_plain_content()
2814 {
2815 $args = "";
2816 $settings = $this->get_settings_for_display();
2817
2818 $_settings = $this->convert_settings($settings);
2819 foreach ($_settings as $key => $value) {
2820 $args .= "$key='$value' ";
2821 }
2822
2823 $args = trim($args);
2824 echo "[embedpress $args]{$settings['embedpress_embeded_link']}\[/embedpress]";
2825 }
2826
2827 public function get_custom_player_options($settings)
2828 {
2829
2830 $_player_options = '';
2831
2832 if (!empty($settings['emberpress_custom_player'])) {
2833
2834 $player_preset = !empty($settings['custom_payer_preset']) ? $settings['custom_payer_preset'] : 'preset-default';
2835
2836 $player_color = !empty($settings['embedpress_player_color']) ? $settings['embedpress_player_color'] : '';
2837
2838 $poster_thumbnail = !empty($settings['embedpress_player_poster_thumbnail']['url']) ? $settings['embedpress_player_poster_thumbnail']['url'] : '';
2839
2840 $is_self_hosted = Helper::check_media_format($settings['embedpress_embeded_link']);
2841
2842
2843 $player_pip = !empty($settings['embepress_player_always_on_top']) ? true : false;
2844 $player_restart = !empty($settings['embepress_player_restart']) ? true : false;
2845 $player_rewind = !empty($settings['embepress_player_rewind']) ? true : false;
2846 $player_fastForward = !empty($settings['embepress_player_fast_forward']) ? true : false;
2847 $player_tooltip = !empty($settings['embepress_player_tooltip']) ? true : false;
2848 $player_hide_controls = !empty($settings['embepress_player_hide_controls']) ? true : false;
2849 $player_download = !empty($settings['embepress_player_download']) ? true : false;
2850 $player_fullscreen = !empty($settings['embedpress_pro_youtube_enable_fullscreen_button']) ? true : false;
2851
2852 $playerOptions = [
2853 'rewind' => $player_rewind,
2854 'restart' => $player_restart,
2855 'pip' => $player_pip,
2856 'poster_thumbnail' => $poster_thumbnail,
2857 'player_color' => $player_color,
2858 'player_preset' => $player_preset,
2859 'fast_forward' => $player_fastForward,
2860 'player_tooltip' => $player_tooltip,
2861 'hide_controls' => $player_hide_controls,
2862 'download' => $player_download,
2863 'fullscreen' => $player_fullscreen,
2864 ];
2865
2866
2867 //Youtube options
2868 if (!empty($settings['embedpress_pro_video_start_time'])) {
2869 $playerOptions['start'] = $settings['embedpress_pro_video_start_time'];
2870 }
2871 if (!empty($settings['embedpress_pro_youtube_end_time'])) {
2872 $playerOptions['end'] = $settings['embedpress_pro_youtube_end_time'];
2873 }
2874 if (!empty($settings['embedpress_pro_youtube_display_related_videos'])) {
2875 $playerOptions['rel'] = true;
2876 } else {
2877 $playerOptions['rel'] = false;
2878 }
2879
2880 //vimeo options
2881 if (!empty($settings['embedpress_pro_video_start_time'])) {
2882 $playerOptions['t'] = $settings['embedpress_pro_video_start_time'];
2883 }
2884 if (!empty($settings['embedpress_pro_vimeo_auto_play'])) {
2885 $playerOptions['vautoplay'] = true;
2886 } else {
2887 $playerOptions['vautoplay'] = false;
2888 }
2889 if (!empty($settings['embedpress_pro_vimeo_autopause'])) {
2890 $playerOptions['autopause'] = true;
2891 } else {
2892 $playerOptions['autopause'] = false;
2893 }
2894
2895 if (!empty($settings['embedpress_pro_vimeo_dnt'])) {
2896 $playerOptions['dnt'] = true;
2897 } else {
2898 $playerOptions['dnt'] = false;
2899 }
2900
2901 if (!empty($is_self_hosted['selhosted'])) {
2902 $playerOptions['self_hosted'] = $is_self_hosted['selhosted'];
2903 $playerOptions['hosted_format'] = $is_self_hosted['format'];
2904 }
2905
2906 $playerOptionsString = json_encode($playerOptions);
2907 $_player_options = 'data-options=\'' . htmlentities($playerOptionsString, ENT_QUOTES) . '\'';
2908 }
2909
2910 return $_player_options;
2911 }
2912
2913 protected function convert_settings($settings)
2914 {
2915 $_settings = [];
2916 foreach ($settings as $key => $value) {
2917 if (empty($value)) {
2918 $_settings[$key] = 'false';
2919 } else if (!empty($value['size'])) {
2920 $_settings[$key] = $value['size'];
2921 } else if (!empty($value['url'])) {
2922 $_settings[$key] = $value['url'];
2923 } else if (\is_scalar($value)) {
2924 $_settings[$key] = $value;
2925 }
2926 }
2927
2928 return $_settings;
2929 }
2930
2931
2932
2933 protected function render()
2934 {
2935
2936 add_filter('embedpress_should_modify_spotify', '__return_false');
2937 $settings = $this->get_settings_for_display();
2938
2939 $is_editor_view = Plugin::$instance->editor->is_edit_mode();
2940 $link = $settings['embedpress_embeded_link'];
2941 $is_apple_podcast = (strpos($link, 'podcasts.apple.com') !== false);
2942
2943 // conditionaly convert settings data
2944 $_settings = [];
2945 $source = isset($settings['embedpress_pro_embeded_source']) ? $settings['embedpress_pro_embeded_source'] : 'default';
2946 $embed_link = isset($settings['embedpress_embeded_link']) ? $settings['embedpress_embeded_link'] : '';
2947 $pass_hash_key = isset($settings['embedpress_lock_content_password']) ? md5($settings['embedpress_lock_content_password']) : '';
2948
2949
2950
2951 Helper::get_source_data(md5($this->get_id()) . '_eb_elementor', $embed_link, 'elementor_source_data', 'elementor_temp_source_data');
2952
2953 if (!(($source === 'default' || !empty($source[0]) && $source[0] === 'default') && strpos($embed_link, 'opensea.io') !== false)) {
2954 $_settings = $this->convert_settings($settings);
2955 }
2956
2957 if (strpos($embed_link, 'opensea.io') !== false) {
2958 $source = 'opensea';
2959 }
2960
2961
2962 $embed_content = Shortcode::parseContent($settings['embedpress_embeded_link'], true, $_settings);
2963 $embed_content = $this->onAfterEmbedSpotify($embed_content, $settings);
2964 $embed = apply_filters('embedpress_elementor_embed', $embed_content, $settings);
2965 $content = is_object($embed) ? $embed->embed : $embed;
2966
2967 $embed_settings = [];
2968 $embed_settings['customThumbnail'] = !empty($settings['embedpress_content_share_custom_thumbnail']['url']) ? $settings['embedpress_content_share_custom_thumbnail']['url'] : '';
2969
2970 $embed_settings['customTitle'] = !empty($settings['embedpress_content_title']) ? $settings['embedpress_content_title'] : Helper::get_file_title($embed_link);
2971
2972 $embed_settings['customDescription'] = !empty($settings['embedpress_content_descripiton']) ? $settings['embedpress_content_descripiton'] : Helper::get_file_title($embed_link);
2973
2974 $embed_settings['sharePosition'] = !empty($settings['embedpress_content_share_position']) ? $settings['embedpress_content_share_position'] : 'right';
2975
2976 $embed_settings['lockHeading'] = !empty($settings['embedpress_lock_content_heading']) ? $settings['embedpress_lock_content_heading'] : '';
2977
2978 $embed_settings['lockSubHeading'] = !empty($settings['embedpress_lock_content_sub_heading']) ? $settings['embedpress_lock_content_sub_heading'] : '';
2979
2980 $embed_settings['passwordPlaceholder'] = !empty($settings['embedpress_password_placeholder']) ? $settings['embedpress_password_placeholder'] : '';
2981
2982 $embed_settings['submitButtonText'] = !empty($settings['embedpress_submit_button_text']) ? $settings['embedpress_submit_button_text'] : '';
2983
2984 $embed_settings['submitUnlockingText'] = !empty($settings['embedpress_submit_Unlocking_text']) ? $settings['embedpress_submit_Unlocking_text'] : '';
2985
2986 $embed_settings['lockErrorMessage'] = !empty($settings['embedpress_lock_content_error_message']) ? $settings['embedpress_lock_content_error_message'] : '';
2987
2988 $embed_settings['enableFooterMessage'] = !empty($settings['embedpress_enable_footer_message']) ? $settings['embedpress_enable_footer_message'] : '';
2989
2990 $embed_settings['footerMessage'] = !empty($settings['embedpress_lock_content_footer_message']) ? $settings['embedpress_lock_content_footer_message'] : '';
2991
2992
2993 $client_id = $this->get_id();
2994 $hash_pass = hash('sha256', wp_salt(32) . md5($settings['embedpress_lock_content_password']?$settings['embedpress_lock_content_password'] : ''));
2995
2996 $password_correct = isset($_COOKIE['password_correct_'.$client_id]) ? $_COOKIE['password_correct_'.$client_id] : '';
2997
2998 $ispagination = 'flex';
2999
3000 if ($settings['pagination'] != 'show') {
3001 $ispagination = 'none';
3002 }
3003
3004 if (!empty($settings['columns']) && (int) $settings['columns'] > 0) {
3005 $calVal = 'calc(' . (100 / (int) $settings['columns']) . '% - ' . $settings['gapbetweenvideos']['size'] . 'px)';
3006 } else {
3007 $calVal = 'auto';
3008 }
3009
3010 $content_share_class = '';
3011 $share_position_class = '';
3012 $share_position = isset($settings['embedpress_content_share_position']) ? $settings['embedpress_content_share_position'] : 'right';
3013
3014 if (!empty($settings['embedpress_content_share'])) {
3015 $content_share_class = 'ep-content-share-enabled';
3016 $share_position_class = 'ep-share-position-' . $share_position;
3017 }
3018
3019 $content_protection_class = 'ep-content-protection-enabled';
3020 if (empty($settings['embedpress_lock_content']) || empty($settings['embedpress_lock_content_password']) || $hash_pass === $password_correct) {
3021 $content_protection_class = 'ep-content-protection-disabled';
3022 }
3023
3024 $cEmbedType = !empty($settings['cEmbedType']) ? $settings['cEmbedType'] : '';
3025
3026
3027 ?>
3028
3029 <div class="embedpress-elements-wrapper <?php echo !empty($settings['embedpress_elementor_aspect_ratio']) ? 'embedpress-fit-aspect-ratio' : ''; echo esc_attr( $cEmbedType );?>" id="ep-elements-id-<?php echo $this->get_id(); ?>">
3030 <?php
3031 // handle notice display
3032 if ($is_editor_view && $is_apple_podcast && !is_embedpress_pro_active()) {
3033 ?>
3034 <p><?php esc_html_e('You need EmbedPress Pro to Embed Apple Podcast. Note. This message is only visible to you.', 'embedpress'); ?></p>
3035 <?php
3036 } else { ?>
3037
3038 <div id="ep-elementor-content-<?php echo esc_attr($client_id) ?>" class="ep-elementor-content <?php if (!empty($settings['embedpress_content_share'])) : echo esc_attr('position-' . $settings['embedpress_content_share_position'] . '-wraper');
3039 endif; ?> <?php echo esc_attr($content_share_class . ' ' . $share_position_class . ' ' . $content_protection_class);
3040 echo esc_attr(' source-' . $source); ?>">
3041 <div id="<?php echo esc_attr($this->get_id()); ?>" class="ep-embed-content-wraper <?php echo esc_attr($settings['custom_payer_preset']); ?>" data-playerid="<?php echo esc_attr($this->get_id()); ?>" <?php echo $this->get_custom_player_options($settings); ?>>
3042 <?php
3043 $content_id = $client_id;
3044
3045 if ((empty($settings['embedpress_lock_content']) || empty($settings['embedpress_lock_content_password']) || $settings['embedpress_lock_content'] == 'no') || (!empty(Helper::is_password_correct($client_id)) && ($hash_pass === $password_correct))) {
3046
3047 if (!empty($settings['embedpress_content_share'])) {
3048 $content .= Helper::embed_content_share($content_id, $embed_settings);
3049 }
3050 echo $content;
3051 } else {
3052 if (!empty($settings['embedpress_content_share'])) {
3053 $content .= Helper::embed_content_share($content_id, $embed_settings);
3054 }
3055 Helper::display_password_form($client_id, $content, $pass_hash_key, $embed_settings);
3056 }
3057 ?>
3058 </div>
3059 </div>
3060 <?php
3061 }
3062 ?>
3063 </div>
3064
3065
3066 <?php if ($settings['embedpress_pro_embeded_source'] === 'youtube') : ?>
3067 <style>
3068 #ep-elements-id-<?php echo esc_html($this->get_id()); ?>.ep-youtube__content__block .youtube__content__body .content__wrap {
3069 grid-template-columns: repeat(auto-fit, minmax(<?php echo esc_html($calVal); ?>, 1fr)) !important;
3070 }
3071
3072 #ep-elements-id-<?php echo esc_html($this->get_id()); ?>.ep-youtube__content__pagination {
3073 display: <?php echo esc_html($ispagination); ?> !important;
3074 }
3075 </style>
3076 <?php endif; ?>
3077
3078 <?php
3079 }
3080 public function onAfterEmbedSpotify($embed, $setting)
3081 {
3082 if (!isset($embed->provider_name) || strtolower($embed->provider_name) !== 'spotify' || !isset($embed->embed)) {
3083 return $embed;
3084 }
3085 $match = array();
3086 preg_match('/src=\"(.+?)\"/', $embed->embed, $match);
3087 if (empty($match)) {
3088 return $embed;
3089 }
3090 $url_full = $match[1];
3091 $modified_url = str_replace('playlist-v2', 'playlist', $url_full);
3092 if (isset($setting['spotify_theme'])) {
3093 if (strpos($modified_url, '?') !== false) {
3094 $modified_url .= '&theme=' . sanitize_text_field($setting['spotify_theme']);
3095 } else {
3096 $modified_url .= '?theme=' . sanitize_text_field($setting['spotify_theme']);
3097 }
3098 }
3099 $embed->embed = str_replace($url_full, $modified_url, $embed->embed);
3100 return $embed;
3101 }
3102 }
3103