PluginProbe
Property Hive / 2.2.5
Property Hive v2.2.5
2.3.1 2.3.0 2.2.6 2.2.5 2.2.4 2.2.3 2.2.2 1.4.46 1.4.47 1.4.48 1.4.49 1.4.5 1.4.50 1.4.51 1.4.52 1.4.53 1.4.54 1.4.55 1.4.56 1.4.57 1.4.58 1.4.59 1.4.6 1.4.60 1.4.61 All 261 releases
propertyhive / includes / elementor-widgets / property-virtual-tours-link.php

property-virtual-tours-link.php in Property Hive 2.2.5, at includes/elementor-widgets/property-virtual-tours-link.php

156 lines 3.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Elementor Property Virtual Tours Link Widget.
4 *
5 * @since 1.0.0
6 */
7 class Elementor_Property_Virtual_Tours_Link_Widget extends \Elementor\Widget_Base {
8
9 public function get_name() {
10 return 'property-virtual-tours-link';
11 }
12
13 public function get_title() {
14 return __( 'Virtual Tours Link', 'propertyhive' );
15 }
16
17 public function get_icon() {
18 return 'eicon-video-camera';
19 }
20
21 public function get_categories() {
22 return [ 'property-hive' ];
23 }
24
25 public function get_keywords() {
26 return [ 'property hive', 'propertyhive', 'property', 'virtual tour' ];
27 }
28
29 protected function register_controls() {
30
31 $this->start_controls_section(
32 'style_section',
33 [
34 'label' => __( 'Virtual Tours', 'propertyhive' ),
35 'tab' => \Elementor\Controls_Manager::TAB_STYLE,
36 ]
37 );
38
39 $this->add_group_control(
40 \Elementor\Group_Control_Typography::get_type(),
41 [
42 'name' => 'typography',
43 'label' => __( 'Typography', 'propertyhive' ),
44 'global' => [
45 'default' => \Elementor\Core\Kits\Documents\Tabs\Global_Typography::TYPOGRAPHY_PRIMARY,
46 ],
47 'selector' => '{{WRAPPER}} a',
48 ]
49 );
50
51 $this->add_control(
52 'color',
53 [
54 'label' => __( 'Colour', 'propertyhive' ),
55 'type' => \Elementor\Controls_Manager::COLOR,
56 'global' => [
57 'default' => \Elementor\Core\Kits\Documents\Tabs\Global_Colors::COLOR_PRIMARY,
58 ],
59 'selectors' => [
60 '{{WRAPPER}} a' => 'color: {{VALUE}}',
61 ],
62 ]
63 );
64
65 $this->add_control(
66 'text_align',
67 [
68 'label' => __( 'Alignment', 'propertyhive' ),
69 'type' => \Elementor\Controls_Manager::CHOOSE,
70 'options' => [
71 'left' => [
72 'title' => __( 'Left', 'propertyhive' ),
73 'icon' => 'eicon-text-align-left',
74 ],
75 'center' => [
76 'title' => __( 'Center', 'propertyhive' ),
77 'icon' => 'eicon-text-align-center',
78 ],
79 'right' => [
80 'title' => __( 'Right', 'propertyhive' ),
81 'icon' => 'eicon-text-align-right',
82 ],
83 ],
84 'default' => 'center',
85 'toggle' => true,
86 'selectors' => [
87 '{{WRAPPER}}' => 'text-align: {{VALUE}}',
88 ],
89 ]
90 );
91
92 $this->add_control(
93 'background_color',
94 [
95 'label' => __( 'Background Colour', 'propertyhive' ),
96 'type' => \Elementor\Controls_Manager::COLOR,
97 'global' => [
98 'default' => \Elementor\Core\Kits\Documents\Tabs\Global_Colors::COLOR_SECONDARY,
99 ],
100 'selectors' => [
101 '{{WRAPPER}} a' => 'background: {{VALUE}}',
102 ],
103 ]
104 );
105
106 $this->add_control(
107 'padding',
108 [
109 'label' => __( 'Link Padding', 'propertyhive' ),
110 'type' => \Elementor\Controls_Manager::DIMENSIONS,
111 'size_units' => [ 'px' ],
112 'selectors' => [
113 '{{WRAPPER}} a' => 'display:inline-block; padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
114 ],
115 'default' => [
116 'top' => 5,
117 'right' => 5,
118 'bottom' => 5,
119 'left' => 5,
120 'isLinked' => true,
121 ],
122 ]
123 );
124
125 $this->end_controls_section();
126
127 }
128
129 protected function render() {
130
131 global $property;
132
133 $settings = $this->get_settings_for_display();
134
135 if ( !isset($property->id) ) {
136 return;
137 }
138
139 $virtual_tours = $property->get_virtual_tours();
140
141 if ( !empty( $virtual_tours ) )
142 {
143 foreach ($virtual_tours as $virtual_tour)
144 {
145 echo '<a href="' . esc_url($virtual_tour['url']) . '" target="_blank" rel="nofollow"';
146 if ( strpos($virtual_tour['url'], 'yout') !== FALSE || strpos($virtual_tour['url'], 'vimeo') !== FALSE )
147 {
148 echo ' data-fancybox=""';
149 }
150 echo '>' . esc_html(__( $virtual_tour['label'], 'propertyhive' )) . '</a>';
151 }
152 }
153
154 }
155
156 }