PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.5.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.5.0
4.5.1 4.5.0 4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.11.1 1.11.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.13.0 2.14.0 2.14.1 2.15.0 2.15.1 2.16.0 2.16.1 2.16.2 2.16.3 2.17.0 2.17.1 2.17.2 2.18.0 2.19.0 2.19.2 2.19.3 2.19.4 2.2.0 2.2.1 2.20.0 2.20.1 2.20.2 2.20.3 2.20.4 2.20.5 2.20.6 2.21.0 2.22.0 2.22.1 2.23.0 2.24.0 2.25.0 2.25.1 2.25.2 2.26.0 2.27.0 2.27.1 2.28.0 2.29.0 2.29.1 2.29.2 2.29.3 2.29.4 2.3.0 2.3.1 2.30.0 2.31.0 2.31.1 2.31.2 2.31.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.40.0 2.40.1 2.5.0 2.5.1 2.5.2 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.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.9.0 3.0.0 3.0.0-RC1 3.0.0-RC2 3.0.0-beta1 3.0.0-beta2 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.10.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.1 3.13.2 3.13.3 3.13.4 3.14.0 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.17.0 3.17.1 3.17.2 3.17.3 3.17.4 3.17.5 3.17.6 3.18.0 3.19.0 3.19.1 3.19.2 3.2.0 3.2.1 3.2.2 3.20.0 3.20.1 3.3.0 3.3.1 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.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 4.0.0 4.0.1 4.0.2 4.0.3 trunk 4.1.0 0.2.19.1 4.1.1 1.0.0 4.2.0 1.0.1 1.0.2
surecart / app / src / Integrations / Elementor / Widgets / SaleBadge.php
surecart / app / src / Integrations / Elementor / Widgets Last commit date
AddToCartButton.php 3 months ago CartMenuIcon.php 1 year ago CollectionTags.php 1 year ago Media.php 1 year ago PriceChooser.php 1 year ago Product.php 1 year ago ProductCard.php 1 year ago ProductContent.php 7 months ago ProductLineItemNote.php 10 months ago ProductPricing.php 1 year ago ProductQuickAddButton.php 7 months ago ProductReviewAverageRatingStars.php 4 months ago ProductReviewAverageRatingValue.php 4 months ago ProductReviewBreakdown.php 4 months ago ProductReviewContent.php 4 months ago ProductReviewList.php 2 months ago ProductReviewRating.php 4 months ago ProductReviewTotalRating.php 4 months ago ProductReviews.php 4 months ago Quantity.php 1 year ago ReusableFormWidget.php 1 year ago SaleBadge.php 1 year ago SelectedPriceAdHocAmount.php 1 year ago VariantPills.php 6 months ago
SaleBadge.php
315 lines
1 <?php
2
3 namespace SureCart\Integrations\Elementor\Widgets;
4
5 if ( ! defined( 'ABSPATH' ) ) {
6 exit; // Exit if accessed directly.
7 }
8
9 /**
10 * Sale Badge widget.
11 */
12 class SaleBadge extends \Elementor\Widget_Base {
13 /**
14 * Get widget name.
15 *
16 * @return string
17 */
18 public function get_name() {
19 return 'surecart-sales-badge';
20 }
21
22 /**
23 * Get widget title.
24 *
25 * @return string
26 */
27 public function get_title() {
28 return esc_html__( 'Sale Badge', 'surecart' );
29 }
30
31 /**
32 * Get widget icon.
33 *
34 * @return string
35 */
36 public function get_icon() {
37 return 'eicon-tags';
38 }
39
40 /**
41 * Get the widget keywords.
42 *
43 * @return array
44 */
45 public function get_keywords() {
46 return array( 'surecart', 'sale', 'badge' );
47 }
48
49 /**
50 * Get the style dependencies.
51 *
52 * @return array
53 */
54 public function get_style_depends() {
55 return array( 'surecart-tag' );
56 }
57
58 /**
59 * Get the widget categories.
60 *
61 * @return array
62 */
63 public function get_categories() {
64 return array( 'surecart-elementor-elements' );
65 }
66
67 /**
68 * Register the widget content settings.
69 *
70 * @return void
71 */
72 private function register_content_settings() {
73 $this->start_controls_section(
74 'section_sale_badge',
75 [
76 'label' => esc_html__( 'Sale Badge', 'surecart' ),
77 ]
78 );
79
80 $this->add_control(
81 'text',
82 [
83 'label' => esc_html__( 'Text', 'surecart' ),
84 'type' => \Elementor\Controls_Manager::TEXT,
85 'placeholder' => esc_html__( 'Sale', 'surecart' ),
86 'default' => esc_html__( 'Sale', 'surecart' ),
87 ]
88 );
89
90 $this->end_controls_section();
91 }
92
93 /**
94 * Register the widget style settings.
95 *
96 * @return void
97 */
98 private function register_style_settings() {
99 $this->start_controls_section(
100 'section_collection_tag_style',
101 array(
102 'label' => esc_html__( 'Badge Style', 'surecart' ),
103 'tab' => \Elementor\Controls_Manager::TAB_STYLE,
104 )
105 );
106
107 $this->add_control(
108 'badge_text_color',
109 array(
110 'label' => esc_html__( 'Text Color', 'surecart' ),
111 'type' => \Elementor\Controls_Manager::COLOR,
112 'default' => '#ffffff',
113 'selectors' => [
114 '{{WRAPPER}} .wp-block-surecart-product-sale-badge' => 'color: {{VALUE}}',
115 ],
116 )
117 );
118
119 $this->add_control(
120 'badge_background_color',
121 array(
122 'label' => esc_html__( 'Background Color', 'surecart' ),
123 'type' => \Elementor\Controls_Manager::COLOR,
124 'global' => [
125 'default' => \Elementor\Core\Kits\Documents\Tabs\Global_Colors::COLOR_PRIMARY,
126 ],
127 'selectors' => [
128 '{{WRAPPER}} .wp-block-surecart-product-sale-badge' => 'background-color: {{VALUE}}',
129 ],
130 )
131 );
132
133 $this->add_group_control(
134 \Elementor\Group_Control_Typography::get_type(),
135 [
136 'name' => 'badge_typography',
137 'global' => [
138 'default' => \Elementor\Core\Kits\Documents\Tabs\Global_Typography::TYPOGRAPHY_PRIMARY,
139 ],
140 'selector' => '{{WRAPPER}} .wp-block-surecart-product-sale-badge',
141 ]
142 );
143
144 $this->add_responsive_control(
145 'badge_alignment',
146 [
147 'label' => esc_html__( 'Alignment', 'surecart' ),
148 'type' => \Elementor\Controls_Manager::CHOOSE,
149 'options' => [
150 'left' => [
151 'title' => esc_html__( 'Left', 'surecart' ),
152 'icon' => 'eicon-text-align-left',
153 ],
154 'center' => [
155 'title' => esc_html__( 'Center', 'surecart' ),
156 'icon' => 'eicon-text-align-center',
157 ],
158 'right' => [
159 'title' => esc_html__( 'Right', 'surecart' ),
160 'icon' => 'eicon-text-align-right',
161 ],
162 ],
163 'default' => 'center',
164 'selectors' => [
165 '{{WRAPPER}} .wp-block-surecart-product-sale-badge' => 'justify-content: {{VALUE}};',
166 ],
167 ]
168 );
169
170 $this->add_control(
171 'badge_padding',
172 [
173 'label' => esc_html__( 'Padding', 'surecart' ),
174 'type' => \Elementor\Controls_Manager::DIMENSIONS,
175 'size_units' => [ 'px', 'em', '%' ],
176 'selectors' => [
177 '{{WRAPPER}} .wp-block-surecart-product-sale-badge' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
178 ],
179 ]
180 );
181
182 $this->add_control(
183 'badge_margin',
184 [
185 'label' => esc_html__( 'Margin', 'surecart' ),
186 'type' => \Elementor\Controls_Manager::DIMENSIONS,
187 'size_units' => [ 'px', 'em', '%' ],
188 'selectors' => [
189 '{{WRAPPER}} .wp-block-surecart-product-sale-badge' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
190 ],
191 ]
192 );
193
194 $this->add_control(
195 'badge_width',
196 [
197 'label' => esc_html__( 'Width', 'surecart' ),
198 'type' => \Elementor\Controls_Manager::SELECT,
199 'options' => [
200 'fit-content' => esc_html__( 'Fit', 'surecart' ),
201 '100%' => esc_html__( 'Fill', 'surecart' ),
202 'fixed' => esc_html__( 'Fixed', 'surecart' ),
203 ],
204 'default' => 'fit-content',
205 'selectors' => [
206 '{{WRAPPER}} .wp-block-surecart-product-sale-badge' => 'width: {{VALUE}};',
207 ],
208 ]
209 );
210
211 $this->add_control(
212 'badge_fixed_width',
213 [
214 'label' => esc_html__( 'Specify a fixed width', 'surecart' ),
215 'type' => \Elementor\Controls_Manager::SLIDER,
216 'size_units' => [ 'px', 'em', '%' ],
217 'condition' => [
218 'badge_width' => 'fixed',
219 ],
220 'selectors' => [
221 '{{WRAPPER}} .wp-block-surecart-product-sale-badge' => 'width: {{SIZE}}{{UNIT}};',
222 ],
223 'default' => [
224 'size' => 100,
225 'unit' => 'px',
226 ],
227 'range' => [
228 'px' => [
229 'min' => 0,
230 'max' => 1000,
231 ],
232 'em' => [
233 'min' => 0,
234 'step' => 0.1,
235 'max' => 10,
236 ],
237 ],
238 ]
239 );
240
241 $this->add_group_control(
242 \Elementor\Group_Control_Border::get_type(),
243 [
244 'name' => 'border',
245 'selector' => '{{WRAPPER}} .wp-block-surecart-product-sale-badge',
246 'separator' => 'before',
247 ]
248 );
249
250 $this->add_responsive_control(
251 'border_radius',
252 [
253 'label' => esc_html__( 'Border Radius', 'surecart' ),
254 'type' => \Elementor\Controls_Manager::DIMENSIONS,
255 'size_units' => [ 'px', '%', 'em', 'rem', 'custom' ],
256 'global' => [
257 'default' => \Elementor\Core\Kits\Documents\Tabs\Global_Colors::COLOR_PRIMARY,
258 ],
259 'selectors' => [
260 '{{WRAPPER}} .wp-block-surecart-product-sale-badge' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
261 ],
262 ]
263 );
264
265 $this->end_controls_section();
266 }
267
268 /**
269 * Register the widget controls.
270 *
271 * @return void
272 */
273 protected function register_controls() {
274 $this->register_content_settings();
275 $this->register_style_settings();
276 }
277
278 /**
279 * Render the widget output on the frontend.
280 *
281 * @return void
282 */
283 protected function render() {
284 $settings = $this->get_settings_for_display();
285
286 if ( \Elementor\Plugin::$instance->editor->is_edit_mode() ) {
287 ?>
288 <div class="sc-tag sc-tag--primary wp-block-surecart-product-sale-badge">
289 <?php echo esc_html( $settings['text'] ); ?>
290 </div>
291 <?php
292 return;
293 }
294
295 ?>
296 <div <?php $this->print_render_attribute_string( 'wrapper' ); ?>>
297 <!-- wp:surecart/product-sale-badge {"text" : "<?php echo esc_attr( $settings['text'] ); ?>", "style":{"border":{"radius":"15px"},"typography":{"fontSize":"12px","lineHeight":"2.1"},"layout":{"selfStretch":"fit","flexSize":null}}} /-->
298 </div>
299 <?php
300 }
301
302 /**
303 * Render the widget output on the editor.
304 *
305 * @return void
306 */
307 protected function content_template() {
308 ?>
309 <div class="sc-tag sc-tag--primary wp-block-surecart-product-sale-badge">
310 {{{ settings.text }}}
311 </div>
312 <?php
313 }
314 }
315