PluginProbe
SellKit – Funnel builder and checkout optimizer for WooCommerce to sell more, faster / trunk
SellKit – Funnel builder and checkout optimizer for WooCommerce to sell more, faster vtrunk
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 trunk, at includes/elementor/modules/accept-reject-button/widgets/accept-reject-button.php

471 lines 12.0 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 esc_html__( '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', 'sellkit' ),
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', 'sellkit' ),
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 esc_attr( $button_type_class ); ?> elementor-size-<?php echo esc_attr( $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 wp_kses_post( $settings['title'] ); ?></span>
439 <br>
440 <span class="sellkit-accept-reject-button-sub-title"><?php echo wp_kses_post( $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 esc_url( 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 esc_url( sellkit()->plugin_url() . 'assets/img/icons/sync-alt.svg' ); ?>" >
450 <img class="sellkit-upsell-accepted" src="<?php echo esc_url( sellkit()->plugin_url() . 'assets/img/icons/check-circle.svg' ); ?>" >
451 <img class="sellkit-upsell-rejected" src="<?php echo esc_url( 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