PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 2.0.1
ShopBuilder – WooCommerce Builder For Elementor v2.0.1
3.4.2 3.4.1 3.4.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 All 63 releases
shopbuilder / app / Elementor / Widgets / Controls / ProductTabsSettings.php

ProductTabsSettings.php in ShopBuilder – WooCommerce Builder For Elementor 2.0.1, at app/Elementor/Widgets/Controls/ProductTabsSettings.php

440 lines 12.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Main ProductDescription class.
5 *
6 * @package RadiusTheme\SB
7 */
8
9 namespace RadiusTheme\SB\Elementor\Widgets\Controls;
10
11 use Elementor\Controls_Manager;
12 use RadiusTheme\SB\Elementor\Helper\ControlHelper;
13
14 // Do not allow directly accessing this file.
15 if ( ! defined( 'ABSPATH' ) ) {
16 exit( 'This script cannot be accessed directly.' );
17 }
18
19 /**
20 * Product Description class
21 */
22 class ProductTabsSettings {
23 /**
24 * Widget Control Selectors
25 *
26 * @var array
27 */
28 private static $selectors = [];
29
30 /**
31 * Widget Field
32 *
33 * @return array
34 */
35 public static function widget_fields( $widget ) {
36 self::$selectors = $widget->selectors;
37
38 return self::general( $widget ) +
39 self::nav_style() +
40 self::tab_content() +
41 self::additional_info() +
42 ReviewsSettings::widget_fields( $widget );
43 }
44
45 /**
46 * Widget Field
47 *
48 * @return array
49 */
50 public static function general( $widget ) {
51 $fields = [
52 'general_section' => [
53 'mode' => 'section_start',
54 'label' => esc_html__( 'General', 'shopbuilder' ),
55 ],
56 'layout_style' => [
57 'label' => esc_html__( 'Layout', 'shopbuilder' ),
58 'type' => 'rtsb-image-selector',
59 'options' => ControlHelper::single_product_tab_layouts(),
60 'default' => 'default',
61 'separator' => 'default',
62 ],
63 'description_note' => $widget->el_heading( esc_html__( 'Description Tab', 'shopbuilder' ), 'before' ),
64 'description' => [
65 'label' => esc_html__( 'Description', 'shopbuilder' ),
66 'type' => 'switch',
67 'description' => esc_html__( 'Switch on to show description.', 'shopbuilder' ),
68 'default' => 'yes',
69 ],
70 'description_nav_text' => [
71 'label' => esc_html__( 'Custom Nav Text', 'shopbuilder' ),
72 'type' => 'text',
73 'label_block' => true,
74 'default' => esc_html__( 'Description', 'shopbuilder' ),
75 'description' => esc_html__( 'Leave empty for default text.', 'shopbuilder' ),
76 'condition' => [
77 'description' => 'yes',
78 ],
79 ],
80 'description_title_text' => [
81 'label' => esc_html__( 'Custom Title', 'shopbuilder' ),
82 'type' => 'text',
83 'default' => __( 'Description', 'shopbuilder' ),
84 'description' => esc_html__( 'Leave empty for hide the title.', 'shopbuilder' ),
85 'label_block' => true,
86 'condition' => [
87 'description' => 'yes',
88 ],
89 ],
90 'additional_information_note' => $widget->el_heading( esc_html__( 'Additional information Tab', 'shopbuilder' ), 'before' ),
91 'additional_information' => [
92 'label' => esc_html__( 'Additional information', 'shopbuilder' ),
93 'type' => 'switch',
94 'description' => esc_html__( 'Switch on to show Additional information.', 'shopbuilder' ),
95 'default' => 'yes',
96 ],
97 'additional_information_nav_text' => [
98 'label' => esc_html__( 'Custom Nav Text', 'shopbuilder' ),
99 'type' => 'text',
100 'label_block' => true,
101 'default' => esc_html__( 'Additional information', 'shopbuilder' ),
102 'description' => esc_html__( 'Leave empty for default text.', 'shopbuilder' ),
103 'condition' => [
104 'additional_information' => 'yes',
105 ],
106 ],
107 'additional_information_title_text' => [
108 'label' => esc_html__( 'Custom Title', 'shopbuilder' ),
109 'type' => 'text',
110 'default' => __( 'Additional information', 'shopbuilder' ),
111 'label_block' => true,
112 'description' => esc_html__( 'Leave empty for hide the title.', 'shopbuilder' ),
113 'condition' => [
114 'additional_information' => 'yes',
115 ],
116 ],
117 'reviews_note' => $widget->el_heading( esc_html__( 'Reviews Tab', 'shopbuilder' ), 'before' ),
118 'reviews' => [
119 'label' => esc_html__( 'Reviews', 'shopbuilder' ),
120 'type' => 'switch',
121 'description' => esc_html__( 'Switch on to show Reviews.', 'shopbuilder' ),
122 'default' => '',
123 ],
124 'reviews_nav_text' => [
125 'label' => esc_html__( 'Custom Nav Text', 'shopbuilder' ),
126 'type' => 'text',
127 'label_block' => true,
128 'default' => __( 'Reviews', 'shopbuilder' ),
129 'description' => esc_html__( 'Leave empty for default text.', 'shopbuilder' ),
130 'condition' => [
131 'reviews' => 'yes',
132 ],
133 ],
134 // No Option Found for remove title Check: /woocommerce/templates/single-product-reviews.php
135 // 'reviews_title_text' => [
136 // 'label' => esc_html__( 'Reviews title text', 'shopbuilder' ),
137 // 'type' => 'text',
138 // 'default' => __( 'Reviews', 'shopbuilder' ),
139 // 'label_block' => true,
140 // 'condition' => [
141 // 'reviews' => 'yes',
142 // ],
143 // ],
144 'general_section_end' => [
145 'mode' => 'section_end',
146 ],
147 ];
148
149 return $fields;
150 }
151
152 /**
153 * Widget Field
154 *
155 * @return array
156 */
157 public static function nav_style() {
158 $fields = [
159 'nav_style' => [
160 'mode' => 'section_start',
161 'tab' => 'style',
162 'label' => esc_html__( 'Nav Style', 'shopbuilder' ),
163 'condition' => [
164 'layout_style!' => [ 'custom-layout1' ],
165 ],
166 ],
167 'nav_typography' => [
168 'mode' => 'group',
169 'type' => 'typography',
170 'label' => esc_html__( 'Typography', 'shopbuilder' ),
171 'selector' => self::$selectors['nav_typography'],
172 ],
173 'nav_position' => [
174 'label' => esc_html__( 'Position', 'shopbuilder' ),
175 'mode' => 'responsive',
176 'type' => 'slider',
177 'range' => [
178 'px' => [
179 'min' => 0,
180 'max' => 300,
181 ],
182 ],
183 'condition' => [
184 'layout_style' => [ 'custom-layout2' ],
185 ],
186 'selectors' => [
187 self::$selectors['nav_position'] => 'top: -{{SIZE}}{{UNIT}};',
188 ],
189 ],
190 'nav_tabs_start' => [
191 'mode' => 'tabs_start',
192 ],
193 // Tab For normal view.
194 'nav_normal' => [
195 'mode' => 'tab_start',
196 'label' => esc_html__( 'Normal', 'shopbuilder' ),
197 ],
198 'nav_color' => [
199 'label' => esc_html__( 'Menu color', 'shopbuilder' ),
200 'type' => 'color',
201 'separator' => 'default',
202 'selectors' => [
203 self::$selectors['nav_color'] => 'color: {{VALUE}}',
204 ],
205 ],
206 'nav_bg_color' => [
207 'label' => esc_html__( 'Background Color', 'shopbuilder' ),
208 'type' => 'color',
209 'default' => '',
210 'alpha' => true,
211 'selectors' => [
212 self::$selectors['nav_bg_color'] => 'background: {{VALUE}};',
213 ],
214 ],
215
216 'nav_border' => [
217 'mode' => 'group',
218 'type' => 'border',
219 'selector' => self::$selectors['nav_border'],
220 'size_units' => [ 'px' ],
221 ],
222
223 'nav_active_color' => [
224 'label' => esc_html__( 'Active Menu color', 'shopbuilder' ),
225 'type' => 'color',
226 'selectors' => [
227 self::$selectors['nav_active_color'] => 'color: {{VALUE}}',
228 ],
229 ],
230
231 'nav_active_bg_color' => [
232 'label' => esc_html__( 'Active Background Color', 'shopbuilder' ),
233 'type' => 'color',
234 'default' => '',
235 'alpha' => true,
236 'selectors' => [
237 self::$selectors['nav_active_bg_color'] => 'background: {{VALUE}};',
238 ],
239 ],
240
241 'nav_active_border_color' => [
242 'label' => esc_html__( 'Active Border color', 'shopbuilder' ),
243 'type' => 'color',
244 'selectors' => [
245 self::$selectors['nav_active_border_color'] => 'border-color: {{VALUE}}',
246 ],
247 ],
248
249 'nav_normal_end' => [
250 'mode' => 'tab_end',
251 ],
252 'nav_hover' => [
253 'mode' => 'tab_start',
254 'label' => esc_html__( 'Hover', 'shopbuilder' ),
255 ],
256 'nav_hover_color' => [
257 'label' => esc_html__( 'Menu color', 'shopbuilder' ),
258 'type' => 'color',
259
260 'separator' => 'default',
261 'selectors' => [
262 self::$selectors['nav_hover_color'] => 'color: {{VALUE}}',
263 ],
264 ],
265 'nav_hover_bg_color' => [
266 'label' => esc_html__( 'Background Color', 'shopbuilder' ),
267 'type' => 'color',
268 'default' => '',
269
270 'selectors' => [
271 self::$selectors['nav_hover_bg_color'] => 'background: {{VALUE}};',
272 ],
273 ],
274 'nav_active_hover_color' => [
275 'label' => esc_html__( 'Active Menu color', 'shopbuilder' ),
276 'type' => 'color',
277 'selectors' => [
278 self::$selectors['nav_active_hover_color'] => 'color: {{VALUE}}',
279 ],
280 ],
281 'nav_active_hover_bg_color' => [
282 'label' => esc_html__( 'Active Background Color', 'shopbuilder' ),
283 'type' => 'color',
284 'default' => '',
285
286 'selectors' => [
287 self::$selectors['nav_active_hover_bg_color'] => 'background: {{VALUE}};',
288 ],
289 ],
290 'nav_active_hover_border_color' => [
291 'label' => esc_html__( 'Active Border color', 'shopbuilder' ),
292 'type' => 'color',
293 'selectors' => [
294 self::$selectors['nav_active_hover_border_color'] => 'border-bottom-color: {{VALUE}}',
295 ],
296 ],
297 'nav_hover_end' => [
298 'mode' => 'tab_end',
299 ],
300 'nav_tabs_end' => [
301 'mode' => 'tabs_end',
302 ],
303 'nav_padding' => [
304 'label' => esc_html__( 'Padding', 'shopbuilder' ),
305 'type' => 'dimensions',
306 'mode' => 'responsive',
307 'size_units' => [ 'px' ],
308 'selectors' => [
309 self::$selectors['nav_padding'] => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
310 ],
311 ],
312 'nav_style_end' => [
313 'mode' => 'section_end',
314 ],
315 ];
316
317 return $fields;
318 }
319
320
321 /**
322 * Widget Field
323 *
324 * @return array
325 */
326 public static function tab_content() {
327 $fields = [
328 'tab_content_style' => [
329 'mode' => 'section_start',
330 'tab' => 'style',
331 'label' => esc_html__( 'Tab Content', 'shopbuilder' ),
332 ],
333 'content_padding' => [
334 'label' => esc_html__( 'Padding', 'shopbuilder' ),
335 'type' => 'dimensions',
336 'mode' => 'responsive',
337 'separator' => 'default',
338 'size_units' => [ 'px' ],
339 'selectors' => [
340 self::$selectors['content_padding'] => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
341 ],
342 ],
343 'show_title' => [
344 'label' => esc_html__( 'Show title', 'shopbuilder' ),
345 'type' => 'choose',
346 'options' => [
347 'block' => [
348 'title' => esc_html__( 'Show', 'shopbuilder' ),
349 'icon' => 'eicon-check-circle',
350 ],
351 'none' => [
352 'title' => esc_html__( 'Hide', 'shopbuilder' ),
353 'icon' => 'eicon-editor-close',
354 ],
355 ],
356 'default' => 'block',
357 'selectors' => [
358 self::$selectors['show_title'] => 'display: {{VALUE}} !important;',
359 ],
360 ],
361 'tab_title_typography' => [
362 'mode' => 'group',
363 'type' => 'typography',
364 'separator' => 'before',
365 'label' => esc_html__( 'Title Typography', 'shopbuilder' ),
366 'condition' => [
367 'show_title' => 'block',
368 ],
369 'selector' => self::$selectors['tab_title_typography'],
370 ],
371 'tab_title_gap' => [
372 'label' => esc_html__( 'Title Margin', 'shopbuilder' ),
373 'type' => 'dimensions',
374 'mode' => 'responsive',
375 'size_units' => [ 'px' ],
376 'condition' => [
377 'show_title' => 'block',
378 ],
379 'selectors' => [
380 self::$selectors['tab_title_gap'] => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
381 ],
382 ],
383 'tab_content_title_color' => [
384 'label' => esc_html__( 'Title Color', 'shopbuilder' ),
385 'type' => 'color',
386
387 'selectors' => [
388 self::$selectors['tab_content_title_color'] => 'color: {{VALUE}}',
389 ],
390 'condition' => [
391 'show_title' => 'block',
392 ],
393 ],
394 'tab_content_style_end' => [
395 'mode' => 'section_end',
396 ],
397 ];
398
399 return $fields;
400 }
401
402 /**
403 * Widget Field
404 *
405 * @return array
406 */
407 public static function additional_info() {
408 $fields = [
409 'additional_info_style' => [
410 'mode' => 'section_start',
411 'tab' => 'style',
412 'label' => esc_html__( 'Additional info', 'shopbuilder' ),
413 'condition' => [
414 'additional_information' => 'yes',
415 ],
416 ],
417 'additional_info_typography' => [
418 'mode' => 'group',
419 'type' => 'typography',
420 'label' => esc_html__( 'Typography', 'shopbuilder' ),
421 'selector' => self::$selectors['additional_info_typography'],
422 ],
423 'attributes_gap' => [
424 'label' => esc_html__( 'Cell Padding', 'shopbuilder' ),
425 'type' => 'dimensions',
426 'mode' => 'responsive',
427 'size_units' => [ 'px' ],
428 'selectors' => [
429 self::$selectors['attributes_gap'] => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
430 ],
431 ],
432 'additional_info_style_end' => [
433 'mode' => 'section_end',
434 ],
435 ];
436
437 return $fields;
438 }
439 }
440