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 +1050 -751 1.2.01.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,14 +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 751 /* translators: %s: Submit text */
505 - 'default' => esc_html( sprintf('%s', $submit_text), 'uicore-elements'),
752 + 'default' => esc_html(sprintf('%s', $submit_text), 'uicore-elements'),
506 753 /* translators: %s: Submit text */
507 - 'placeholder' => esc_html( sprintf('%s', $submit_text), 'uicore-elements'),
754 + 'placeholder' => esc_html(sprintf('%s', $submit_text), 'uicore-elements'),
508 755 'dynamic' => [
509 756 'active' => true,
510 757 ],
511 758 'ai' => [
@@ -515,9 +762,9 @@
515 762 );
516 763 $this->add_control(
517 764 'selected_button_icon',
518 765 [
519 - 'label' => esc_html__( 'Icon', 'uicore-elements' ),
766 + 'label' => esc_html__('Icon', 'uicore-elements'),
520 767 'type' => Controls_Manager::ICONS,
521 768 'skin' => 'inline',
522 769 'label_block' => false,
523 770 ]
@@ -524,14 +771,14 @@
524 771 );
525 772 $this->add_control(
526 773 'button_icon_align',
527 774 [
528 - 'label' => esc_html__( 'Icon Position', 'uicore-elements' ),
775 + 'label' => esc_html__('Icon Position', 'uicore-elements'),
529 776 'type' => Controls_Manager::SELECT,
530 777 'default' => 'left',
531 778 'options' => [
532 - 'left' => esc_html__( 'Before', 'uicore-elements' ),
533 - 'right' => esc_html__( 'After', 'uicore-elements' ),
779 + 'left' => esc_html__('Before', 'uicore-elements'),
780 + 'right' => esc_html__('After', 'uicore-elements'),
534 781 ],
535 782 'condition' => [
536 783 'selected_button_icon[value]!' => '',
537 784 ],
@@ -539,11 +786,11 @@
539 786 );
540 787 $this->add_control(
541 788 'button_icon_indent',
542 789 [
543 - 'label' => esc_html__( 'Icon Spacing', 'uicore-elements' ),
790 + 'label' => esc_html__('Icon Spacing', 'uicore-elements'),
544 791 'type' => Controls_Manager::SLIDER,
545 - 'size_units' => [ 'px', 'em', 'rem', 'custom' ],
792 + 'size_units' => ['px', 'em', 'rem', 'custom'],
546 793 'range' => [
547 794 'px' => [
548 795 'max' => 100,
549 796 ],
@@ -565,16 +812,16 @@
565 812 );
566 813 $this->add_control(
567 814 'button_css_id',
568 815 [
569 - 'label' => esc_html__( 'Button ID', 'uicore-elements' ),
816 + 'label' => esc_html__('Button ID', 'uicore-elements'),
570 817 'type' => Controls_Manager::TEXT,
571 818 'default' => '',
572 819 'ai' => [
573 820 'active' => false,
574 821 ],
575 - 'title' => esc_html__( 'Add your custom id WITHOUT the Pound key. e.g: my-id', 'uicore-elements' ),
576 - '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'),
577 824 'separator' => 'before',
578 825 'dynamic' => [
579 826 'active' => true,
580 827 ],
@@ -581,608 +828,660 @@
581 828 ]
582 829 );
583 830 }
584 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 +
585 863 // Style Controls
586 864 function TRAIT_register_form_style_controls($section = true)
587 865 {
588 - if($section){
866 + if ($section) {
589 867 $this->start_controls_section(
590 868 'section_form_style',
591 869 [
592 - 'label' => esc_html__( 'Form', 'uicore-elements' ),
870 + 'label' => esc_html__('Form', 'uicore-elements'),
593 871 'tab' => Controls_Manager::TAB_STYLE,
594 872 ]
595 873 );
596 874 }
597 - $this->add_control(
598 - 'column_gap',
599 - [
600 - 'label' => esc_html__( 'Columns Gap', 'uicore-elements' ),
601 - 'type' => Controls_Manager::SLIDER,
602 - 'size_units' => [ 'px', 'em', 'rem', 'custom' ],
603 - 'default' => [
604 - '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,
605 887 ],
606 - 'range' => [
607 - 'px' => [
608 - 'max' => 60,
609 - ],
610 - 'em' => [
611 - 'max' => 6,
612 - ],
613 - 'rem' => [
614 - 'max' => 6,
615 - ],
888 + 'em' => [
889 + 'max' => 6,
616 890 ],
617 - 'selectors' => [
618 - '{{WRAPPER}} .ui-e-field-group' => 'padding-right: calc( {{SIZE}}{{UNIT}}/2 ); padding-left: calc( {{SIZE}}{{UNIT}}/2 );',
619 - '{{WRAPPER}} .ui-e-fields-wrp' => 'margin-left: calc( -{{SIZE}}{{UNIT}}/2 ); margin-right: calc( -{{SIZE}}{{UNIT}}/2 );',
891 + 'rem' => [
892 + 'max' => 6,
620 893 ],
621 - ]
622 - );
623 - $this->add_control(
624 - 'row_gap',
625 - [
626 - 'label' => esc_html__( 'Rows Gap', 'uicore-elements' ),
627 - 'type' => Controls_Manager::SLIDER,
628 - 'size_units' => [ 'px', 'em', 'rem', 'custom' ],
629 - 'default' => [
630 - '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,
631 913 ],
632 - 'range' => [
633 - 'px' => [
634 - 'max' => 60,
635 - ],
636 - 'em' => [
637 - 'max' => 6,
638 - ],
639 - 'rem' => [
640 - 'max' => 6,
641 - ],
914 + 'em' => [
915 + 'max' => 6,
642 916 ],
643 - 'selectors' => [
644 - '{{WRAPPER}} .ui-e-field-group' => 'margin-bottom: {{SIZE}}{{UNIT}};',
645 - '{{WRAPPER}} .ui-e-fields-wrp' => 'margin-bottom: -{{SIZE}}{{UNIT}};',
917 + 'rem' => [
918 + 'max' => 6,
646 919 ],
647 - ]
648 - );
649 - $this->add_control(
650 - 'heading_label',
651 - [
652 - 'label' => esc_html__( 'Label', 'uicore-elements' ),
653 - 'type' => Controls_Manager::HEADING,
654 - 'separator' => 'before',
655 - ]
656 - );
657 - $this->add_control(
658 - 'label_spacing',
659 - [
660 - 'label' => esc_html__( 'Spacing', 'uicore-elements' ),
661 - 'type' => Controls_Manager::SLIDER,
662 - 'size_units' => [ 'px', 'em', 'rem', 'custom' ],
663 - 'default' => [
664 - '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,
665 947 ],
666 - 'range' => [
667 - 'px' => [
668 - 'max' => 60,
669 - ],
670 - 'em' => [
671 - 'max' => 6,
672 - ],
673 - 'rem' => [
674 - 'max' => 6,
675 - ],
948 + 'em' => [
949 + 'max' => 6,
676 950 ],
677 - 'selectors' => [
678 - 'body {{WRAPPER}} .ui-e-field-group > label' => 'padding-bottom: {{SIZE}}{{UNIT}};',
951 + 'rem' => [
952 + 'max' => 6,
679 953 ],
680 - ]
681 - );
682 - $this->add_control(
683 - 'label_color',
684 - [
685 - 'label' => esc_html__( 'Text Color', 'uicore-elements' ),
686 - 'type' => Controls_Manager::COLOR,
687 - 'selectors' => [
688 - '{{WRAPPER}} .ui-e-field-group > label, {{WRAPPER}} .ui-e-field-subgroup label' => 'color: {{VALUE}};',
689 - ],
690 - 'global' => [
691 - 'default' => Global_Colors::COLOR_TEXT,
692 - ],
693 - ]
694 - );
695 - $this->add_control(
696 - 'mark_required_color',
697 - [
698 - 'label' => esc_html__( 'Mark Color', 'uicore-elements' ),
699 - 'type' => Controls_Manager::COLOR,
700 - 'default' => '',
701 - 'selectors' => [
702 - '{{WRAPPER}} .ui-e-required .ui-e-label:after' => 'color: {{COLOR}};',
703 - ],
704 - 'condition' => [
705 - 'mark_required' => 'yes',
706 - ],
707 - ]
708 - );
709 - $this->add_group_control(
710 - Group_Control_Typography::get_type(),
711 - [
712 - 'name' => 'label_typography',
713 - 'selector' => '{{WRAPPER}} .ui-e-field-group > label',
714 - 'global' => [
715 - 'default' => Global_Typography::TYPOGRAPHY_TEXT,
716 - ],
717 - ]
718 - );
719 - 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) {
720 1002 $this->end_controls_section();
721 1003 }
722 1004 }
723 1005 function TRAIT_register_fields_style_controls($section = true)
724 1006 {
725 - if($section){
1007 + if ($section) {
726 1008 $this->start_controls_section(
727 1009 'section_field_style',
728 1010 [
729 - 'label' => esc_html__( 'Fields', 'uicore-elements' ),
1011 + 'label' => esc_html__('Fields', 'uicore-elements'),
730 1012 'tab' => Controls_Manager::TAB_STYLE,
731 1013 ]
732 1014 );
733 1015 }
734 1016
735 - $this->start_controls_tabs(
736 - 'field_style_tabs'
737 - );
1017 + $this->start_controls_tabs(
1018 + 'field_style_tabs'
1019 + );
738 1020
739 - $this->start_controls_tab(
740 - 'field_normal_tab',
741 - [
742 - 'label' => esc_html__( 'Normal', 'uicore-elements' ),
743 - ]
744 - );
1021 + $this->start_controls_tab(
1022 + 'field_normal_tab',
1023 + [
1024 + 'label' => esc_html__('Normal', 'uicore-elements'),
1025 + ]
1026 + );
745 1027
746 - $this->add_group_control(
747 - Group_Control_Typography::get_type(),
748 - [
749 - 'name' => 'field_typography',
750 - 'selector' => '{{WRAPPER}} .ui-e-field-group .ui-e-field, {{WRAPPER}} .ui-e-field-subgroup label',
751 - 'global' => [
752 - 'default' => Global_Typography::TYPOGRAPHY_TEXT,
753 - ],
754 - ]
755 - );
756 - $this->add_control(
757 - 'field_text_color',
758 - [
759 - 'label' => esc_html__( 'Text Color', 'uicore-elements' ),
760 - 'type' => Controls_Manager::COLOR,
761 - 'selectors' => [
762 - '{{WRAPPER}} .ui-e-field-group .ui-e-field' => 'color: {{VALUE}};',
763 - ],
764 - 'global' => [
765 - 'default' => Global_Colors::COLOR_TEXT,
766 - ],
767 - ]
768 - );
769 - $this->add_control(
770 - 'field_placeholder_color',
771 - [
772 - 'label' => esc_html__( 'Placeholder Color', 'uicore-elements' ),
773 - 'type' => Controls_Manager::COLOR,
774 - 'selectors' => [
775 - '{{WRAPPER}} .ui-e-field-group .ui-e-field::placeholder' => 'color: {{VALUE}};',
776 - ],
777 - 'global' => [
778 - 'default' => Global_Colors::COLOR_TEXT,
779 - ],
780 - ]
781 - );
782 - $this->add_control(
783 - 'field_background_color',
784 - [
785 - 'label' => esc_html__( 'Background Color', 'uicore-elements' ),
786 - 'type' => Controls_Manager::COLOR,
787 - 'default' => '#ffffff',
788 - 'selectors' => [
789 - '{{WRAPPER}} .ui-e-field-group:not(.ui-e-field-type-file) .ui-e-field:not(.ui-e-field-select)' => 'background-color: {{VALUE}};',
790 - '{{WRAPPER}} .ui-e-field-group .ui-e-field-select select' => 'background-color: {{VALUE}};',
791 - ],
792 - ]
793 - );
794 - $this->add_group_control(
795 - Group_Control_Border::get_type(),
796 - [
797 - 'name' => 'field_border',
798 - 'selector' =>
799 - '{{WRAPPER}} .ui-e-field-group:not(.ui-e-field-type-file) .ui-e-field:not(.ui-e-field-select),
800 - {{WRAPPER}} .ui-e-field-group .ui-e-field-select select',
801 - ]
802 - );
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)',
803 1047
804 - $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)',
805 1059
806 - $this->start_controls_tab(
807 - 'field_hover_tab',
808 - [
809 - 'label' => esc_html__( 'Hover', 'uicore-elements' ),
810 - ]
811 - );
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 + );
812 1091
813 - $this->add_control(
814 - 'field_text_hover_color',
815 - [
816 - 'label' => esc_html__( 'Text Color', 'uicore-elements' ),
817 - 'type' => Controls_Manager::COLOR,
818 - 'selectors' => [
819 - '{{WRAPPER}} .ui-e-field-group:hover .ui-e-field' => 'color: {{VALUE}};',
820 - ],
821 - 'global' => [
822 - 'default' => Global_Colors::COLOR_TEXT,
823 - ],
824 - ]
825 - );
826 - $this->add_control(
827 - 'field_placeholder_hover_color',
828 - [
829 - 'label' => esc_html__( 'Placeholder Color', 'uicore-elements' ),
830 - 'type' => Controls_Manager::COLOR,
831 - 'selectors' => [
832 - '{{WRAPPER}} .ui-e-field-group:hover .ui-e-field::placeholder' => 'color: {{VALUE}};',
833 - ],
834 - 'global' => [
835 - 'default' => Global_Colors::COLOR_TEXT,
836 - ],
837 - ]
838 - );
839 - $this->add_control(
840 - 'field_background_hover_color',
841 - [
842 - 'label' => esc_html__( 'Background Color', 'uicore-elements' ),
843 - 'type' => Controls_Manager::COLOR,
844 - 'default' => '#ffffff',
845 - 'selectors' => [
846 - '{{WRAPPER}} .ui-e-field-group:hover:not(.ui-e-field-type-file) .ui-e-field:not(.ui-e-field-select)' => 'background-color: {{VALUE}};',
847 - '{{WRAPPER}} .ui-e-field-group:hover .ui-e-field-select select' => 'background-color: {{VALUE}};',
848 - ],
849 - ]
850 - );
851 - $this->add_group_control(
852 - Group_Control_Border::get_type(),
853 - [
854 - 'name' => 'field_hover_border',
855 - 'selector' =>
856 - '{{WRAPPER}} .ui-e-field-group:hover:not(.ui-e-field-type-file) .ui-e-field:not(.ui-e-field-select),
857 - {{WRAPPER}} .ui-e-field-group:hover .ui-e-field-select select',
858 - ]
859 - );
1092 + $this->end_controls_tab();
860 1093
861 - $this->end_controls_tab();
1094 + $this->start_controls_tab(
1095 + 'field_hover_tab',
1096 + [
1097 + 'label' => esc_html__('Hover', 'uicore-elements'),
1098 + ]
1099 + );
862 1100
863 - $this->start_controls_tab(
864 - 'field_active_tab',
865 - [
866 - 'label' => esc_html__( 'Active', 'uicore-elements' ),
867 - ]
868 - );
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)',
869 1110
870 - $this->add_control(
871 - 'field_text_active_color',
872 - [
873 - 'label' => esc_html__( 'Text Color', 'uicore-elements' ),
874 - 'type' => Controls_Manager::COLOR,
875 - 'selectors' => [
876 - '{{WRAPPER}} .ui-e-field-group .ui-e-field:focus' => 'color: {{VALUE}};',
877 - ],
878 - 'global' => [
879 - 'default' => Global_Colors::COLOR_TEXT,
880 - ],
881 - ]
882 - );
883 - $this->add_control(
884 - 'field_background_active_color',
885 - [
886 - 'label' => esc_html__( 'Background Color', 'uicore-elements' ),
887 - 'type' => Controls_Manager::COLOR,
888 - 'default' => '#ffffff',
889 - 'selectors' => [
890 - '{{WRAPPER}} .ui-e-field-group:not(.ui-e-field-type-file) .ui-e-field:focus:not(.ui-e-field-select)' => 'background-color: {{VALUE}};',
891 - '{{WRAPPER}} .ui-e-field-group .ui-e-field-select:focus select' => 'background-color: {{VALUE}};',
892 - ],
893 - ]
894 - );
895 - $this->add_group_control(
896 - Group_Control_Border::get_type(),
897 - [
898 - 'name' => 'field_active_border',
899 - 'selector' =>
900 - '{{WRAPPER}} .ui-e-field-group:not(.ui-e-field-type-file) .ui-e-field:focus:not(.ui-e-field-select),
901 - {{WRAPPER}} .ui-e-field-group .ui-e-field-select:focus select',
902 - ]
903 - );
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)',
904 1122
905 - $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 + );
906 1154
907 - $this->end_controls_tabs();
1155 + $this->end_controls_tab();
908 1156
909 - $this->add_control(
910 - 'field_border_radius',
911 - [
912 - 'label' => esc_html__( 'Border Radius', 'uicore-elements' ),
913 - 'type' => Controls_Manager::DIMENSIONS,
914 - 'size_units' => [ 'px', '%', 'em', 'rem', 'custom' ],
915 - 'selectors' => [
916 - '{{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}};',
917 - '{{WRAPPER}} .ui-e-field-group .ui-e-field-select select' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
918 - ],
919 - 'separator' => 'before'
920 - ]
921 - );
922 - $this->add_responsive_control(
923 - 'field_padding',
924 - [
925 - 'label' => esc_html__( 'Padding', 'uicore-elements' ),
926 - 'type' => Controls_Manager::DIMENSIONS,
927 - 'size_units' => [ 'px', '%', 'em', 'rem', 'custom' ],
928 - 'selectors' => [
929 - '{{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}};',
930 - '{{WRAPPER}} .ui-e-field-group .ui-e-field-select select' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
931 - ],
932 - ]
933 - );
934 - 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) {
935 1236 $this->end_controls_section();
936 1237 }
937 1238 }
938 1239 function TRAIT_register_button_style_controls($section = true)
939 1240 {
940 - if($section){
1241 + if ($section) {
941 1242 $this->start_controls_section(
942 1243 'section_button_style',
943 1244 [
944 - 'label' => esc_html__( 'Button', 'uicore-elements' ),
1245 + 'label' => esc_html__('Button', 'uicore-elements'),
945 1246 'tab' => Controls_Manager::TAB_STYLE,
946 1247 ]
947 1248 );
948 1249 }
949 1250
950 - $this->add_group_control(
951 - Group_Control_Typography::get_type(),
952 - [
953 - 'name' => 'button_typography',
954 - 'global' => [
955 - 'default' => Global_Typography::TYPOGRAPHY_ACCENT,
956 - ],
957 - 'selector' => '{{WRAPPER}} .elementor-button',
958 - ]
959 - );
960 - $this->add_group_control(
961 - Group_Control_Border::get_type(), [
962 - 'name' => 'button_border',
963 - 'selector' => '{{WRAPPER}} .elementor-button',
964 - 'exclude' => [
965 - 'color',
966 - ],
967 - ]
968 - );
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 + );
969 1271
970 - $this->start_controls_tabs( 'tabs_button_style' );
1272 + $this->start_controls_tabs('tabs_button_style');
971 1273
972 - $this->start_controls_tab(
973 - 'tab_button_normal',
974 - [
975 - 'label' => esc_html__( 'Normal', 'uicore-elements' ),
976 - ]
977 - );
1274 + $this->start_controls_tab(
1275 + 'tab_button_normal',
1276 + [
1277 + 'label' => esc_html__('Normal', 'uicore-elements'),
1278 + ]
1279 + );
978 1280
979 - $this->add_control(
980 - 'button_background_color',
981 - [
982 - 'label' => esc_html__( 'Background Color', 'uicore-elements' ),
983 - 'type' => Controls_Manager::COLOR,
984 - 'global' => [
985 - 'default' => Global_Colors::COLOR_ACCENT,
986 - ],
987 - 'selectors' => [
988 - '{{WRAPPER}} .e-form__buttons__wrapper__button-next' => 'background-color: {{VALUE}};',
989 - '{{WRAPPER}} .elementor-button[type="submit"]' => 'background-color: {{VALUE}};',
990 - ],
991 - ]
992 - );
993 - $this->add_control(
994 - 'button_text_color',
995 - [
996 - 'label' => esc_html__( 'Text Color', 'uicore-elements' ),
997 - 'type' => Controls_Manager::COLOR,
998 - 'default' => '#ffffff',
999 - 'selectors' => [
1000 - '{{WRAPPER}} .e-form__buttons__wrapper__button-next' => 'color: {{VALUE}};',
1001 - '{{WRAPPER}} .elementor-button[type="submit"]' => 'color: {{VALUE}};',
1002 - '{{WRAPPER}} .elementor-button[type="submit"] svg *' => 'fill: {{VALUE}};',
1003 - ],
1004 - ]
1005 - );
1006 - $this->add_control(
1007 - 'button_border_color',
1008 - [
1009 - 'label' => esc_html__( 'Border Color', 'uicore-elements' ),
1010 - 'type' => Controls_Manager::COLOR,
1011 - 'default' => '',
1012 - 'selectors' => [
1013 - '{{WRAPPER}} .e-form__buttons__wrapper__button-next' => 'border-color: {{VALUE}};',
1014 - '{{WRAPPER}} .elementor-button[type="submit"]' => 'border-color: {{VALUE}};',
1015 - ],
1016 - 'condition' => [
1017 - 'button_border_border!' => '',
1018 - ],
1019 - ]
1020 - );
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 + );
1021 1320
1022 - $this->end_controls_tab();
1321 + $this->end_controls_tab();
1023 1322
1024 - $this->start_controls_tab(
1025 - 'tab_button_hover',
1026 - [
1027 - 'label' => esc_html__( 'Hover', 'uicore-elements' ),
1028 - ]
1029 - );
1323 + $this->start_controls_tab(
1324 + 'tab_button_hover',
1325 + [
1326 + 'label' => esc_html__('Hover', 'uicore-elements'),
1327 + ]
1328 + );
1030 1329
1031 - $this->add_control(
1032 - 'button_background_hover_color',
1033 - [
1034 - 'label' => esc_html__( 'Background Color', 'uicore-elements' ),
1035 - 'type' => Controls_Manager::COLOR,
1036 - 'default' => '',
1037 - 'selectors' => [
1038 - '{{WRAPPER}} .e-form__buttons__wrapper__button-next:hover' => 'background-color: {{VALUE}};',
1039 - '{{WRAPPER}} .elementor-button[type="submit"]:hover' => 'background-color: {{VALUE}};',
1040 - ],
1041 - ]
1042 - );
1043 - $this->add_control(
1044 - 'button_hover_color',
1045 - [
1046 - 'label' => esc_html__( 'Text Color', 'uicore-elements' ),
1047 - 'type' => Controls_Manager::COLOR,
1048 - 'default' => '#ffffff',
1049 - 'selectors' => [
1050 - '{{WRAPPER}} .e-form__buttons__wrapper__button-next:hover' => 'color: {{VALUE}};',
1051 - '{{WRAPPER}} .elementor-button[type="submit"]:hover' => 'color: {{VALUE}};',
1052 - '{{WRAPPER}} .elementor-button[type="submit"]:hover svg *' => 'fill: {{VALUE}};',
1053 - ],
1054 - ]
1055 - );
1056 - $this->add_control(
1057 - 'button_hover_border_color',
1058 - [
1059 - 'label' => esc_html__( 'Border Color', 'uicore-elements' ),
1060 - 'type' => Controls_Manager::COLOR,
1061 - 'default' => '',
1062 - 'selectors' => [
1063 - '{{WRAPPER}} .e-form__buttons__wrapper__button-next:hover' => 'border-color: {{VALUE}};',
1064 - '{{WRAPPER}} .elementor-button[type="submit"]:hover' => 'border-color: {{VALUE}};',
1065 - ],
1066 - 'condition' => [
1067 - 'button_border_border!' => '',
1068 - ],
1069 - ]
1070 - );
1071 - $this->add_control(
1072 - 'hover_transition_duration',
1073 - [
1074 - 'label' => esc_html__( 'Transition Duration', 'uicore-elements' ),
1075 - 'type' => Controls_Manager::SLIDER,
1076 - 'size_units' => [ 's', 'ms', 'custom' ],
1077 - 'default' => [
1078 - 'unit' => 'ms',
1079 - ],
1080 - 'selectors' => [
1081 - '{{WRAPPER}} .e-form__buttons__wrapper__button-previous' => 'transition-duration: {{SIZE}}{{UNIT}};',
1082 - '{{WRAPPER}} .e-form__buttons__wrapper__button-next' => 'transition-duration: {{SIZE}}{{UNIT}};',
1083 - '{{WRAPPER}} .elementor-button[type="submit"] svg *' => 'transition-duration: {{SIZE}}{{UNIT}};',
1084 - '{{WRAPPER}} .elementor-button[type="submit"]' => 'transition-duration: {{SIZE}}{{UNIT}};',
1085 - ],
1086 - ]
1087 - );
1088 - $this->add_control(
1089 - 'button_hover_animation',
1090 - [
1091 - 'label' => esc_html__( 'Animation', 'uicore-elements' ),
1092 - 'type' => Controls_Manager::HOVER_ANIMATION,
1093 - ]
1094 - );
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 + );
1095 1394
1096 - $this->end_controls_tab();
1395 + $this->end_controls_tab();
1097 1396
1098 - $this->end_controls_tabs();
1397 + $this->end_controls_tabs();
1099 1398
1100 - $this->add_control(
1101 - 'button_border_radius',
1102 - [
1103 - 'label' => esc_html__( 'Border Radius', 'uicore-elements' ),
1104 - 'type' => Controls_Manager::DIMENSIONS,
1105 - 'size_units' => [ 'px', '%', 'em', 'rem', 'custom' ],
1106 - 'selectors' => [
1107 - '{{WRAPPER}} .elementor-button' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1108 - ],
1109 - 'separator' => 'before',
1110 - ]
1111 - );
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 + );
1112 1411
1113 - $this->add_control(
1114 - 'button_text_padding',
1115 - [
1116 - 'label' => esc_html__( 'Text Padding', 'uicore-elements' ),
1117 - 'type' => Controls_Manager::DIMENSIONS,
1118 - 'size_units' => [ 'px', '%', 'em', 'rem', 'custom' ],
1119 - 'selectors' => [
1120 - '{{WRAPPER}} .elementor-button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1121 - ],
1122 - ]
1123 - );
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 + );
1124 1423
1125 - if($section){
1424 + if ($section) {
1126 1425 $this->end_controls_section();
1127 1426 }
1128 1427 }
1129 1428 function TRAIT_register_messages_style_controls($section = true)
1130 1429 {
1131 - if($section){
1430 + if ($section) {
1132 1431 $this->start_controls_section(
1133 - 'section_messages_style',
1432 + 'section_messages_style',
1134 1433 [
1135 - 'label' => esc_html__( 'Messages', 'uicore-elements' ),
1434 + 'label' => esc_html__('Messages', 'uicore-elements'),
1136 1435 'tab' => Controls_Manager::TAB_STYLE,
1137 1436 ]
1138 1437 );
1139 1438 }
1140 1439
1141 - $this->add_control(
1142 - 'show_messages',
1143 - [
1144 - 'label' => esc_html__( 'Show/Hide messages', 'uicore-elements' ),
1145 - 'type' => Controls_Manager::BUTTON,
1146 - 'separator' => 'before',
1147 - 'text' => esc_html__( 'Toggle', 'uicore-elements' ),
1148 - 'event' => 'ui-e-form-show-messages',
1149 - ]
1150 - );
1151 - $this->add_group_control(
1152 - Group_Control_Typography::get_type(),
1153 - [
1154 - 'name' => 'message_typography',
1155 - 'global' => [
1156 - 'default' => Global_Typography::TYPOGRAPHY_TEXT,
1157 - ],
1158 - 'selector' => '{{WRAPPER}} .ui-e-message',
1159 - ]
1160 - );
1161 - $this->add_control(
1162 - 'success_message_color',
1163 - [
1164 - 'label' => esc_html__( 'Success Message Color', 'uicore-elements' ),
1165 - 'type' => Controls_Manager::COLOR,
1166 - 'default' => '#4CAF50',
1167 - 'selectors' => [
1168 - '{{WRAPPER}} .ui-e-message span.success' => 'color: {{COLOR}};',
1169 - ],
1170 - ]
1171 - );
1172 - $this->add_control(
1173 - 'error_message_color',
1174 - [
1175 - 'label' => esc_html__( 'Error Message Color', 'uicore-elements' ),
1176 - 'type' => Controls_Manager::COLOR,
1177 - 'default' => '#F44336',
1178 - 'selectors' => [
1179 - '{{WRAPPER}} .ui-e-message span.error' => 'color: {{COLOR}};',
1180 - ],
1181 - ]
1182 - );
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 + );
1183 1482
1184 - if($section){
1483 + if ($section) {
1185 1484 $this->end_controls_section();
1186 1485 }
1187 1486 }
1188 1487 function TRAIT_register_all_form_style_controls()
@@ -1196,9 +1495,9 @@
1196 1495 // Helper and Utility Functions
1197 1496 function TRAIT_get_width_values()
1198 1497 {
1199 1498 return [
1200 - '' => esc_html__( 'Default', 'uicore-elements' ),
1499 + '' => esc_html__('Default', 'uicore-elements'),
1201 1500 '100' => '100%',
1202 1501 '80' => '80%',
1203 1502 '75' => '75%',
1204 1503 '70' => '70%',
@@ -1213,11 +1512,11 @@
1213 1512 ];
1214 1513 }
1215 1514 function TRAIT_recaptcha_key_js()
1216 1515 {
1217 - ?>
1516 +?>
1218 1517 <script>
1219 1518 window.uicore_elements_recaptcha = '<?php echo esc_html(get_option('uicore_elements_recaptcha_site_key')); ?>';
1220 1519 </script>
1221 - <?php
1520 +<?php
1222 1521 }
1223 -}
1522 +}