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