PluginProbe
SellKit – Funnel builder and checkout optimizer for WooCommerce to sell more, faster / 1.7.5
SellKit – Funnel builder and checkout optimizer for WooCommerce to sell more, faster v1.7.5
2.7.0 2.6.0 trunk 1.1.0 1.1.4 1.2.1 1.2.2 1.2.3 1.2.5 1.2.9 1.3.1 1.3.2 1.5.0 1.5.1 1.5.4 1.5.7 1.5.8 1.5.9 1.6.2 1.6.5 1.6.8 1.7.2 1.7.4 1.7.5 1.7.9 All 43 releases
sellkit / includes / elementor / modules / accept-reject-button / widgets / accept-reject-button.php

accept-reject-button.php in SellKit – Funnel builder and checkout optimizer for WooCommerce to sell more, faster 1.7.5, at includes/elementor/modules/accept-reject-button/widgets/accept-reject-button.php

471 lines 11.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 use Elementor\Widget_Button;
4 use Elementor\Icons_Manager;
5 use Elementor\Controls_Manager;
6
7 defined( 'ABSPATH' ) || die();
8
9 class Sellkit_Elementor_Accept_Reject_Button_Widget extends Sellkit_Elementor_Upsell_Base_Widget {
10
11 public static function is_active() {
12 return class_exists( 'woocommerce' );
13 }
14
15 public function get_name() {
16 return 'sellkit-accept-reject-button';
17 }
18
19 public function get_title() {
20 return __( 'Accept/Reject Button', 'sellkit' );
21 }
22
23 public function get_icon() {
24 return 'sellkit-element-icon sellkit-accept-reject-button-icon';
25 }
26
27 protected function register_controls() {
28 $this->register_content_box_controls();
29 $this->register_style_box_controls();
30 }
31
32 /**
33 * Content section controls.
34 *
35 * @since 1.1.0
36 */
37 private function register_content_box_controls() {
38 $this->start_controls_section(
39 'content',
40 [
41 'label' => __( 'Content', 'sellkit' ),
42 'tab' => 'content',
43 ]
44 );
45
46 $this->add_control(
47 'offer_type',
48 [
49 'label' => __( 'Offer Type', 'sellkit' ),
50 'type' => 'select',
51 'default' => 'accept',
52 'options' => [
53 'accept' => __( 'Accept Offer', 'sellkit' ),
54 'reject' => __( 'Reject Offer', 'sellkit' ),
55 ],
56 ]
57 );
58
59 $this->add_control(
60 'title',
61 [
62 'label' => __( 'Title', 'sellkit' ),
63 'default' => __( 'Offer Action', 'sellkit' ),
64 'type' => 'text',
65 ]
66 );
67
68 $this->add_control(
69 'sub_title',
70 [
71 'label' => __( 'Sub Title', 'sellkit' ),
72 'type' => 'text',
73 ]
74 );
75
76 $this->add_responsive_control(
77 'content_align',
78 [
79 'label' => __( 'Alignment', 'sellkit' ),
80 'type' => 'choose',
81 'default' => 'left',
82 'options' => [
83 'left' => [
84 'title' => __( 'Left', 'sellkit' ),
85 'icon' => 'fa fa-align-left',
86 ],
87 'center' => [
88 'title' => __( 'Center', 'sellkit' ),
89 'icon' => 'fa fa-align-center',
90 ],
91 'right' => [
92 'title' => __( 'Right', 'sellkit' ),
93 'icon' => 'fa fa-align-right',
94 ],
95 ],
96 'selectors' => [
97 '{{WRAPPER}} .sellkit-accept-reject-button-widget' => 'text-align: {{VALUE}};',
98 ],
99 ]
100 );
101
102 $this->add_control(
103 'button_size',
104 [
105 'label' => __( 'Size', 'sellkit' ),
106 'type' => 'select',
107 'default' => 'md',
108 'options' => Widget_Button::get_button_sizes(),
109 ]
110 );
111
112 $this->add_control(
113 'selected_icon',
114 [
115 'label' => __( 'Icon', 'elementor' ),
116 'type' => 'icons',
117 'fa4compatibility' => 'icon',
118 'skin' => 'inline',
119 'label_block' => false,
120 ]
121 );
122
123 $this->add_control(
124 'icon_spacing',
125 [
126 'label' => __( 'Icon Spacing', 'sellkit' ),
127 'type' => 'slider',
128 'default' => [
129 'size' => 10,
130 ],
131 'range' => [
132 'px' => [
133 'min' => 0,
134 'max' => 100,
135 ],
136 ],
137 'selectors' => [
138 '{{WRAPPER}} .sellkit-accept-reject-button svg' => 'margin-right: {{SIZE}}{{UNIT}};',
139 '{{WRAPPER}} .sellkit-accept-reject-button i' => 'margin-right: {{SIZE}}{{UNIT}};',
140 'body.rtl {{WRAPPER}} .sellkit-accept-reject-button svg' => 'margin-left: {{SIZE}}{{UNIT}};',
141 'body.rtl {{WRAPPER}} .sellkit-accept-reject-button i' => 'margin-left: {{SIZE}}{{UNIT}};',
142 ],
143 'condition' => [
144 'selected_icon[value]!' => '',
145 ],
146 ]
147 );
148
149 $this->add_responsive_control(
150 'icon_size',
151 [
152 'label' => esc_html__( 'Icon Size', 'jupiterx-core' ),
153 'type' => Controls_Manager::SLIDER,
154 'size_units' => [ 'px' ],
155 'range' => [
156 'px' => [
157 'min' => 0,
158 'max' => 75,
159 'step' => 1,
160 ],
161 ],
162 'default' => [
163 'unit' => 'px',
164 'size' => 16,
165 ],
166 'selectors' => [
167 '{{WRAPPER}} .sellkit-accept-reject-button-widget .sellkit-accept-reject-button i' => 'font-size: {{SIZE}}{{UNIT}};',
168 '{{WRAPPER}} .sellkit-accept-reject-button-widget .sellkit-accept-reject-button svg' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};',
169 ],
170 'condition' => [
171 'selected_icon[value]!' => '',
172 ],
173 ]
174 );
175
176 $this->add_control(
177 'title_spacing',
178 [
179 'label' => __( 'Title Spacing', 'sellkit' ),
180 'type' => Controls_Manager::SLIDER,
181 'default' => [
182 'size' => 10,
183 ],
184 'range' => [
185 'px' => [
186 'min' => 0,
187 'max' => 50,
188 ],
189 ],
190 'selectors' => [
191 '{{WRAPPER}} .sellkit-accept-reject-button-title' => 'margin-bottom: {{SIZE}}{{UNIT}};',
192 ],
193 'condition' => [
194 'sub_title!' => '',
195 ],
196 ]
197 );
198
199 $this->end_controls_section();
200 }
201
202 /**
203 * Style section controls.
204 *
205 * @since 1.1.0
206 */
207 private function register_style_box_controls() {
208 $this->start_controls_section(
209 'style',
210 [
211 'label' => __( 'Button', 'sellkit' ),
212 'tab' => 'style',
213 ]
214 );
215
216 $this->add_group_control(
217 'typography',
218 [
219 'name' => 'input_typography',
220 'scheme' => '3',
221 'selector' => '{{WRAPPER}} .sellkit-accept-reject-button-widget .sellkit-accept-reject-button-title',
222 ]
223 );
224
225 $this->add_group_control(
226 'typography',
227 [
228 'name' => 'sub_title_typography',
229 'label' => __( 'Subtitle Typography', 'sellkit' ),
230 'scheme' => '3',
231 'selector' => '{{WRAPPER}} .sellkit-accept-reject-button-widget .sellkit-accept-reject-button .sellkit-accept-reject-button-sub-title',
232 'condition' => [
233 'sub_title!' => '',
234 ],
235 ]
236 );
237
238 $this->add_group_control(
239 'text-shadow',
240 [
241 'name' => 'play_icon_shadow',
242 'fields_options' => [
243 'text_shadow_type' => [
244 'label' => __( 'Text Shadow', 'sellkit' ),
245 ],
246 ],
247 'selector' => '{{WRAPPER}} .sellkit-accept-reject-button-widget .sellkit-accept-reject-button',
248 ]
249 );
250
251 $this->start_controls_tabs( 'tabs_content' );
252
253 $this->start_controls_tab(
254 'tab_content_normal',
255 [
256 'label' => __( 'Normal', 'sellkit' ),
257 ]
258 );
259
260 $this->add_control(
261 'text_color',
262 [
263 'label' => __( 'Text Color', 'sellkit' ),
264 'type' => 'color',
265 'selectors' => [
266 '{{WRAPPER}} .sellkit-accept-reject-button-widget .sellkit-accept-reject-button' => 'color: {{VALUE}} !important;',
267 '{{WRAPPER}} .sellkit-accept-reject-button-widget .sellkit-accept-reject-button svg' => 'fill: {{VALUE}} !important;',
268 ],
269 ]
270 );
271
272 $this->add_group_control(
273 'background',
274 [
275 'name' => 'background',
276 'label' => __( 'Background Type', 'sellkit' ),
277 'type' => 'background',
278 'default' => '#635cff',
279 'selector' => '{{WRAPPER}} .sellkit-accept-reject-button-widget .sellkit-accept-reject-button',
280 ]
281 );
282
283 $this->end_controls_tab();
284
285 $this->start_controls_tab(
286 'tab_content_hover',
287 [
288 'label' => __( 'Hover', 'sellkit' ),
289 ]
290 );
291
292 $this->add_control(
293 'hover_text_color',
294 [
295 'label' => __( 'Text Color', 'sellkit' ),
296 'type' => 'color',
297 'selectors' => [
298 '{{WRAPPER}} .sellkit-accept-reject-button-widget .sellkit-accept-reject-button:hover' => 'color: {{VALUE}} !important;',
299 '{{WRAPPER}} .sellkit-accept-reject-button-widget .sellkit-accept-reject-button:hover > svg' => 'fill: {{VALUE}} !important;',
300 ],
301 ]
302 );
303
304 $this->add_group_control(
305 'background',
306 [
307 'name' => 'hover_background',
308 'label' => __( 'Background Type', 'sellkit' ),
309 'type' => 'background',
310 'selector' => '{{WRAPPER}} .sellkit-accept-reject-button-widget .sellkit-accept-reject-button:hover',
311 ]
312 );
313
314 $this->end_controls_tab();
315
316 $this->end_controls_tabs();
317
318 $this->add_control(
319 'border_separator',
320 [
321 'type' => 'divider',
322 ]
323 );
324
325 $this->add_control(
326 'border_type',
327 [
328 'label' => __( 'Border Type', 'sellkit' ),
329 'type' => 'select',
330 'options' => [
331 '' => __( 'None', 'sellkit' ),
332 'solid' => __( 'Solid', 'sellkit' ),
333 'double' => __( 'Double', 'sellkit' ),
334 'dotted' => __( 'Dotted', 'sellkit' ),
335 'dashed' => __( 'Dashed', 'sellkit' ),
336 'groove' => __( 'Groove', 'sellkit' ),
337 ],
338 'selectors' => [
339 '{{WRAPPER}} .sellkit-accept-reject-button-widget .sellkit-accept-reject-button' => 'border-style: {{VALUE}} !important;',
340 ],
341 ]
342 );
343
344 $this->add_control(
345 'border_color',
346 [
347 'label' => __( 'Border Color', 'sellkit' ),
348 'type' => 'color',
349 'selectors' => [
350 '{{WRAPPER}} .sellkit-accept-reject-button-widget .sellkit-accept-reject-button' => 'border-color: {{VALUE}} !important;',
351 ],
352 'condition' => [
353 'border_type!' => '',
354 ],
355 ]
356 );
357
358 $this->add_responsive_control(
359 'border_width',
360 [
361 'label' => __( 'Border Width', 'sellkit' ),
362 'type' => 'slider',
363 'size_units' => [ 'px' ],
364 'default' => [
365 'size' => 1,
366 ],
367 'range' => [
368 'px' => [
369 'min' => 0,
370 'max' => 100,
371 ],
372 ],
373 'selectors' => [
374 '{{WRAPPER}} .sellkit-accept-reject-button-widget .sellkit-accept-reject-button' => 'border-width: {{SIZE}}{{UNIT}} !important;',
375 ],
376 'condition' => [
377 'border_type!' => '',
378 ],
379 ]
380 );
381
382 $this->add_responsive_control(
383 'border_radius',
384 [
385 'label' => __( 'Border Radius', 'sellkit' ),
386 'type' => 'dimensions',
387 'size_units' => [ 'px', '%', 'em' ],
388 'default' => [
389 'unit' => 'px',
390 ],
391 'selectors' => [
392 '{{WRAPPER}} .sellkit-accept-reject-button-widget .sellkit-accept-reject-button' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
393 ],
394 ]
395 );
396
397 $this->add_group_control(
398 'box-shadow',
399 [
400 'name' => 'box_shadow',
401 'selector' => '{{WRAPPER}} .sellkit-accept-reject-button-widget .sellkit-accept-reject-button',
402 ]
403 );
404
405 $this->add_control(
406 'padding_separator',
407 [
408 'type' => 'divider',
409 ]
410 );
411
412 $this->add_responsive_control(
413 'personalised_coupons_padding',
414 [
415 'label' => __( 'Padding', 'sellkit' ),
416 'type' => 'dimensions',
417 'size_units' => [ 'px', 'em', '%' ],
418 'selectors' => [
419 '{{WRAPPER}} .sellkit-accept-reject-button-widget .sellkit-accept-reject-button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
420 ],
421 ]
422 );
423
424 $this->end_controls_section();
425 }
426
427 protected function render() {
428 $order_key = sellkit_htmlspecialchars( INPUT_GET, 'order-key' );
429 $settings = $this->get_settings_for_display();
430 $button_type_class = ( 'accept' === $settings['offer_type'] ) ? 'sellkit-upsell-accept-button' : 'sellkit-upsell-reject-button';
431 ?>
432 <div class="sellkit-accept-reject-button-widget">
433 <a
434 class="elementor-button sellkit-accept-reject-button <?php echo $button_type_class; ?> elementor-size-<?php echo $settings['button_size']; ?>"
435 data-order-key="<?php echo esc_attr( $order_key ); ?>"
436 >
437 <?php Icons_Manager::render_icon( $settings['selected_icon'] ); ?>
438 <span class="sellkit-accept-reject-button-title" ><?php echo $settings['title']; ?></span>
439 <br>
440 <span class="sellkit-accept-reject-button-sub-title"><?php echo $settings['sub_title']; ?></span>
441 </a>
442 <div class="sellkit-upsell-popup">
443 <div class="sellkit-upsell-popup-body">
444 <div class="sellkit-upsell-popup-header">
445 <img src="<?php echo sellkit()->plugin_url() . 'assets/img/icons/close-cross.svg'; ?>" >
446 </div>
447 <div class="sellkit-upsell-popup-content">
448 <div class="sellkit-upsell-popup-icon">
449 <img class="rotate sellkit-upsell-updating active" src="<?php echo sellkit()->plugin_url() . 'assets/img/icons/sync-alt.svg'; ?>" >
450 <img class="sellkit-upsell-accepted" src="<?php echo sellkit()->plugin_url() . 'assets/img/icons/check-circle.svg'; ?>" >
451 <img class="sellkit-upsell-rejected" src="<?php echo sellkit()->plugin_url() . 'assets/img/icons/times-circle.svg'; ?>" >
452 </div>
453 <div class="sellkit-upsell-popup-text">
454 <div class="sellkit-upsell-updating active">
455 <?php esc_html_e( 'Updating your order…', 'sellkit' ); ?>
456 </div>
457 <div class="sellkit-upsell-accepted">
458 <?php esc_html_e( 'Congratulations! Your item has been successfully added to the order.', 'sellkit' ); ?>
459 </div>
460 <div class="sellkit-upsell-rejected">
461 <?php esc_html_e( 'Sorry! We were unable to add this item to your order.', 'sellkit' ); ?>
462 </div>
463 </div>
464 </div>
465 </div>
466 </div>
467 </div>
468 <?php
469 }
470 }
471