PluginProbe
UiCore Elements – Free widgets and templates for Elementor / 1.3.17
UiCore Elements – Free widgets and templates for Elementor v1.3.17
1.3.17 1.3.16 trunk 1.0.0 1.0.1 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 All 41 releases
← All changes | includes/utils/form-component.php +1053 -752 1.0.161.3.17 View file →
@@ -1,11 +1,14 @@
1 1 <?php
2 +
2 3 namespace UiCoreElements\Utils;
3 4
4 5 use UiCoreElements\Helper;
6 +
5 7 use Elementor\Controls_Manager;
6 8 use Elementor\Group_Control_Typography;
7 9 use Elementor\Group_Control_Border;
10 +use Elementor\Group_Control_Box_Shadow;
8 11 use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
9 12 use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
10 13
11 14 defined('ABSPATH') || exit();
@@ -13,204 +16,215 @@
13 16 /**
14 17 * Register some Form Widgets controls and methods.
15 18 */
16 19
17 -trait Form_Component {
20 +trait Form_Component
21 +{
18 22
19 23 // Submission Controls
20 24 function TRAIT_register_submit_email_controls($instance, $slug = '')
21 25 {
22 - $instance->add_control(
23 - 'email_to' . $slug,
24 - [
25 - 'label' => esc_html__( 'To', 'uicore-elements' ),
26 - 'type' => Controls_Manager::TEXT,
27 - 'default' => get_option( 'admin_email' ),
28 - 'ai' => [
29 - 'active' => false,
30 - ],
31 - 'placeholder' => get_option( 'admin_email' ),
32 - 'label_block' => true,
33 - 'title' => esc_html__( 'Separate emails with commas', 'uicore-elements' ),
34 - 'render_type' => 'none',
35 - 'dynamic' => [
36 - 'active' => true,
37 - ],
38 - ]
39 - );
26 + $instance->add_control(
27 + 'email_to' . $slug,
28 + [
29 + 'label' => esc_html__('To', 'uicore-elements'),
30 + 'type' => Controls_Manager::TEXT,
31 + 'default' => get_option('admin_email'),
32 + 'ai' => [
33 + 'active' => false,
34 + ],
35 + 'placeholder' => get_option('admin_email'),
36 + 'label_block' => true,
37 + 'title' => esc_html__('Separate emails with commas', 'uicore-elements'),
38 + 'render_type' => 'none',
39 + 'dynamic' => [
40 + 'active' => true,
41 + ],
42 + ]
43 + );
40 44
41 - /* translators: %s: Site title. */
42 - $default_message = sprintf( html_entity_decode( esc_html__( 'New message from "%s"', 'uicore-elements' ) ), get_option( 'blogname' ) );
45 + /* translators: %s: Site title. */
46 + $default_message = sprintf(html_entity_decode(esc_html__('New message from "%s"', 'uicore-elements')), get_option('blogname'));
43 47
44 - $instance->add_control(
45 - 'email_subject' . $slug,
46 - [
47 - 'label' => esc_html__( 'Subject', 'uicore-elements' ),
48 - 'type' => Controls_Manager::TEXT,
49 - 'default' => $default_message,
50 - 'ai' => [
51 - 'active' => false,
52 - ],
53 - 'placeholder' => $default_message,
54 - 'label_block' => true,
55 - 'render_type' => 'none',
56 - 'dynamic' => [
57 - 'active' => true,
58 - ],
59 - ]
60 - );
48 + $instance->add_control(
49 + 'email_subject' . $slug,
50 + [
51 + 'label' => esc_html__('Subject', 'uicore-elements'),
52 + 'type' => Controls_Manager::TEXT,
53 + 'default' => $default_message,
54 + 'ai' => [
55 + 'active' => false,
56 + ],
57 + 'placeholder' => $default_message,
58 + 'label_block' => true,
59 + 'render_type' => 'none',
60 + 'dynamic' => [
61 + 'active' => true,
62 + ],
63 + ]
64 + );
61 65
62 - $instance->add_control(
63 - 'email_content' . $slug,
64 - [
65 - 'label' => esc_html__( 'Message', 'uicore-elements' ),
66 - 'type' => Controls_Manager::TEXTAREA,
67 - 'default' => '[all-fields]',
68 - 'ai' => [
69 - 'active' => false,
70 - ],
71 - 'placeholder' => '[all-fields]',
72 - 'description' => sprintf(
73 - /* translators: %s: The [all-fields] shortcode. */
74 - esc_html__( 'By default, all form fields are sent via %s shortcode. To customize sent fields, copy the shortcode that appears inside each field and paste it above.', 'uicore-elements' ),
75 - '<code>[all-fields]</code>'
76 - ),
77 - 'render_type' => 'none',
78 - 'dynamic' => [
79 - 'active' => true,
80 - ],
81 - ]
82 - );
66 + $instance->add_control(
67 + 'email_content' . $slug,
68 + [
69 + 'label' => esc_html__('Message', 'uicore-elements'),
70 + 'type' => Controls_Manager::TEXTAREA,
71 + 'default' => '[all-fields]',
72 + 'ai' => [
73 + 'active' => false,
74 + ],
75 + 'placeholder' => '[all-fields]',
76 + 'description' => sprintf(
77 + /* translators: %s: The [all-fields] shortcode. */
78 + esc_html__('By default, all form fields are sent via %s shortcode. To customize sent fields, copy the shortcode that appears inside each field and paste it above.', 'uicore-elements'),
79 + '<code>[all-fields]</code>'
80 + ),
81 + 'render_type' => 'none',
82 + 'dynamic' => [
83 + 'active' => true,
84 + ],
85 + ]
86 + );
83 87
84 - $site_domain = Helper::get_site_domain();
88 + $site_domain = Helper::get_site_domain();
85 89
86 - $instance->add_control(
87 - 'email_from' . $slug,
88 - [
89 - 'label' => esc_html__( 'From Email', 'uicore-elements' ),
90 - 'type' => Controls_Manager::TEXT,
91 - 'default' => 'email@' . $site_domain,
92 - 'ai' => [
93 - 'active' => false,
94 - ],
95 - 'render_type' => 'none',
96 - 'dynamic' => [
97 - 'active' => true,
98 - ],
99 - ]
100 - );
90 + $instance->add_control(
91 + 'email_from' . $slug,
92 + [
93 + 'label' => esc_html__('From Email', 'uicore-elements'),
94 + 'type' => Controls_Manager::TEXT,
95 + 'default' => 'email@' . $site_domain,
96 + 'ai' => [
97 + 'active' => false,
98 + ],
99 + 'render_type' => 'none',
100 + 'dynamic' => [
101 + 'active' => true,
102 + ],
103 + ]
104 + );
101 105
102 - $instance->add_control(
103 - 'email_from_name' . $slug,
104 - [
105 - 'label' => esc_html__( 'From Name', 'uicore-elements' ),
106 - 'type' => Controls_Manager::TEXT,
107 - 'default' => get_bloginfo( 'name' ),
108 - 'ai' => [
109 - 'active' => false,
110 - ],
111 - 'render_type' => 'none',
112 - 'dynamic' => [
113 - 'active' => true,
114 - ],
115 - ]
116 - );
106 + $instance->add_control(
107 + 'email_from_name' . $slug,
108 + [
109 + 'label' => esc_html__('From Name', 'uicore-elements'),
110 + 'type' => Controls_Manager::TEXT,
111 + 'default' => get_bloginfo('name'),
112 + 'ai' => [
113 + 'active' => false,
114 + ],
115 + 'render_type' => 'none',
116 + 'dynamic' => [
117 + 'active' => true,
118 + ],
119 + ]
120 + );
117 121
118 - $instance->add_control(
119 - 'email_reply_to' . $slug,
120 - [
121 - 'label' => esc_html__( 'Reply-To', 'uicore-elements' ),
122 - 'type' => Controls_Manager::TEXT,
123 - 'options' => [
124 - '' => '',
125 - ],
122 + $instance->add_control(
123 + 'email_reply_to' . $slug,
124 + [
125 + 'label' => esc_html__('Reply-To', 'uicore-elements'),
126 + 'type' => Controls_Manager::TEXT,
127 + 'options' => [
128 + '' => '',
129 + ],
126 130 'default' => 'noreply@' . Helper::get_site_domain(),
127 - 'render_type' => 'none',
128 - ]
129 - );
131 + 'render_type' => 'none',
132 + ]
133 + );
130 134
131 - $instance->add_control(
132 - 'email_to_cc' . $slug,
133 - [
134 - 'label' => esc_html__( 'Cc', 'uicore-elements' ),
135 - 'type' => Controls_Manager::TEXT,
136 - 'default' => '',
137 - 'ai' => [
138 - 'active' => false,
139 - ],
140 - 'title' => esc_html__( 'Separate emails with commas', 'uicore-elements' ),
141 - 'render_type' => 'none',
142 - 'dynamic' => [
143 - 'active' => true,
144 - ],
145 - ]
146 - );
135 + $instance->add_control(
136 + 'email_to_cc' . $slug,
137 + [
138 + 'label' => esc_html__('Cc', 'uicore-elements'),
139 + 'type' => Controls_Manager::TEXT,
140 + 'default' => '',
141 + 'ai' => [
142 + 'active' => false,
143 + ],
144 + 'title' => esc_html__('Separate emails with commas', 'uicore-elements'),
145 + 'render_type' => 'none',
146 + 'dynamic' => [
147 + 'active' => true,
148 + ],
149 + ]
150 + );
147 151
148 - $instance->add_control(
149 - 'email_to_bcc' . $slug,
150 - [
151 - 'label' => esc_html__( 'Bcc', 'uicore-elements' ),
152 - 'type' => Controls_Manager::TEXT,
153 - 'default' => '',
154 - 'ai' => [
155 - 'active' => false,
156 - ],
157 - 'title' => esc_html__( 'Separate emails with commas', 'uicore-elements' ),
158 - 'render_type' => 'none',
159 - 'dynamic' => [
160 - 'active' => true,
161 - ],
162 - ]
163 - );
152 + $instance->add_control(
153 + 'email_to_bcc' . $slug,
154 + [
155 + 'label' => esc_html__('Bcc', 'uicore-elements'),
156 + 'type' => Controls_Manager::TEXT,
157 + 'default' => '',
158 + 'ai' => [
159 + 'active' => false,
160 + ],
161 + 'title' => esc_html__('Separate emails with commas', 'uicore-elements'),
162 + 'render_type' => 'none',
163 + 'dynamic' => [
164 + 'active' => true,
165 + ],
166 + ]
167 + );
164 168
165 - $instance->add_control(
166 - 'form_metadata' . $slug,
167 - [
168 - 'label' => esc_html__( 'Meta Data', 'uicore-elements' ),
169 - 'type' => Controls_Manager::SELECT2,
170 - 'multiple' => true,
171 - 'label_block' => true,
172 - 'separator' => 'before',
173 - 'default' => [
174 - 'date',
175 - 'time',
176 - 'page_url',
177 - 'user_agent',
178 - 'remote_ip',
179 - ],
180 - 'options' => [
181 - 'date' => esc_html__( 'Date', 'uicore-elements' ),
182 - 'time' => esc_html__( 'Time', 'uicore-elements' ),
183 - 'page_url' => esc_html__( 'Page URL', 'uicore-elements' ),
184 - 'user_agent' => esc_html__( 'User Agent', 'uicore-elements' ),
185 - 'remote_ip' => esc_html__( 'Remote IP', 'uicore-elements' ),
186 - ],
187 - 'render_type' => 'none',
188 - ]
189 - );
169 + $instance->add_control(
170 + 'form_metadata' . $slug,
171 + [
172 + 'label' => esc_html__('Meta Data', 'uicore-elements'),
173 + 'type' => Controls_Manager::SELECT2,
174 + 'multiple' => true,
175 + 'label_block' => true,
176 + 'separator' => 'before',
177 + 'default' => [
178 + 'date',
179 + 'time',
180 + 'page_url',
181 + 'user_agent',
182 + 'remote_ip',
183 + ],
184 + 'options' => [
185 + 'date' => esc_html__('Date', 'uicore-elements'),
186 + 'time' => esc_html__('Time', 'uicore-elements'),
187 + 'page_url' => esc_html__('Page URL', 'uicore-elements'),
188 + 'user_agent' => esc_html__('User Agent', 'uicore-elements'),
189 + 'remote_ip' => esc_html__('Remote IP', 'uicore-elements'),
190 + ],
191 + 'render_type' => 'none',
192 + ]
193 + );
190 194
191 - $instance->add_control(
192 - 'email_content_type' . $slug,
193 - [
194 - 'label' => esc_html__( 'Send As', 'uicore-elements' ),
195 - 'type' => Controls_Manager::SELECT,
196 - 'default' => 'html',
197 - 'render_type' => 'none',
198 - 'options' => [
199 - 'html' => esc_html__( 'HTML', 'uicore-elements' ),
200 - 'plain' => esc_html__( 'Plain', 'uicore-elements' ),
201 - ],
202 - ]
203 - );
204 - }
195 + $instance->add_control(
196 + 'email_content_type' . $slug,
197 + [
198 + 'label' => esc_html__('Send As', 'uicore-elements'),
199 + 'type' => Controls_Manager::SELECT,
200 + 'default' => 'html',
201 + 'render_type' => 'none',
202 + 'options' => [
203 + 'html' => esc_html__('HTML', 'uicore-elements'),
204 + 'plain' => esc_html__('Plain', 'uicore-elements'),
205 + ],
206 + ]
207 + );
208 + }
205 209 function TRAIT_register_submit_redirect_controls()
206 210 {
211 + $this->start_controls_section(
212 + 'section_redirect',
213 + [
214 + 'label' => esc_html__('Redirect', 'uicore-elements'),
215 + 'condition' => [
216 + 'submit_actions' => 'redirect',
217 + ],
218 + ]
219 + );
220 +
207 221 $this->add_control(
208 222 'redirect_to',
209 223 [
210 - 'label' => esc_html__( 'Redirect To', 'uicore-elements' ),
224 + 'label' => esc_html__('Redirect To', 'uicore-elements'),
211 225 'type' => Controls_Manager::TEXT,
212 - 'placeholder' => esc_html__( 'https://your-link.com', 'uicore-elements' ),
226 + 'placeholder' => esc_html__('https://your-link.com', 'uicore-elements'),
213 227 'ai' => [
214 228 'active' => false,
215 229 ],
216 230 'dynamic' => [
@@ -222,29 +236,159 @@
222 236 'label_block' => true,
223 237 'render_type' => 'none',
224 238 ]
225 239 );
240 +
241 + $this->end_controls_section();
226 242 }
243 + function TRAIT_register_submit_popup_controls()
244 + {
245 + if (defined('UICORE_ASSETS')) {
246 + $this->start_controls_section(
247 + 'section_popup',
248 + [
249 + 'label' => esc_html__('Popup', 'uicore-elements'),
250 + 'condition' => [
251 + 'submit_actions' => 'popup',
252 + ],
253 + ]
254 + );
255 + $this->add_control(
256 + 'popup_action',
257 + [
258 + 'label' => esc_html__('Action', 'uicore-elements'),
259 + 'type' => Controls_Manager::SELECT,
260 + 'default' => '',
261 + 'options' => [
262 + '' => esc_html__('Choose', 'uicore-elements'),
263 + 'close' => esc_html__('Close Popup', 'uicore-elements'),
264 + 'open' => esc_html__('Open Popup', 'uicore-elements'),
265 + ],
266 + 'label_block' => true,
267 + 'render_type' => 'none',
268 + ]
269 + );
270 + $this->add_control(
271 + 'open_popup',
272 + [
273 + 'label' => esc_html__('Popup', 'uicore-elements'),
274 + 'type' => Controls_Manager::SELECT2,
275 + 'multiple' => false,
276 + 'options' => Helper::get_uicore_popups(),
277 + 'label_block' => true,
278 + 'render_type' => 'none',
279 + 'condition' => [
280 + 'popup_action' => 'open',
281 + ],
282 + ]
283 + );
284 + $this->add_control(
285 + 'popup_warning',
286 + [
287 + 'type' => Controls_Manager::ALERT,
288 + 'alert_type' => 'warning',
289 + 'dismissible' => false,
290 + 'heading' => esc_html__('Popup Visibility', 'uicore-elements'),
291 + 'content' => esc_html__("Make sure the chosen popup is enabled on the pages where your widget will be shown. Otherwise, this action won't work.", 'uicore-elements'),
292 + 'condition' => [
293 + 'popup_action' => 'open',
294 + ],
295 + ]
296 + );
297 +
298 + $this->end_controls_section();
299 + }
300 + }
301 +
302 + function TRAIT_register_submit_webhook_controls()
303 + {
304 + $this->start_controls_section(
305 + 'section_webhook',
306 + [
307 + 'label' => esc_html__('Webhook', 'uicore-elements'),
308 + 'condition' => [
309 + 'submit_actions' => 'webhook',
310 + ],
311 + ]
312 + );
313 +
314 + $this->add_control(
315 + 'webhook_url',
316 + [
317 + 'label' => esc_html__('Webhook URL', 'uicore-elements'),
318 + 'type' => Controls_Manager::TEXT,
319 + 'placeholder' => esc_html__('https://your-endpoint.com/webhook', 'uicore-elements'),
320 + 'label_block' => true,
321 + 'ai' => [
322 + 'active' => false,
323 + ],
324 + 'dynamic' => [
325 + 'active' => true,
326 + 'categories' => [
327 + 'url',
328 + ],
329 + ],
330 + 'render_type' => 'none',
331 + ]
332 + );
333 +
334 + $this->add_control(
335 + 'webhook_advanced_data',
336 + [
337 + 'label' => esc_html__('Advanced Data', 'uicore-elements'),
338 + 'type' => Controls_Manager::SWITCHER,
339 + 'label_on' => esc_html__('On', 'uicore-elements'),
340 + 'label_off' => esc_html__('Off', 'uicore-elements'),
341 + 'return_value' => 'true',
342 + 'default' => '',
343 + 'render_type' => 'none',
344 + ]
345 + );
346 +
347 + $this->end_controls_section();
348 + }
349 +
227 350 /**
228 - * Register MailChimp controls for the submit action.
351 + * Register Newsletter Services controls for the submit action.
229 352 *
230 - * @param $instance - The widget instance. Required if $has_repeaters is true.
231 - * @param bool $has_repeaters - Enable Field Mapping control if the widget has dynamic fields widh repeaters.
353 + * @param array $services - The list of services available.
354 + * @param bool $field_mapping - Enable Field Mapping control if the widget accepts form fields management.
232 355 *
233 356 * @return void
234 357 */
235 - function TRAIT_register_submit_mailchimp_controls($instance = null, bool $has_repeaters = false)
358 + function TRAIT_register_submit_newsletter_services_controls(array $services, bool $field_mapping = false)
236 359 {
237 360
238 - if( !get_option('uicore_elements_mailchimp_secret_key') ) {
361 + // Get and build the newsletter services section conditional display
362 + $terms = [];
363 + foreach ($services as $service) {
364 + $terms[] = [
365 + 'name' => 'submit_actions',
366 + 'operator' => 'contains',
367 + 'value' => $service,
368 + ];
369 + }
370 +
371 + $this->start_controls_section(
372 + 'newsletter_services_section',
373 + [
374 + 'label' => esc_html__('Newsletter Service', 'uicore-elements'),
375 + 'conditions' => [
376 + 'relation' => 'or',
377 + 'terms' => $terms,
378 + ],
379 + ]
380 + );
381 +
382 + if (!get_option('uicore_elements_newsletter_service_key')) {
239 383 $this->add_control(
240 - 'mailchimp_warning',
384 + 'services_warning',
241 385 [
242 386 'type' => Controls_Manager::ALERT,
243 387 'alert_type' => 'warning',
244 388 'dismissible' => false,
245 - 'heading' => esc_html__("You haven't set your Mailchimp API key yet.", 'uicore-elements'),
246 - 'content' => Helper::get_admin_settings_url(esc_html__("Click here to configure your API keys.", 'uicore-elements' )),
389 + 'heading' => esc_html__("You haven't set your Newsletter Service API key yet.", 'uicore-elements'),
390 + 'content' => Helper::get_admin_settings_url(esc_html__("Click here to configure your API keys.", 'uicore-elements')),
247 391 ]
248 392 );
249 393 }
250 394
@@ -250,11 +394,11 @@
250 394
251 395 $this->add_control(
252 396 'mailchimp_audience_id',
253 397 [
254 - 'label' => esc_html__( 'Audience ID', 'uicore-elements' ),
398 + 'label' => esc_html__('ID', 'uicore-elements'),
255 399 'type' => Controls_Manager::TEXT,
256 - 'description' => esc_html__( 'Enter the Audience ID to subscribe the user to.', 'uicore-elements' ),
400 + 'description' => esc_html__('The ID of the service list, group, audience, or form where contacts will be saved.', 'uicore-elements'),
257 401 'ai' => [
258 402 'active' => false,
259 403 ],
260 404 'dynamic' => [
@@ -264,24 +408,24 @@
264 408 'render_type' => 'none',
265 409 ]
266 410 );
267 411
268 - // If repeaters, than we need the field mapping controls
269 - if($has_repeaters) {
412 + if ($field_mapping) {
413 +
270 414 $this->add_control(
271 - 'mailchimp_map_description',
415 + 'services_map_description',
272 416 [
273 - 'label' => esc_html__( 'Field Mapping', 'uicore-elements' ),
417 + 'label' => esc_html__('Field Mapping', 'uicore-elements'),
274 418 'type' => Controls_Manager::RAW_HTML,
275 - 'raw' => esc_html__( 'You need to set the "ID" of the field you want to map.', 'uicore-elements' ),
419 + 'raw' => esc_html__('You need to set the "ID" of the field you want to map.', 'uicore-elements'),
276 420 'content_classes' => 'elementor-control-field-description',
277 421 'separator' => 'before',
278 422 ]
279 423 );
280 424 $this->add_control(
281 - 'mailchimp_email_id',
425 + 'mailchimp_fname_id',
282 426 [
283 - 'label' => esc_html__( 'Email*', 'uicore-elements' ),
427 + 'label' => esc_html__('First Name', 'uicore-elements'),
284 428 'type' => Controls_Manager::TEXT,
285 429 'ai' => [
286 430 'active' => false,
287 431 ],
@@ -288,23 +432,36 @@
288 432 'render_type' => 'none',
289 433 ]
290 434 );
291 435 $this->add_control(
292 - 'mailchimp_birthday_id',
436 + 'mailchimp_lname_id',
293 437 [
294 - 'label' => esc_html__( 'Birthday', 'uicore-elements' ),
438 + 'label' => esc_html__('Last Name', 'uicore-elements'),
295 439 'type' => Controls_Manager::TEXT,
296 - 'description' => esc_html__( 'Expects the format MM/DD.', 'uicore-elements' ),
297 440 'ai' => [
298 441 'active' => false,
299 442 ],
300 443 'render_type' => 'none',
444 + 'conditions' => [
445 + 'terms' => [
446 + [
447 + 'name' => 'submit_actions',
448 + 'operator' => '!contains',
449 + 'value' => 'moosend',
450 + ],
451 + [
452 + 'name' => 'submit_actions',
453 + 'operator' => '!contains',
454 + 'value' => 'getresponse',
455 + ],
456 + ]
457 + ]
301 458 ]
302 459 );
303 460 $this->add_control(
304 - 'mailchimp_fname_id',
461 + 'mailchimp_email_id',
305 462 [
306 - 'label' => esc_html__( 'First Name', 'uicore-elements' ),
463 + 'label' => esc_html__('Email*', 'uicore-elements'),
307 464 'type' => Controls_Manager::TEXT,
308 465 'ai' => [
309 466 'active' => false,
310 467 ],
@@ -311,46 +468,135 @@
311 468 'render_type' => 'none',
312 469 ]
313 470 );
314 471 $this->add_control(
315 - 'mailchimp_lname_id',
472 + 'mailchimp_birthday_id',
316 473 [
317 - 'label' => esc_html__( 'Last Name', 'uicore-elements' ),
474 + 'label' => esc_html__('Birthday', 'uicore-elements'),
318 475 'type' => Controls_Manager::TEXT,
319 476 'ai' => [
320 477 'active' => false,
321 478 ],
322 479 'render_type' => 'none',
480 + 'conditions' => [
481 + 'terms' => [
482 + [
483 + 'name' => 'submit_actions',
484 + 'operator' => '!contains',
485 + 'value' => 'moosend',
486 + ],
487 + [
488 + 'name' => 'submit_actions',
489 + 'operator' => '!contains',
490 + 'value' => 'getresponse',
491 + ],
492 + [
493 + 'name' => 'submit_actions',
494 + 'operator' => '!contains',
495 + 'value' => 'mailerlite',
496 + ],
497 + ]
498 + ]
323 499 ]
324 500 );
325 501 $this->add_control(
326 502 'mailchimp_phone_id',
327 503 [
328 - 'label' => esc_html__( 'Phone', 'uicore-elements' ),
504 + 'label' => esc_html__('Phone', 'uicore-elements'),
329 505 'type' => Controls_Manager::TEXT,
330 506 'ai' => [
331 507 'active' => false,
332 508 ],
333 509 'render_type' => 'none',
510 + 'conditions' => [
511 + 'terms' => [
512 + [
513 + 'name' => 'submit_actions',
514 + 'operator' => '!contains',
515 + 'value' => 'moosend',
516 + ],
517 + [
518 + 'name' => 'submit_actions',
519 + 'operator' => '!contains',
520 + 'value' => 'getresponse',
521 + ],
522 + ]
523 + ]
334 524 ]
335 525 );
336 526
527 + $this->add_control(
528 + 'services_custom_fields_description',
529 + [
530 + 'label' => esc_html__('Custom Fields', 'uicore-elements'),
531 + 'type' => Controls_Manager::RAW_HTML,
532 + 'raw' => esc_html__('Set the "ID" of the custom field you want to pass.', 'uicore-elements'),
533 + 'content_classes' => 'elementor-control-field-description',
534 + 'separator' => 'before',
535 + ]
536 + );
537 + $this->add_control(
538 + 'newsletter_service_custom_fields',
539 + [
540 + 'label' => esc_html__('Custom Fields', 'uicore-elements'),
541 + 'type' => Controls_Manager::REPEATER,
542 + 'prevent_empty' => false,
543 + 'fields' => [
544 + [
545 + 'name' => 'field_name',
546 + 'label' => esc_html__('API Field Key', 'uicore-elements'),
547 + 'description' => esc_html__('How the field is called in the newsletter service provider.', 'uicore-elements'),
548 + 'type' => Controls_Manager::TEXT,
549 + ],
550 + [
551 + 'name' => 'field_id',
552 + 'label' => esc_html__('Form Field ID', 'uicore-elements'),
553 + 'description' => esc_html__('The correspondent form field ID in the widget data.', 'uicore-elements'),
554 + 'type' => Controls_Manager::TEXT,
555 + ],
556 + [
557 + 'name' => 'field_type',
558 + 'label' => esc_html__('Sanitization Type', 'uicore-elements'),
559 + 'description' => esc_html__('Defines which sanitization type this field should receive. E.g.: phone number validation.', 'uicore-elements'),
560 + 'default' => 'text',
561 + 'options' => [
562 + 'text' => esc_html__('Text', 'uicore-elements'),
563 + 'email' => esc_html__('Email', 'uicore-elements'),
564 + 'phone' => esc_html__('Phone', 'uicore-elements'),
565 + 'birthday' => esc_html__('Birthday', 'uicore-elements'),
566 + 'date' => esc_html__('Date', 'uicore-elements'),
567 + ],
568 + 'type' => Controls_Manager::SELECT,
569 + ]
570 + ],
571 + ]
572 + );
337 573 }
574 +
575 + $this->end_controls_section();
338 576 }
339 577
340 578 // Settings and Content Controls
341 579 function TRAIT_register_additional_controls($messages)
342 580 {
581 + $this->start_controls_section(
582 + 'section_form_options',
583 + [
584 + 'label' => esc_html__('Additional Options', 'uicore-elements'),
585 + 'tab' => Controls_Manager::TAB_CONTENT,
586 + ]
587 + );
588 +
343 589 $this->add_control(
344 590 'form_id',
345 591 [
346 - 'label' => esc_html__( 'Form ID', 'uicore-elements' ),
592 + 'label' => esc_html__('Form ID', 'uicore-elements'),
347 593 'type' => Controls_Manager::TEXT,
348 594 'ai' => [
349 595 'active' => false,
350 596 ],
351 597 'placeholder' => 'new_form_id',
352 - 'description' => esc_html__( 'Please make sure the ID is unique and not used elsewhere on the page this form is displayed. This field allows `A-z 0-9` & underscore chars without spaces.', 'uicore-elements' ),
598 + 'description' => esc_html__('Please make sure the ID is unique and not used elsewhere on the page this form is displayed. This field allows `A-z 0-9` & underscore chars without spaces.', 'uicore-elements'),
353 599 'separator' => 'after',
354 600 'dynamic' => [
355 601 'active' => true,
356 602 ],
@@ -358,13 +604,13 @@
358 604 );
359 605 $this->add_control(
360 606 'form_validation',
361 607 [
362 - 'label' => esc_html__( 'Form Validation', 'uicore-elements' ),
608 + 'label' => esc_html__('Form Validation', 'uicore-elements'),
363 609 'type' => Controls_Manager::SELECT,
364 610 'options' => [
365 - '' => esc_html__( 'Browser Default', 'uicore-elements' ),
366 - 'no' => esc_html__( 'No validation', 'uicore-elements' ),
611 + '' => esc_html__('Browser Default', 'uicore-elements'),
612 + 'no' => esc_html__('No validation', 'uicore-elements'),
367 613 ],
368 614 'default' => '',
369 615 ]
370 616 );
@@ -370,9 +616,9 @@
370 616 );
371 617 $this->add_control(
372 618 'custom_messages',
373 619 [
374 - 'label' => esc_html__( 'Custom Messages', 'uicore-elements' ),
620 + 'label' => esc_html__('Custom Messages', 'uicore-elements'),
375 621 'type' => Controls_Manager::SWITCHER,
376 622 'default' => '',
377 623 'separator' => 'before',
378 624 'render_type' => 'none',
@@ -380,9 +626,9 @@
380 626 );
381 627 $this->add_control(
382 628 'success_message',
383 629 [
384 - 'label' => esc_html__( 'Success Message', 'uicore-elements' ),
630 + 'label' => esc_html__('Success Message', 'uicore-elements'),
385 631 'type' => Controls_Manager::TEXT,
386 632 'default' => $messages['success'],
387 633 'placeholder' => $messages['success'],
388 634 'label_block' => true,
@@ -397,9 +643,9 @@
397 643 );
398 644 $this->add_control(
399 645 'error_message',
400 646 [
401 - 'label' => esc_html__( 'Form Error', 'uicore-elements' ),
647 + 'label' => esc_html__('Form Error', 'uicore-elements'),
402 648 'type' => Controls_Manager::TEXT,
403 649 'default' => $messages['error'],
404 650 'placeholder' => $messages['error'],
405 651 'label_block' => true,
@@ -414,9 +660,9 @@
414 660 );
415 661 $this->add_control(
416 662 'mail_error_message',
417 663 [
418 - 'label' => esc_html__( 'Email Sending Error', 'uicore-elements' ),
664 + 'label' => esc_html__('Email Sending Error', 'uicore-elements'),
419 665 'type' => Controls_Manager::TEXT,
420 666 'default' => $messages['mail_error'],
421 667 'placeholder' => $messages['mail_error'],
422 668 'label_block' => true,
@@ -431,9 +677,9 @@
431 677 );
432 678 $this->add_control(
433 679 'redirect_message',
434 680 [
435 - 'label' => esc_html__( 'Sucessfull Redirect', 'uicore-elements' ),
681 + 'label' => esc_html__('Sucessfull Redirect', 'uicore-elements'),
436 682 'type' => Controls_Manager::TEXT,
437 683 'default' => $messages['redirect'],
438 684 'placeholder' => $messages['redirect'],
439 685 'label_block' => true,
@@ -456,8 +702,9 @@
456 702 'active' => true,
457 703 ],
458 704 ]
459 705 );
706 + $this->end_controls_section();
460 707 }
461 708 function TRAIT_register_button_controls(string $submit_text = 'send')
462 709 {
463 710 $this->add_responsive_control(
@@ -462,9 +709,9 @@
462 709 {
463 710 $this->add_responsive_control(
464 711 'button_width',
465 712 [
466 - 'label' => esc_html__( 'Column Width', 'uicore-elements' ),
713 + 'label' => esc_html__('Column Width', 'uicore-elements'),
467 714 'type' => Controls_Manager::SELECT,
468 715 'options' => $this->TRAIT_get_width_values(),
469 716 'default' => '20',
470 717 ]
@@ -471,25 +718,25 @@
471 718 );
472 719 $this->add_responsive_control(
473 720 'button_align',
474 721 [
475 - 'label' => esc_html__( 'Alignment', 'uicore-elements' ),
722 + 'label' => esc_html__('Alignment', 'uicore-elements'),
476 723 'type' => Controls_Manager::CHOOSE,
477 724 'options' => [
478 725 'left' => [
479 - 'title' => esc_html__( 'Left', 'uicore-elements' ),
726 + 'title' => esc_html__('Left', 'uicore-elements'),
480 727 'icon' => 'eicon-text-align-left',
481 728 ],
482 729 'center' => [
483 - 'title' => esc_html__( 'Center', 'uicore-elements' ),
730 + 'title' => esc_html__('Center', 'uicore-elements'),
484 731 'icon' => 'eicon-text-align-center',
485 732 ],
486 733 'right' => [
487 - 'title' => esc_html__( 'Right', 'uicore-elements' ),
734 + 'title' => esc_html__('Right', 'uicore-elements'),
488 735 'icon' => 'eicon-text-align-right',
489 736 ],
490 737 'stretch' => [
491 - 'title' => esc_html__( 'Justified', 'uicore-elements' ),
738 + 'title' => esc_html__('Justified', 'uicore-elements'),
492 739 'icon' => 'eicon-text-align-justify',
493 740 ],
494 741 ],
495 742 'default' => 'stretch',
@@ -498,12 +745,14 @@
498 745 );
499 746 $this->add_control(
500 747 'button_text',
501 748 [
502 - 'label' => esc_html__( 'Submit', 'uicore-elements' ),
749 + 'label' => esc_html__('Submit', 'uicore-elements'),
503 750 'type' => Controls_Manager::TEXT,
504 - 'default' => esc_html__( $submit_text, 'uicore-elements' ),
505 - 'placeholder' => esc_html__( $submit_text, 'uicore-elements' ),
751 + /* translators: %s: Submit text */
752 + 'default' => esc_html(sprintf('%s', $submit_text), 'uicore-elements'),
753 + /* translators: %s: Submit text */
754 + 'placeholder' => esc_html(sprintf('%s', $submit_text), 'uicore-elements'),
506 755 'dynamic' => [
507 756 'active' => true,
508 757 ],
509 758 'ai' => [
@@ -513,9 +762,9 @@
513 762 );
514 763 $this->add_control(
515 764 'selected_button_icon',
516 765 [
517 - 'label' => esc_html__( 'Icon', 'uicore-elements' ),
766 + 'label' => esc_html__('Icon', 'uicore-elements'),
518 767 'type' => Controls_Manager::ICONS,
519 768 'skin' => 'inline',
520 769 'label_block' => false,
521 770 ]
@@ -522,14 +771,14 @@
522 771 );
523 772 $this->add_control(
524 773 'button_icon_align',
525 774 [
526 - 'label' => esc_html__( 'Icon Position', 'uicore-elements' ),
775 + 'label' => esc_html__('Icon Position', 'uicore-elements'),
527 776 'type' => Controls_Manager::SELECT,
528 777 'default' => 'left',
529 778 'options' => [
530 - 'left' => esc_html__( 'Before', 'uicore-elements' ),
531 - 'right' => esc_html__( 'After', 'uicore-elements' ),
779 + 'left' => esc_html__('Before', 'uicore-elements'),
780 + 'right' => esc_html__('After', 'uicore-elements'),
532 781 ],
533 782 'condition' => [
534 783 'selected_button_icon[value]!' => '',
535 784 ],
@@ -537,11 +786,11 @@
537 786 );
538 787 $this->add_control(
539 788 'button_icon_indent',
540 789 [
541 - 'label' => esc_html__( 'Icon Spacing', 'uicore-elements' ),
790 + 'label' => esc_html__('Icon Spacing', 'uicore-elements'),
542 791 'type' => Controls_Manager::SLIDER,
543 - 'size_units' => [ 'px', 'em', 'rem', 'custom' ],
792 + 'size_units' => ['px', 'em', 'rem', 'custom'],
544 793 'range' => [
545 794 'px' => [
546 795 'max' => 100,
547 796 ],
@@ -563,16 +812,16 @@
563 812 );
564 813 $this->add_control(
565 814 'button_css_id',
566 815 [
567 - 'label' => esc_html__( 'Button ID', 'uicore-elements' ),
816 + 'label' => esc_html__('Button ID', 'uicore-elements'),
568 817 'type' => Controls_Manager::TEXT,
569 818 'default' => '',
570 819 'ai' => [
571 820 'active' => false,
572 821 ],
573 - 'title' => esc_html__( 'Add your custom id WITHOUT the Pound key. e.g: my-id', 'uicore-elements' ),
574 - 'description' => esc_html__( 'Please make sure the ID is unique and not used elsewhere on the page this form is displayed. This field allows `A-z 0-9` & underscore chars without spaces.', 'uicore-elements' ),
822 + 'title' => esc_html__('Add your custom id WITHOUT the Pound key. e.g: my-id', 'uicore-elements'),
823 + 'description' => esc_html__('Please make sure the ID is unique and not used elsewhere on the page this form is displayed. This field allows `A-z 0-9` & underscore chars without spaces.', 'uicore-elements'),
575 824 'separator' => 'before',
576 825 'dynamic' => [
577 826 'active' => true,
578 827 ],
@@ -579,608 +828,660 @@
579 828 ]
580 829 );
581 830 }
582 831
832 + /**
833 + * Register the submit action options;
834 + *
835 + * @param array $options - The options list for the elementor SELECT2 control.
836 + *
837 + * @return void
838 + */
839 + function TRAIT_register_submit_actions_controls($options)
840 + {
841 + $this->start_controls_section(
842 + 'section_actions',
843 + [
844 + 'label' => esc_html__('Actions After Submit', 'uicore-elements'),
845 + ]
846 + );
847 +
848 + $this->add_control(
849 + 'submit_actions',
850 + [
851 + 'label' => esc_html__('Submit Actions', 'uicore-elements'),
852 + 'type' => Controls_Manager::SELECT2,
853 + 'label_block' => true,
854 + 'multiple' => true,
855 + 'options' => $options,
856 + 'default' => ['email'],
857 + ]
858 + );
859 +
860 + $this->end_controls_section();
861 + }
862 +
583 863 // Style Controls
584 864 function TRAIT_register_form_style_controls($section = true)
585 865 {
586 - if($section){
866 + if ($section) {
587 867 $this->start_controls_section(
588 868 'section_form_style',
589 869 [
590 - 'label' => esc_html__( 'Form', 'uicore-elements' ),
870 + 'label' => esc_html__('Form', 'uicore-elements'),
591 871 'tab' => Controls_Manager::TAB_STYLE,
592 872 ]
593 873 );
594 874 }
595 - $this->add_control(
596 - 'column_gap',
597 - [
598 - 'label' => esc_html__( 'Columns Gap', 'uicore-elements' ),
599 - 'type' => Controls_Manager::SLIDER,
600 - 'size_units' => [ 'px', 'em', 'rem', 'custom' ],
601 - 'default' => [
602 - 'size' => 10,
875 + $this->add_control(
876 + 'column_gap',
877 + [
878 + 'label' => esc_html__('Columns Gap', 'uicore-elements'),
879 + 'type' => Controls_Manager::SLIDER,
880 + 'size_units' => ['px', 'em', 'rem', 'custom'],
881 + 'default' => [
882 + 'size' => 10,
883 + ],
884 + 'range' => [
885 + 'px' => [
886 + 'max' => 60,
603 887 ],
604 - 'range' => [
605 - 'px' => [
606 - 'max' => 60,
607 - ],
608 - 'em' => [
609 - 'max' => 6,
610 - ],
611 - 'rem' => [
612 - 'max' => 6,
613 - ],
888 + 'em' => [
889 + 'max' => 6,
614 890 ],
615 - 'selectors' => [
616 - '{{WRAPPER}} .ui-e-field-group' => 'padding-right: calc( {{SIZE}}{{UNIT}}/2 ); padding-left: calc( {{SIZE}}{{UNIT}}/2 );',
617 - '{{WRAPPER}} .ui-e-fields-wrp' => 'margin-left: calc( -{{SIZE}}{{UNIT}}/2 ); margin-right: calc( -{{SIZE}}{{UNIT}}/2 );',
891 + 'rem' => [
892 + 'max' => 6,
618 893 ],
619 - ]
620 - );
621 - $this->add_control(
622 - 'row_gap',
623 - [
624 - 'label' => esc_html__( 'Rows Gap', 'uicore-elements' ),
625 - 'type' => Controls_Manager::SLIDER,
626 - 'size_units' => [ 'px', 'em', 'rem', 'custom' ],
627 - 'default' => [
628 - 'size' => 10,
894 + ],
895 + 'selectors' => [
896 + '{{WRAPPER}} .ui-e-field-group' => 'padding-right: calc( {{SIZE}}{{UNIT}}/2 ); padding-left: calc( {{SIZE}}{{UNIT}}/2 );',
897 + '{{WRAPPER}} .ui-e-fields-wrp' => 'margin-left: calc( -{{SIZE}}{{UNIT}}/2 ); margin-right: calc( -{{SIZE}}{{UNIT}}/2 );',
898 + ],
899 + ]
900 + );
901 + $this->add_control(
902 + 'row_gap',
903 + [
904 + 'label' => esc_html__('Rows Gap', 'uicore-elements'),
905 + 'type' => Controls_Manager::SLIDER,
906 + 'size_units' => ['px', 'em', 'rem', 'custom'],
907 + 'default' => [
908 + 'size' => 10,
909 + ],
910 + 'range' => [
911 + 'px' => [
912 + 'max' => 60,
629 913 ],
630 - 'range' => [
631 - 'px' => [
632 - 'max' => 60,
633 - ],
634 - 'em' => [
635 - 'max' => 6,
636 - ],
637 - 'rem' => [
638 - 'max' => 6,
639 - ],
914 + 'em' => [
915 + 'max' => 6,
640 916 ],
641 - 'selectors' => [
642 - '{{WRAPPER}} .ui-e-field-group' => 'margin-bottom: {{SIZE}}{{UNIT}};',
643 - '{{WRAPPER}} .ui-e-fields-wrp' => 'margin-bottom: -{{SIZE}}{{UNIT}};',
917 + 'rem' => [
918 + 'max' => 6,
644 919 ],
645 - ]
646 - );
647 - $this->add_control(
648 - 'heading_label',
649 - [
650 - 'label' => esc_html__( 'Label', 'uicore-elements' ),
651 - 'type' => Controls_Manager::HEADING,
652 - 'separator' => 'before',
653 - ]
654 - );
655 - $this->add_control(
656 - 'label_spacing',
657 - [
658 - 'label' => esc_html__( 'Spacing', 'uicore-elements' ),
659 - 'type' => Controls_Manager::SLIDER,
660 - 'size_units' => [ 'px', 'em', 'rem', 'custom' ],
661 - 'default' => [
662 - 'size' => 0,
920 + ],
921 + 'selectors' => [
922 + '{{WRAPPER}} .ui-e-field-group' => 'margin-bottom: {{SIZE}}{{UNIT}};',
923 + '{{WRAPPER}} .ui-e-fields-wrp' => 'margin-bottom: -{{SIZE}}{{UNIT}};',
924 + ],
925 + ]
926 + );
927 + $this->add_control(
928 + 'heading_label',
929 + [
930 + 'label' => esc_html__('Label', 'uicore-elements'),
931 + 'type' => Controls_Manager::HEADING,
932 + 'separator' => 'before',
933 + ]
934 + );
935 + $this->add_control(
936 + 'label_spacing',
937 + [
938 + 'label' => esc_html__('Spacing', 'uicore-elements'),
939 + 'type' => Controls_Manager::SLIDER,
940 + 'size_units' => ['px', 'em', 'rem', 'custom'],
941 + 'default' => [
942 + 'size' => 0,
943 + ],
944 + 'range' => [
945 + 'px' => [
946 + 'max' => 60,
663 947 ],
664 - 'range' => [
665 - 'px' => [
666 - 'max' => 60,
667 - ],
668 - 'em' => [
669 - 'max' => 6,
670 - ],
671 - 'rem' => [
672 - 'max' => 6,
673 - ],
948 + 'em' => [
949 + 'max' => 6,
674 950 ],
675 - 'selectors' => [
676 - 'body {{WRAPPER}} .ui-e-field-group > label' => 'padding-bottom: {{SIZE}}{{UNIT}};',
951 + 'rem' => [
952 + 'max' => 6,
677 953 ],
678 - ]
679 - );
680 - $this->add_control(
681 - 'label_color',
682 - [
683 - 'label' => esc_html__( 'Text Color', 'uicore-elements' ),
684 - 'type' => Controls_Manager::COLOR,
685 - 'selectors' => [
686 - '{{WRAPPER}} .ui-e-field-group > label, {{WRAPPER}} .ui-e-field-subgroup label' => 'color: {{VALUE}};',
687 - ],
688 - 'global' => [
689 - 'default' => Global_Colors::COLOR_TEXT,
690 - ],
691 - ]
692 - );
693 - $this->add_control(
694 - 'mark_required_color',
695 - [
696 - 'label' => esc_html__( 'Mark Color', 'uicore-elements' ),
697 - 'type' => Controls_Manager::COLOR,
698 - 'default' => '',
699 - 'selectors' => [
700 - '{{WRAPPER}} .ui-e-required .ui-e-label:after' => 'color: {{COLOR}};',
701 - ],
702 - 'condition' => [
703 - 'mark_required' => 'yes',
704 - ],
705 - ]
706 - );
707 - $this->add_group_control(
708 - Group_Control_Typography::get_type(),
709 - [
710 - 'name' => 'label_typography',
711 - 'selector' => '{{WRAPPER}} .ui-e-field-group > label',
712 - 'global' => [
713 - 'default' => Global_Typography::TYPOGRAPHY_TEXT,
714 - ],
715 - ]
716 - );
717 - if($section){
954 + ],
955 + 'selectors' => [
956 + 'body {{WRAPPER}} .ui-e-field-group > label' => 'padding-bottom: {{SIZE}}{{UNIT}};',
957 + ],
958 + ]
959 + );
960 + $this->add_control(
961 + 'label_color',
962 + [
963 + 'label' => esc_html__('Text Color', 'uicore-elements'),
964 + 'type' => Controls_Manager::COLOR,
965 + 'selectors' => [
966 + '{{WRAPPER}} .ui-e-field-group > label, {{WRAPPER}} .ui-e-field-subgroup label' => 'color: {{VALUE}};',
967 + ],
968 + 'default' => 'var(--e-global-color-uicore_body)',
969 + ]
970 + );
971 + $this->add_control(
972 + 'mark_required_color',
973 + [
974 + 'label' => esc_html__('Mark Color', 'uicore-elements'),
975 + 'type' => Controls_Manager::COLOR,
976 + 'default' => '',
977 + 'selectors' => [
978 + '{{WRAPPER}} .ui-e-required .ui-e-label:after' => 'color: {{COLOR}};',
979 + ],
980 + 'condition' => [
981 + 'mark_required' => 'yes',
982 + ],
983 + ]
984 + );
985 + $this->add_group_control(
986 + Group_Control_Typography::get_type(),
987 + [
988 + 'name' => 'label_typography',
989 + 'selector' => '{{WRAPPER}} .ui-e-field-group > label',
990 + 'global' => [
991 + 'default' => Global_Typography::TYPOGRAPHY_TEXT,
992 + ],
993 + ]
994 + );
995 + $this->add_control(
996 + 'form_styles_component_divider',
997 + [
998 + 'type' => Controls_Manager::DIVIDER,
999 + ]
1000 + );
1001 + if ($section) {
718 1002 $this->end_controls_section();
719 1003 }
720 1004 }
721 1005 function TRAIT_register_fields_style_controls($section = true)
722 1006 {
723 - if($section){
1007 + if ($section) {
724 1008 $this->start_controls_section(
725 1009 'section_field_style',
726 1010 [
727 - 'label' => esc_html__( 'Fields', 'uicore-elements' ),
1011 + 'label' => esc_html__('Fields', 'uicore-elements'),
728 1012 'tab' => Controls_Manager::TAB_STYLE,
729 1013 ]
730 1014 );
731 1015 }
732 1016
733 - $this->start_controls_tabs(
734 - 'field_style_tabs'
735 - );
1017 + $this->start_controls_tabs(
1018 + 'field_style_tabs'
1019 + );
736 1020
737 - $this->start_controls_tab(
738 - 'field_normal_tab',
739 - [
740 - 'label' => esc_html__( 'Normal', 'uicore-elements' ),
741 - ]
742 - );
1021 + $this->start_controls_tab(
1022 + 'field_normal_tab',
1023 + [
1024 + 'label' => esc_html__('Normal', 'uicore-elements'),
1025 + ]
1026 + );
743 1027
744 - $this->add_group_control(
745 - Group_Control_Typography::get_type(),
746 - [
747 - 'name' => 'field_typography',
748 - 'selector' => '{{WRAPPER}} .ui-e-field-group .ui-e-field, {{WRAPPER}} .ui-e-field-subgroup label',
749 - 'global' => [
750 - 'default' => Global_Typography::TYPOGRAPHY_TEXT,
751 - ],
752 - ]
753 - );
754 - $this->add_control(
755 - 'field_text_color',
756 - [
757 - 'label' => esc_html__( 'Text Color', 'uicore-elements' ),
758 - 'type' => Controls_Manager::COLOR,
759 - 'selectors' => [
760 - '{{WRAPPER}} .ui-e-field-group .ui-e-field' => 'color: {{VALUE}};',
761 - ],
762 - 'global' => [
763 - 'default' => Global_Colors::COLOR_TEXT,
764 - ],
765 - ]
766 - );
767 - $this->add_control(
768 - 'field_placeholder_color',
769 - [
770 - 'label' => esc_html__( 'Placeholder Color', 'uicore-elements' ),
771 - 'type' => Controls_Manager::COLOR,
772 - 'selectors' => [
773 - '{{WRAPPER}} .ui-e-field-group .ui-e-field::placeholder' => 'color: {{VALUE}};',
774 - ],
775 - 'global' => [
776 - 'default' => Global_Colors::COLOR_TEXT,
777 - ],
778 - ]
779 - );
780 - $this->add_control(
781 - 'field_background_color',
782 - [
783 - 'label' => esc_html__( 'Background Color', 'uicore-elements' ),
784 - 'type' => Controls_Manager::COLOR,
785 - 'default' => '#ffffff',
786 - 'selectors' => [
787 - '{{WRAPPER}} .ui-e-field-group:not(.ui-e-field-type-file) .ui-e-field:not(.ui-e-field-select)' => 'background-color: {{VALUE}};',
788 - '{{WRAPPER}} .ui-e-field-group .ui-e-field-select select' => 'background-color: {{VALUE}};',
789 - ],
790 - ]
791 - );
792 - $this->add_group_control(
793 - Group_Control_Border::get_type(),
794 - [
795 - 'name' => 'field_border',
796 - 'selector' =>
797 - '{{WRAPPER}} .ui-e-field-group:not(.ui-e-field-type-file) .ui-e-field:not(.ui-e-field-select),
798 - {{WRAPPER}} .ui-e-field-group .ui-e-field-select select',
799 - ]
800 - );
1028 + $this->add_group_control(
1029 + Group_Control_Typography::get_type(),
1030 + [
1031 + 'name' => 'field_typography',
1032 + 'selector' => '{{WRAPPER}} .ui-e-field-group .ui-e-field, {{WRAPPER}} .ui-e-field-subgroup label, {{WRAPPER}} .ui-e-field-group .ui-e-field-select select',
1033 + 'global' => [
1034 + 'default' => Global_Typography::TYPOGRAPHY_TEXT,
1035 + ],
1036 + ]
1037 + );
1038 + $this->add_control(
1039 + 'field_text_color',
1040 + [
1041 + 'label' => esc_html__('Text Color', 'uicore-elements'),
1042 + 'type' => Controls_Manager::COLOR,
1043 + 'selectors' => [
1044 + '{{WRAPPER}} .ui-e-field-group .ui-e-field, {{WRAPPER}} .ui-e-field-group .ui-e-field-select select' => 'color: {{VALUE}};',
1045 + ],
1046 + 'default' => 'var(--e-global-color-uicore_body)',
801 1047
802 - $this->end_controls_tab();
1048 + ]
1049 + );
1050 + $this->add_control(
1051 + 'field_placeholder_color',
1052 + [
1053 + 'label' => esc_html__('Placeholder Color', 'uicore-elements'),
1054 + 'type' => Controls_Manager::COLOR,
1055 + 'selectors' => [
1056 + '{{WRAPPER}} .ui-e-field-group .ui-e-field::placeholder' => 'color: {{VALUE}};',
1057 + ],
1058 + 'default' => 'var(--e-global-color-uicore_body)',
803 1059
804 - $this->start_controls_tab(
805 - 'field_hover_tab',
806 - [
807 - 'label' => esc_html__( 'Hover', 'uicore-elements' ),
808 - ]
809 - );
1060 + ]
1061 + );
1062 + $this->add_control(
1063 + 'field_background_color',
1064 + [
1065 + 'label' => esc_html__('Background Color', 'uicore-elements'),
1066 + 'type' => Controls_Manager::COLOR,
1067 + 'default' => '#ffffff',
1068 + 'selectors' => [
1069 + '{{WRAPPER}} .ui-e-field-group:not(.ui-e-field-type-file, .ui-e-field-type-acceptance) .ui-e-field:not(.ui-e-field-select)' => 'background-color: {{VALUE}};',
1070 + '{{WRAPPER}} .ui-e-field-group .ui-e-field-select select' => 'background-color: {{VALUE}};',
1071 + ],
1072 + ]
1073 + );
1074 + $this->add_group_control(
1075 + Group_Control_Border::get_type(),
1076 + [
1077 + 'name' => 'field_border',
1078 + 'selector' =>
1079 + '{{WRAPPER}} .ui-e-field-group:not(.ui-e-field-type-file, .ui-e-field-type-acceptance) .ui-e-field:not(.ui-e-field-select),
1080 + {{WRAPPER}} .ui-e-field-group .ui-e-field-select select',
1081 + ]
1082 + );
1083 + $this->add_group_control(
1084 + Group_Control_Box_Shadow::get_type(),
1085 + [
1086 + 'name' => 'field_box_shadow',
1087 + 'selector' => '{{WRAPPER}} .ui-e-field-group:not(.ui-e-field-type-file, .ui-e-field-type-acceptance) .ui-e-field:not(.ui-e-field-select),
1088 + {{WRAPPER}} .ui-e-field-group .ui-e-field-select select',
1089 + ]
1090 + );
810 1091
811 - $this->add_control(
812 - 'field_text_hover_color',
813 - [
814 - 'label' => esc_html__( 'Text Color', 'uicore-elements' ),
815 - 'type' => Controls_Manager::COLOR,
816 - 'selectors' => [
817 - '{{WRAPPER}} .ui-e-field-group:hover .ui-e-field' => 'color: {{VALUE}};',
818 - ],
819 - 'global' => [
820 - 'default' => Global_Colors::COLOR_TEXT,
821 - ],
822 - ]
823 - );
824 - $this->add_control(
825 - 'field_placeholder_hover_color',
826 - [
827 - 'label' => esc_html__( 'Placeholder Color', 'uicore-elements' ),
828 - 'type' => Controls_Manager::COLOR,
829 - 'selectors' => [
830 - '{{WRAPPER}} .ui-e-field-group:hover .ui-e-field::placeholder' => 'color: {{VALUE}};',
831 - ],
832 - 'global' => [
833 - 'default' => Global_Colors::COLOR_TEXT,
834 - ],
835 - ]
836 - );
837 - $this->add_control(
838 - 'field_background_hover_color',
839 - [
840 - 'label' => esc_html__( 'Background Color', 'uicore-elements' ),
841 - 'type' => Controls_Manager::COLOR,
842 - 'default' => '#ffffff',
843 - 'selectors' => [
844 - '{{WRAPPER}} .ui-e-field-group:hover:not(.ui-e-field-type-file) .ui-e-field:not(.ui-e-field-select)' => 'background-color: {{VALUE}};',
845 - '{{WRAPPER}} .ui-e-field-group:hover .ui-e-field-select select' => 'background-color: {{VALUE}};',
846 - ],
847 - ]
848 - );
849 - $this->add_group_control(
850 - Group_Control_Border::get_type(),
851 - [
852 - 'name' => 'field_hover_border',
853 - 'selector' =>
854 - '{{WRAPPER}} .ui-e-field-group:hover:not(.ui-e-field-type-file) .ui-e-field:not(.ui-e-field-select),
855 - {{WRAPPER}} .ui-e-field-group:hover .ui-e-field-select select',
856 - ]
857 - );
1092 + $this->end_controls_tab();
858 1093
859 - $this->end_controls_tab();
1094 + $this->start_controls_tab(
1095 + 'field_hover_tab',
1096 + [
1097 + 'label' => esc_html__('Hover', 'uicore-elements'),
1098 + ]
1099 + );
860 1100
861 - $this->start_controls_tab(
862 - 'field_active_tab',
863 - [
864 - 'label' => esc_html__( 'Active', 'uicore-elements' ),
865 - ]
866 - );
1101 + $this->add_control(
1102 + 'field_text_hover_color',
1103 + [
1104 + 'label' => esc_html__('Text Color', 'uicore-elements'),
1105 + 'type' => Controls_Manager::COLOR,
1106 + 'selectors' => [
1107 + '{{WRAPPER}} .ui-e-field-group:hover .ui-e-field, {{WRAPPER}} .ui-e-field-group:hover .ui-e-field-select select' => 'color: {{VALUE}};',
1108 + ],
1109 + 'default' => 'var(--e-global-color-uicore_body)',
867 1110
868 - $this->add_control(
869 - 'field_text_active_color',
870 - [
871 - 'label' => esc_html__( 'Text Color', 'uicore-elements' ),
872 - 'type' => Controls_Manager::COLOR,
873 - 'selectors' => [
874 - '{{WRAPPER}} .ui-e-field-group .ui-e-field:focus' => 'color: {{VALUE}};',
875 - ],
876 - 'global' => [
877 - 'default' => Global_Colors::COLOR_TEXT,
878 - ],
879 - ]
880 - );
881 - $this->add_control(
882 - 'field_background_active_color',
883 - [
884 - 'label' => esc_html__( 'Background Color', 'uicore-elements' ),
885 - 'type' => Controls_Manager::COLOR,
886 - 'default' => '#ffffff',
887 - 'selectors' => [
888 - '{{WRAPPER}} .ui-e-field-group:not(.ui-e-field-type-file) .ui-e-field:focus:not(.ui-e-field-select)' => 'background-color: {{VALUE}};',
889 - '{{WRAPPER}} .ui-e-field-group .ui-e-field-select:focus select' => 'background-color: {{VALUE}};',
890 - ],
891 - ]
892 - );
893 - $this->add_group_control(
894 - Group_Control_Border::get_type(),
895 - [
896 - 'name' => 'field_active_border',
897 - 'selector' =>
898 - '{{WRAPPER}} .ui-e-field-group:not(.ui-e-field-type-file) .ui-e-field:focus:not(.ui-e-field-select),
899 - {{WRAPPER}} .ui-e-field-group .ui-e-field-select:focus select',
900 - ]
901 - );
1111 + ]
1112 + );
1113 + $this->add_control(
1114 + 'field_placeholder_hover_color',
1115 + [
1116 + 'label' => esc_html__('Placeholder Color', 'uicore-elements'),
1117 + 'type' => Controls_Manager::COLOR,
1118 + 'selectors' => [
1119 + '{{WRAPPER}} .ui-e-field-group:hover .ui-e-field::placeholder' => 'color: {{VALUE}};',
1120 + ],
1121 + 'default' => 'var(--e-global-color-uicore_body)',
902 1122
903 - $this->end_controls_tab();
1123 + ]
1124 + );
1125 + $this->add_control(
1126 + 'field_background_hover_color',
1127 + [
1128 + 'label' => esc_html__('Background Color', 'uicore-elements'),
1129 + 'type' => Controls_Manager::COLOR,
1130 + 'default' => '#ffffff',
1131 + 'selectors' => [
1132 + '{{WRAPPER}} .ui-e-field-group:hover:not(.ui-e-field-type-file, .ui-e-field-type-acceptance) .ui-e-field:not(.ui-e-field-select)' => 'background-color: {{VALUE}};',
1133 + '{{WRAPPER}} .ui-e-field-group:hover .ui-e-field-select select' => 'background-color: {{VALUE}};',
1134 + ],
1135 + ]
1136 + );
1137 + $this->add_group_control(
1138 + Group_Control_Border::get_type(),
1139 + [
1140 + 'name' => 'field_hover_border',
1141 + 'selector' =>
1142 + '{{WRAPPER}} .ui-e-field-group:hover:not(.ui-e-field-type-file, .ui-e-field-type-acceptance) .ui-e-field:not(.ui-e-field-select),
1143 + {{WRAPPER}} .ui-e-field-group:hover .ui-e-field-select select',
1144 + ]
1145 + );
1146 + $this->add_group_control(
1147 + Group_Control_Box_Shadow::get_type(),
1148 + [
1149 + 'name' => 'field_box_shadow_hover',
1150 + 'selector' => '{{WRAPPER}} .ui-e-field-group:hover:not(.ui-e-field-type-file, .ui-e-field-type-acceptance) .ui-e-field:not(.ui-e-field-select),
1151 + {{WRAPPER}} .ui-e-field-group:hover .ui-e-field-select select',
1152 + ]
1153 + );
904 1154
905 - $this->end_controls_tabs();
1155 + $this->end_controls_tab();
906 1156
907 - $this->add_control(
908 - 'field_border_radius',
909 - [
910 - 'label' => esc_html__( 'Border Radius', 'uicore-elements' ),
911 - 'type' => Controls_Manager::DIMENSIONS,
912 - 'size_units' => [ 'px', '%', 'em', 'rem', 'custom' ],
913 - 'selectors' => [
914 - '{{WRAPPER}} .ui-e-field-group:not(.ui-e-field-type-file) .ui-e-field:not(.ui-e-field-select)' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
915 - '{{WRAPPER}} .ui-e-field-group .ui-e-field-select select' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
916 - ],
917 - 'separator' => 'before'
918 - ]
919 - );
920 - $this->add_responsive_control(
921 - 'field_padding',
922 - [
923 - 'label' => esc_html__( 'Padding', 'uicore-elements' ),
924 - 'type' => Controls_Manager::DIMENSIONS,
925 - 'size_units' => [ 'px', '%', 'em', 'rem', 'custom' ],
926 - 'selectors' => [
927 - '{{WRAPPER}} .ui-e-field-group:not(.ui-e-field-type-file) .ui-e-field:not(.ui-e-field-select)' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
928 - '{{WRAPPER}} .ui-e-field-group .ui-e-field-select select' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
929 - ],
930 - ]
931 - );
932 - if($section){
1157 + $this->start_controls_tab(
1158 + 'field_active_tab',
1159 + [
1160 + 'label' => esc_html__('Active', 'uicore-elements'),
1161 + ]
1162 + );
1163 +
1164 + $this->add_control(
1165 + 'field_text_active_color',
1166 + [
1167 + 'label' => esc_html__('Text Color', 'uicore-elements'),
1168 + 'type' => Controls_Manager::COLOR,
1169 + 'selectors' => [
1170 + '{{WRAPPER}} .ui-e-field-group .ui-e-field:focus, {{WRAPPER}} .ui-e-field-group .ui-e-field-select select:focus' => 'color: {{VALUE}};',
1171 + ],
1172 + 'default' => 'var(--e-global-color-uicore_body)',
1173 +
1174 + ]
1175 + );
1176 + $this->add_control(
1177 + 'field_background_active_color',
1178 + [
1179 + 'label' => esc_html__('Background Color', 'uicore-elements'),
1180 + 'type' => Controls_Manager::COLOR,
1181 + 'default' => '#ffffff',
1182 + 'selectors' => [
1183 + '{{WRAPPER}} .ui-e-field-group:not(.ui-e-field-type-file, .ui-e-field-type-acceptance) .ui-e-field:focus:not(.ui-e-field-select)' => 'background-color: {{VALUE}};',
1184 + '{{WRAPPER}} .ui-e-field-group .ui-e-field-select:focus select' => 'background-color: {{VALUE}};',
1185 + ],
1186 + ]
1187 + );
1188 + $this->add_group_control(
1189 + Group_Control_Border::get_type(),
1190 + [
1191 + 'name' => 'field_active_border',
1192 + 'selector' =>
1193 + '{{WRAPPER}} .ui-e-field-group:not(.ui-e-field-type-file, .ui-e-field-type-acceptance) .ui-e-field:focus:not(.ui-e-field-select),
1194 + {{WRAPPER}} .ui-e-field-group .ui-e-field-select:focus select',
1195 + ]
1196 + );
1197 + $this->add_group_control(
1198 + Group_Control_Box_Shadow::get_type(),
1199 + [
1200 + 'name' => 'field_box_shadow_active',
1201 + 'selector' => '{{WRAPPER}} .ui-e-field-group:not(.ui-e-field-type-file, .ui-e-field-type-acceptance) .ui-e-field:focus:not(.ui-e-field-select),
1202 + {{WRAPPER}} .ui-e-field-group .ui-e-field-select:focus select',
1203 + ]
1204 + );
1205 +
1206 + $this->end_controls_tab();
1207 +
1208 + $this->end_controls_tabs();
1209 +
1210 + $this->add_responsive_control(
1211 + 'field_border_radius',
1212 + [
1213 + 'label' => esc_html__('Border Radius', 'uicore-elements'),
1214 + 'type' => Controls_Manager::DIMENSIONS,
1215 + 'size_units' => ['px', '%', 'em', 'rem', 'custom'],
1216 + 'selectors' => [
1217 + '{{WRAPPER}} .ui-e-field-group:not(.ui-e-field-type-file, .ui-e-field-type-acceptance) .ui-e-field:not(.ui-e-field-select)' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1218 + '{{WRAPPER}} .ui-e-field-group .ui-e-field-select select' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1219 + ],
1220 + 'separator' => 'before'
1221 + ]
1222 + );
1223 + $this->add_responsive_control(
1224 + 'field_padding',
1225 + [
1226 + 'label' => esc_html__('Padding', 'uicore-elements'),
1227 + 'type' => Controls_Manager::DIMENSIONS,
1228 + 'size_units' => ['px', '%', 'em', 'rem', 'custom'],
1229 + 'selectors' => [
1230 + '{{WRAPPER}} .ui-e-field-group:not(.ui-e-field-type-file, .ui-e-field-type-acceptance) .ui-e-field:not(.ui-e-field-select)' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1231 + '{{WRAPPER}} .ui-e-field-group .ui-e-field-select select' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1232 + ],
1233 + ]
1234 + );
1235 + if ($section) {
933 1236 $this->end_controls_section();
934 1237 }
935 1238 }
936 1239 function TRAIT_register_button_style_controls($section = true)
937 1240 {
938 - if($section){
1241 + if ($section) {
939 1242 $this->start_controls_section(
940 1243 'section_button_style',
941 1244 [
942 - 'label' => esc_html__( 'Button', 'uicore-elements' ),
1245 + 'label' => esc_html__('Button', 'uicore-elements'),
943 1246 'tab' => Controls_Manager::TAB_STYLE,
944 1247 ]
945 1248 );
946 1249 }
947 1250
948 - $this->add_group_control(
949 - Group_Control_Typography::get_type(),
950 - [
951 - 'name' => 'button_typography',
952 - 'global' => [
953 - 'default' => Global_Typography::TYPOGRAPHY_ACCENT,
954 - ],
955 - 'selector' => '{{WRAPPER}} .elementor-button',
956 - ]
957 - );
958 - $this->add_group_control(
959 - Group_Control_Border::get_type(), [
960 - 'name' => 'button_border',
961 - 'selector' => '{{WRAPPER}} .elementor-button',
962 - 'exclude' => [
963 - 'color',
964 - ],
965 - ]
966 - );
1251 + $this->add_group_control(
1252 + Group_Control_Typography::get_type(),
1253 + [
1254 + 'name' => 'button_typography',
1255 + 'global' => [
1256 + 'default' => Global_Typography::TYPOGRAPHY_ACCENT,
1257 + ],
1258 + 'selector' => '{{WRAPPER}} .elementor-button',
1259 + ]
1260 + );
1261 + $this->add_group_control(
1262 + Group_Control_Border::get_type(),
1263 + [
1264 + 'name' => 'button_border',
1265 + 'selector' => '{{WRAPPER}} .elementor-button',
1266 + 'exclude' => [
1267 + 'color',
1268 + ],
1269 + ]
1270 + );
967 1271
968 - $this->start_controls_tabs( 'tabs_button_style' );
1272 + $this->start_controls_tabs('tabs_button_style');
969 1273
970 - $this->start_controls_tab(
971 - 'tab_button_normal',
972 - [
973 - 'label' => esc_html__( 'Normal', 'uicore-elements' ),
974 - ]
975 - );
1274 + $this->start_controls_tab(
1275 + 'tab_button_normal',
1276 + [
1277 + 'label' => esc_html__('Normal', 'uicore-elements'),
1278 + ]
1279 + );
976 1280
977 - $this->add_control(
978 - 'button_background_color',
979 - [
980 - 'label' => esc_html__( 'Background Color', 'uicore-elements' ),
981 - 'type' => Controls_Manager::COLOR,
982 - 'global' => [
983 - 'default' => Global_Colors::COLOR_ACCENT,
984 - ],
985 - 'selectors' => [
986 - '{{WRAPPER}} .e-form__buttons__wrapper__button-next' => 'background-color: {{VALUE}};',
987 - '{{WRAPPER}} .elementor-button[type="submit"]' => 'background-color: {{VALUE}};',
988 - ],
989 - ]
990 - );
991 - $this->add_control(
992 - 'button_text_color',
993 - [
994 - 'label' => esc_html__( 'Text Color', 'uicore-elements' ),
995 - 'type' => Controls_Manager::COLOR,
996 - 'default' => '#ffffff',
997 - 'selectors' => [
998 - '{{WRAPPER}} .e-form__buttons__wrapper__button-next' => 'color: {{VALUE}};',
999 - '{{WRAPPER}} .elementor-button[type="submit"]' => 'color: {{VALUE}};',
1000 - '{{WRAPPER}} .elementor-button[type="submit"] svg *' => 'fill: {{VALUE}};',
1001 - ],
1002 - ]
1003 - );
1004 - $this->add_control(
1005 - 'button_border_color',
1006 - [
1007 - 'label' => esc_html__( 'Border Color', 'uicore-elements' ),
1008 - 'type' => Controls_Manager::COLOR,
1009 - 'default' => '',
1010 - 'selectors' => [
1011 - '{{WRAPPER}} .e-form__buttons__wrapper__button-next' => 'border-color: {{VALUE}};',
1012 - '{{WRAPPER}} .elementor-button[type="submit"]' => 'border-color: {{VALUE}};',
1013 - ],
1014 - 'condition' => [
1015 - 'button_border_border!' => '',
1016 - ],
1017 - ]
1018 - );
1281 + $this->add_control(
1282 + 'button_background_color',
1283 + [
1284 + 'label' => esc_html__('Background Color', 'uicore-elements'),
1285 + 'type' => Controls_Manager::COLOR,
1286 + 'selectors' => [
1287 + '{{WRAPPER}} .e-form__buttons__wrapper__button-next' => 'background-color: {{VALUE}};',
1288 + '{{WRAPPER}} .elementor-button[type="submit"]' => 'background-color: {{VALUE}};',
1289 + ],
1290 + ]
1291 + );
1292 + $this->add_control(
1293 + 'button_text_color',
1294 + [
1295 + 'label' => esc_html__('Text Color', 'uicore-elements'),
1296 + 'type' => Controls_Manager::COLOR,
1297 + 'default' => '#ffffff',
1298 + 'selectors' => [
1299 + '{{WRAPPER}} .e-form__buttons__wrapper__button-next' => 'color: {{VALUE}};',
1300 + '{{WRAPPER}} .elementor-button[type="submit"]' => 'color: {{VALUE}};',
1301 + '{{WRAPPER}} .elementor-button[type="submit"] svg *' => 'fill: {{VALUE}};',
1302 + ],
1303 + ]
1304 + );
1305 + $this->add_control(
1306 + 'button_border_color',
1307 + [
1308 + 'label' => esc_html__('Border Color', 'uicore-elements'),
1309 + 'type' => Controls_Manager::COLOR,
1310 + 'default' => '',
1311 + 'selectors' => [
1312 + '{{WRAPPER}} .e-form__buttons__wrapper__button-next' => 'border-color: {{VALUE}};',
1313 + '{{WRAPPER}} .elementor-button[type="submit"]' => 'border-color: {{VALUE}};',
1314 + ],
1315 + 'condition' => [
1316 + 'button_border_border!' => '',
1317 + ],
1318 + ]
1319 + );
1019 1320
1020 - $this->end_controls_tab();
1321 + $this->end_controls_tab();
1021 1322
1022 - $this->start_controls_tab(
1023 - 'tab_button_hover',
1024 - [
1025 - 'label' => esc_html__( 'Hover', 'uicore-elements' ),
1026 - ]
1027 - );
1323 + $this->start_controls_tab(
1324 + 'tab_button_hover',
1325 + [
1326 + 'label' => esc_html__('Hover', 'uicore-elements'),
1327 + ]
1328 + );
1028 1329
1029 - $this->add_control(
1030 - 'button_background_hover_color',
1031 - [
1032 - 'label' => esc_html__( 'Background Color', 'uicore-elements' ),
1033 - 'type' => Controls_Manager::COLOR,
1034 - 'default' => '',
1035 - 'selectors' => [
1036 - '{{WRAPPER}} .e-form__buttons__wrapper__button-next:hover' => 'background-color: {{VALUE}};',
1037 - '{{WRAPPER}} .elementor-button[type="submit"]:hover' => 'background-color: {{VALUE}};',
1038 - ],
1039 - ]
1040 - );
1041 - $this->add_control(
1042 - 'button_hover_color',
1043 - [
1044 - 'label' => esc_html__( 'Text Color', 'uicore-elements' ),
1045 - 'type' => Controls_Manager::COLOR,
1046 - 'default' => '#ffffff',
1047 - 'selectors' => [
1048 - '{{WRAPPER}} .e-form__buttons__wrapper__button-next:hover' => 'color: {{VALUE}};',
1049 - '{{WRAPPER}} .elementor-button[type="submit"]:hover' => 'color: {{VALUE}};',
1050 - '{{WRAPPER}} .elementor-button[type="submit"]:hover svg *' => 'fill: {{VALUE}};',
1051 - ],
1052 - ]
1053 - );
1054 - $this->add_control(
1055 - 'button_hover_border_color',
1056 - [
1057 - 'label' => esc_html__( 'Border Color', 'uicore-elements' ),
1058 - 'type' => Controls_Manager::COLOR,
1059 - 'default' => '',
1060 - 'selectors' => [
1061 - '{{WRAPPER}} .e-form__buttons__wrapper__button-next:hover' => 'border-color: {{VALUE}};',
1062 - '{{WRAPPER}} .elementor-button[type="submit"]:hover' => 'border-color: {{VALUE}};',
1063 - ],
1064 - 'condition' => [
1065 - 'button_border_border!' => '',
1066 - ],
1067 - ]
1068 - );
1069 - $this->add_control(
1070 - 'hover_transition_duration',
1071 - [
1072 - 'label' => esc_html__( 'Transition Duration', 'uicore-elements' ),
1073 - 'type' => Controls_Manager::SLIDER,
1074 - 'size_units' => [ 's', 'ms', 'custom' ],
1075 - 'default' => [
1076 - 'unit' => 'ms',
1077 - ],
1078 - 'selectors' => [
1079 - '{{WRAPPER}} .e-form__buttons__wrapper__button-previous' => 'transition-duration: {{SIZE}}{{UNIT}};',
1080 - '{{WRAPPER}} .e-form__buttons__wrapper__button-next' => 'transition-duration: {{SIZE}}{{UNIT}};',
1081 - '{{WRAPPER}} .elementor-button[type="submit"] svg *' => 'transition-duration: {{SIZE}}{{UNIT}};',
1082 - '{{WRAPPER}} .elementor-button[type="submit"]' => 'transition-duration: {{SIZE}}{{UNIT}};',
1083 - ],
1084 - ]
1085 - );
1086 - $this->add_control(
1087 - 'button_hover_animation',
1088 - [
1089 - 'label' => esc_html__( 'Animation', 'uicore-elements' ),
1090 - 'type' => Controls_Manager::HOVER_ANIMATION,
1091 - ]
1092 - );
1330 + $this->add_control(
1331 + 'button_background_hover_color',
1332 + [
1333 + 'label' => esc_html__('Background Color', 'uicore-elements'),
1334 + 'type' => Controls_Manager::COLOR,
1335 + 'default' => '',
1336 + 'selectors' => [
1337 + '{{WRAPPER}} .e-form__buttons__wrapper__button-next:hover' => 'background-color: {{VALUE}};',
1338 + '{{WRAPPER}} .elementor-button[type="submit"]:hover' => 'background-color: {{VALUE}};',
1339 + ],
1340 + ]
1341 + );
1342 + $this->add_control(
1343 + 'button_hover_color',
1344 + [
1345 + 'label' => esc_html__('Text Color', 'uicore-elements'),
1346 + 'type' => Controls_Manager::COLOR,
1347 + 'default' => '#ffffff',
1348 + 'selectors' => [
1349 + '{{WRAPPER}} .e-form__buttons__wrapper__button-next:hover' => 'color: {{VALUE}};',
1350 + '{{WRAPPER}} .elementor-button[type="submit"]:hover' => 'color: {{VALUE}};',
1351 + '{{WRAPPER}} .elementor-button[type="submit"]:hover svg *' => 'fill: {{VALUE}};',
1352 + ],
1353 + ]
1354 + );
1355 + $this->add_control(
1356 + 'button_hover_border_color',
1357 + [
1358 + 'label' => esc_html__('Border Color', 'uicore-elements'),
1359 + 'type' => Controls_Manager::COLOR,
1360 + 'default' => '',
1361 + 'selectors' => [
1362 + '{{WRAPPER}} .e-form__buttons__wrapper__button-next:hover' => 'border-color: {{VALUE}};',
1363 + '{{WRAPPER}} .elementor-button[type="submit"]:hover' => 'border-color: {{VALUE}};',
1364 + ],
1365 + 'condition' => [
1366 + 'button_border_border!' => '',
1367 + ],
1368 + ]
1369 + );
1370 + $this->add_control(
1371 + 'hover_transition_duration',
1372 + [
1373 + 'label' => esc_html__('Transition Duration', 'uicore-elements'),
1374 + 'type' => Controls_Manager::SLIDER,
1375 + 'size_units' => ['s', 'ms', 'custom'],
1376 + 'default' => [
1377 + 'unit' => 'ms',
1378 + ],
1379 + 'selectors' => [
1380 + '{{WRAPPER}} .e-form__buttons__wrapper__button-previous' => 'transition-duration: {{SIZE}}{{UNIT}};',
1381 + '{{WRAPPER}} .e-form__buttons__wrapper__button-next' => 'transition-duration: {{SIZE}}{{UNIT}};',
1382 + '{{WRAPPER}} .elementor-button[type="submit"] svg *' => 'transition-duration: {{SIZE}}{{UNIT}};',
1383 + '{{WRAPPER}} .elementor-button[type="submit"]' => 'transition-duration: {{SIZE}}{{UNIT}};',
1384 + ],
1385 + ]
1386 + );
1387 + $this->add_control(
1388 + 'button_hover_animation',
1389 + [
1390 + 'label' => esc_html__('Animation', 'uicore-elements'),
1391 + 'type' => Controls_Manager::HOVER_ANIMATION,
1392 + ]
1393 + );
1093 1394
1094 - $this->end_controls_tab();
1395 + $this->end_controls_tab();
1095 1396
1096 - $this->end_controls_tabs();
1397 + $this->end_controls_tabs();
1097 1398
1098 - $this->add_control(
1099 - 'button_border_radius',
1100 - [
1101 - 'label' => esc_html__( 'Border Radius', 'uicore-elements' ),
1102 - 'type' => Controls_Manager::DIMENSIONS,
1103 - 'size_units' => [ 'px', '%', 'em', 'rem', 'custom' ],
1104 - 'selectors' => [
1105 - '{{WRAPPER}} .elementor-button' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1106 - ],
1107 - 'separator' => 'before',
1108 - ]
1109 - );
1399 + $this->add_responsive_control(
1400 + 'button_border_radius',
1401 + [
1402 + 'label' => esc_html__('Border Radius', 'uicore-elements'),
1403 + 'type' => Controls_Manager::DIMENSIONS,
1404 + 'size_units' => ['px', '%', 'em', 'rem', 'custom'],
1405 + 'selectors' => [
1406 + '{{WRAPPER}} .elementor-button' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1407 + ],
1408 + 'separator' => 'before',
1409 + ]
1410 + );
1110 1411
1111 - $this->add_control(
1112 - 'button_text_padding',
1113 - [
1114 - 'label' => esc_html__( 'Text Padding', 'uicore-elements' ),
1115 - 'type' => Controls_Manager::DIMENSIONS,
1116 - 'size_units' => [ 'px', '%', 'em', 'rem', 'custom' ],
1117 - 'selectors' => [
1118 - '{{WRAPPER}} .elementor-button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1119 - ],
1120 - ]
1121 - );
1412 + $this->add_responsive_control(
1413 + 'button_text_padding',
1414 + [
1415 + 'label' => esc_html__('Text Padding', 'uicore-elements'),
1416 + 'type' => Controls_Manager::DIMENSIONS,
1417 + 'size_units' => ['px', '%', 'em', 'rem', 'custom'],
1418 + 'selectors' => [
1419 + '{{WRAPPER}} .elementor-button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1420 + ],
1421 + ]
1422 + );
1122 1423
1123 - if($section){
1424 + if ($section) {
1124 1425 $this->end_controls_section();
1125 1426 }
1126 1427 }
1127 1428 function TRAIT_register_messages_style_controls($section = true)
1128 1429 {
1129 - if($section){
1430 + if ($section) {
1130 1431 $this->start_controls_section(
1131 - 'section_messages_style',
1432 + 'section_messages_style',
1132 1433 [
1133 - 'label' => esc_html__( 'Messages', 'uicore-elements' ),
1434 + 'label' => esc_html__('Messages', 'uicore-elements'),
1134 1435 'tab' => Controls_Manager::TAB_STYLE,
1135 1436 ]
1136 1437 );
1137 1438 }
1138 1439
1139 - $this->add_control(
1140 - 'show_messages',
1141 - [
1142 - 'label' => esc_html__( 'Show/Hide messages', 'uicore-elements' ),
1143 - 'type' => Controls_Manager::BUTTON,
1144 - 'separator' => 'before',
1145 - 'text' => esc_html__( 'Toggle', 'uicore-elements' ),
1146 - 'event' => 'ui-e-form-show-messages',
1147 - ]
1148 - );
1149 - $this->add_group_control(
1150 - Group_Control_Typography::get_type(),
1151 - [
1152 - 'name' => 'message_typography',
1153 - 'global' => [
1154 - 'default' => Global_Typography::TYPOGRAPHY_TEXT,
1155 - ],
1156 - 'selector' => '{{WRAPPER}} .ui-e-message',
1157 - ]
1158 - );
1159 - $this->add_control(
1160 - 'success_message_color',
1161 - [
1162 - 'label' => esc_html__( 'Success Message Color', 'uicore-elements' ),
1163 - 'type' => Controls_Manager::COLOR,
1164 - 'default' => '#4CAF50',
1165 - 'selectors' => [
1166 - '{{WRAPPER}} .ui-e-message span.success' => 'color: {{COLOR}};',
1167 - ],
1168 - ]
1169 - );
1170 - $this->add_control(
1171 - 'error_message_color',
1172 - [
1173 - 'label' => esc_html__( 'Error Message Color', 'uicore-elements' ),
1174 - 'type' => Controls_Manager::COLOR,
1175 - 'default' => '#F44336',
1176 - 'selectors' => [
1177 - '{{WRAPPER}} .ui-e-message span.error' => 'color: {{COLOR}};',
1178 - ],
1179 - ]
1180 - );
1440 + $this->add_control(
1441 + 'show_messages',
1442 + [
1443 + 'label' => esc_html__('Show/Hide messages', 'uicore-elements'),
1444 + 'type' => Controls_Manager::BUTTON,
1445 + 'separator' => 'before',
1446 + 'text' => esc_html__('Toggle', 'uicore-elements'),
1447 + 'event' => 'ui-e-form-show-messages',
1448 + ]
1449 + );
1450 + $this->add_group_control(
1451 + Group_Control_Typography::get_type(),
1452 + [
1453 + 'name' => 'message_typography',
1454 + 'global' => [
1455 + 'default' => Global_Typography::TYPOGRAPHY_TEXT,
1456 + ],
1457 + 'selector' => '{{WRAPPER}} .ui-e-message',
1458 + ]
1459 + );
1460 + $this->add_control(
1461 + 'success_message_color',
1462 + [
1463 + 'label' => esc_html__('Success Message Color', 'uicore-elements'),
1464 + 'type' => Controls_Manager::COLOR,
1465 + 'default' => '#4CAF50',
1466 + 'selectors' => [
1467 + '{{WRAPPER}} .ui-e-message span.success' => 'color: {{COLOR}};',
1468 + ],
1469 + ]
1470 + );
1471 + $this->add_control(
1472 + 'error_message_color',
1473 + [
1474 + 'label' => esc_html__('Error Message Color', 'uicore-elements'),
1475 + 'type' => Controls_Manager::COLOR,
1476 + 'default' => '#F44336',
1477 + 'selectors' => [
1478 + '{{WRAPPER}} .ui-e-message span.error' => 'color: {{COLOR}};',
1479 + ],
1480 + ]
1481 + );
1181 1482
1182 - if($section){
1483 + if ($section) {
1183 1484 $this->end_controls_section();
1184 1485 }
1185 1486 }
1186 1487 function TRAIT_register_all_form_style_controls()
@@ -1194,9 +1495,9 @@
1194 1495 // Helper and Utility Functions
1195 1496 function TRAIT_get_width_values()
1196 1497 {
1197 1498 return [
1198 - '' => esc_html__( 'Default', 'uicore-elements' ),
1499 + '' => esc_html__('Default', 'uicore-elements'),
1199 1500 '100' => '100%',
1200 1501 '80' => '80%',
1201 1502 '75' => '75%',
1202 1503 '70' => '70%',
@@ -1211,11 +1512,11 @@
1211 1512 ];
1212 1513 }
1213 1514 function TRAIT_recaptcha_key_js()
1214 1515 {
1215 - ?>
1516 +?>
1216 1517 <script>
1217 - window.uicore_elements_recaptcha = '<?php echo get_option('uicore_elements_recaptcha_site_key'); ?>';
1518 + window.uicore_elements_recaptcha = '<?php echo esc_html(get_option('uicore_elements_recaptcha_site_key')); ?>';
1218 1519 </script>
1219 - <?php
1520 +<?php
1220 1521 }
1221 -}
1522 +}