PluginProbe
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP / 1.1.2
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP v1.1.2
1.2.73 1.2.72 1.2.71 1.2.70 1.2.69 1.2.68 1.2.67 1.2.66 1.2.65 1.2.64 1.2.63 trunk 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 1.0.22 All 173 releases
userswp / admin / settings / class-formbuilder.php

class-formbuilder.php in UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP 1.1.2, at admin/settings/class-formbuilder.php

2,696 lines 115.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * The form builder functionality of the plugin.
4 *
5 * @link http://wpgeodirectory.com
6 * @since 1.0.0
7 *
8 * @package userswp
9 * @subpackage userswp/admin/settings
10 */
11
12 /**
13 * The form builder functionality of the plugin.
14 *
15 * @package userswp
16 * @subpackage userswp/admin/settings
17 * @author GeoDirectory Team <info@wpgeodirectory.com>
18 */
19 class UsersWP_Form_Builder {
20
21 public static function output($tab = '') {
22
23 global $current_tab;
24
25 do_action( 'uwp_form_builder_start' );
26
27 // Get current tab/section
28 if($tab){
29 $current_tab = sanitize_title( $tab);
30 }else{
31 $current_tab = empty( $_GET['tab'] ) ? 'account' : sanitize_title( $_GET['tab'] );
32 }
33
34 // Get tabs for the form builder page
35 $tabs = apply_filters( 'uwp_form_builder_tabs_array', array(
36 'account' => __( 'Account', 'userswp' ),
37 'register' => __( 'Register', 'userswp' ),
38 ) );
39
40 ?>
41 <div class="wrap">
42 <nav class="nav-tab-wrapper uwp-nav-tab-wrapper">
43 <?php
44 foreach ( $tabs as $name => $label ) {
45 echo '<a href="' . admin_url( 'admin.php?page=uwp_form_builder&tab=' . $name ) . '" id="uwp-form-builder-'. $name . '" class="nav-tab ' . ( $current_tab == $name ? 'nav-tab-active' : '' ) . '">' . $label . '</a>';
46 }
47 do_action( 'uwp_form_builder_tabs' );
48 ?>
49 </nav>
50 <h1 class="screen-reader-text"><?php echo esc_html( $tabs[ $current_tab ] ); ?></h1>
51 <?php
52 do_action( 'uwp_form_builder_tabs_content', $current_tab, $tabs);
53 do_action( 'uwp_form_builder_tabs_' . $current_tab, $tabs );
54 do_action('uwp_extra_form_builder_content', $current_tab, $tabs);
55 ?>
56 </div>
57 <?php
58
59 }
60
61 public function uwp_form_builder($default_tab = 'account')
62 {
63 ob_start();
64 $form_type = (isset($_REQUEST['tab']) && $_REQUEST['tab'] != '') ? sanitize_text_field($_REQUEST['tab']) : $default_tab;
65 ?>
66 <div class="uwp-panel-heading">
67 <h3><?php echo apply_filters('uwp_form_builder_panel_head', ''); ?></h3>
68 </div>
69
70 <div id="uwp_form_builder_container" class="clearfix">
71 <div class="uwp-form-builder-frame">
72 <div class="uwp-side-sortables" id="uwp-available-fields">
73 <h3 class="hndle">
74 <span>
75 <?php echo apply_filters('uwp_form_builder_available_fields_head', __('Add new form field', 'userswp'), $form_type); ?>
76 </span>
77 </h3>
78
79 <p>
80 <?php
81 $note = sprintf(__('Click on any box below to add a field of that type on %s form. You must be use a fieldset to group your fields.', 'userswp'), $form_type);
82 echo apply_filters('uwp_form_builder_available_fields_note', $note, $form_type);
83 ?>
84 </p>
85
86 <h3>
87 <?php _e('Setup New Field', 'userswp'); ?>
88 </h3>
89
90 <div class="inside">
91 <div id="uwp-form-builder-tab" class="uwp-tabs-panel">
92 <?php do_action('uwp_manage_available_fields', $form_type); ?>
93 </div>
94 </div>
95
96 <?php if ($form_type == 'account') { ?>
97 <h3>
98 <?php _e('Predefined Fields', 'userswp'); ?>
99 </h3>
100
101 <div class="inside">
102 <div id="uwp-form-builder-tab-predefined" class="uwp-tabs-panel">
103 <?php do_action('uwp_manage_available_fields_predefined', $form_type); ?>
104 </div>
105 </div>
106 <?php } ?>
107
108 </div>
109
110
111 <div class="uwp-side-sortables" id="uwp-selected-fields">
112
113 <h3 class="hndle">
114 <span>
115 <?php
116 $title = __('List of fields those will appear on add new listing form', 'userswp');
117 echo apply_filters('uwp_form_builder_selected_fields_head', $title, $form_type); ?>
118 </span>
119 </h3>
120
121 <p>
122 <?php
123 $note = sprintf(__('Click to expand and view field related settings. You may drag and drop to arrange fields order on %s form too.', 'userswp'), $form_type);
124 echo apply_filters('uwp_form_builder_selected_fields_note', $note, $form_type); ?>
125 </p>
126
127 <div class="inside">
128 <div id="uwp-form-builder-tab-selected" class="uwp-tabs-panel">
129 <div class="field_row_main">
130 <?php do_action('uwp_manage_selected_fields', $form_type); ?>
131 </div>
132 </div>
133 </div>
134
135 </div>
136
137 </div>
138 </div>
139
140 <?php
141 $output = ob_get_contents();
142 ob_end_clean();
143 echo $output;
144 }
145
146 public function uwp_custom_available_fields($type = '', $form_type)
147 {
148 ?>
149 <input type="hidden" name="form_type" id="form_type" value="<?php echo $form_type; ?>"/>
150 <input type="hidden" name="manage_field_type" class="manage_field_type" value="custom_fields">
151 <?php
152 if ($type == 'predefined') {
153 $fields = $this->uwp_form_fields_predefined($form_type);
154 }elseif ($type == 'custom') {
155 $fields = $this->uwp_form_fields_custom($form_type);
156 } else {
157 $fields = $this->uwp_form_fields($form_type);
158 ?>
159 <ul class="full">
160 <li class="uwp-tooltip-wrap">
161 <a id="uwp-fieldset"
162 class="uwp-draggable-form-items uwp-fieldset"
163 href="javascript:void(0);"
164 data-field-custom-type=""
165 data-field-type="fieldset"
166 data-field-type-key="fieldset">
167
168 <i class="fas fa-long-arrow-alt-left " aria-hidden="true"></i>
169 <i class="fas fa-long-arrow-alt-right " aria-hidden="true"></i>
170 <?php _e('Fieldset (section separator)', 'userswp'); ?>
171
172 <span class="uwp-help-tip uwp-help-tip-no-margin dashicons dashicons-editor-help" title="<?php _e('This adds a section separator with a title.', 'userswp'); ?>"></span>
173 </a>
174 </li>
175 </ul>
176
177 <?php
178 }
179
180 if (!empty($fields)) {
181 ?>
182 <ul>
183 <?php
184 foreach ($fields as $id => $field) {
185 ?>
186 <li class="uwp-tooltip-wrap">
187 <a id="uwp-<?php echo $id; ?>"
188 data-field-custom-type="<?php echo $type; ?>"
189 data-field-type-key="<?php echo $id; ?>"
190 data-field-type="<?php echo $field['field_type']; ?>"
191 class="uwp-draggable-form-items <?php echo $field['class']; ?>"
192 href="javascript:void(0);">
193
194 <?php if (isset($field['icon']) && strpos($field['icon'], ' fa-') !== false) {
195 echo '<i class="' . $field['icon'] . '" aria-hidden="true"></i>';
196 } elseif (isset($field['icon']) && $field['icon']) {
197 echo '<b style="background-image: url("' . $field['icon'] . '")"></b>';
198 } else {
199 echo '<i class="fas fa-cog" aria-hidden="true"></i>';
200 } ?>
201 <?php echo $field['name']; ?>
202
203 <?php if (isset($field['description']) && $field['description']) { ?>
204 <span class="uwp-help-tip uwp-help-tip-no-margin dashicons dashicons-editor-help" title="<?php echo $field['description'] ?>"></span>
205 <?php } ?>
206 </a>
207 </li>
208 <?php
209 }
210 } else {
211 _e('There are no custom fields here yet.', 'userswp');
212 }
213 ?>
214 </ul>
215
216 <?php
217
218 }
219
220 public function uwp_form_fields_predefined($type = '') {
221 $custom_fields = array();
222
223
224
225 // Country
226 $custom_fields['country'] = array( // The key value should be unique and not contain any spaces.
227 'field_type' => 'select',
228 'class' => 'uwp-country',
229 'icon' => 'fas fa-map-marker-alt',
230 'name' => __('Country', 'userswp'),
231 'description' => __('Adds a input for Country field.', 'userswp'),
232 'defaults' => array(
233 'admin_title' => 'Country',
234 'site_title' => 'Country',
235 'htmlvar_name' => 'country',
236 'is_active' => 1,
237 'default_value' => '',
238 'is_required' => 0,
239 'option_values' => '',
240 'required_msg' => '',
241 'field_icon' => 'fas fa-map-marker-alt',
242 'css_class' => ''
243 )
244 );
245
246 // Gender
247 $custom_fields['gender'] = array( // The key value should be unique and not contain any spaces.
248 'field_type' => 'select',
249 'class' => 'uwp-gender',
250 'icon' => 'fas fa-user',
251 'name' => __('Gender', 'userswp'),
252 'description' => __('Adds a input for Gender field.', 'userswp'),
253 'defaults' => array(
254 'admin_title' => 'Gender',
255 'site_title' => 'Gender',
256 'htmlvar_name' => 'gender',
257 'is_active' => 1,
258 'default_value' => '',
259 'is_required' => 0,
260 'option_values' => __('Select Gender/,Male,Female,Other', 'userswp'),
261 'required_msg' => '',
262 'field_icon' => 'fas fa-user',
263 'css_class' => ''
264 )
265 );
266
267 // Mobile
268 $custom_fields['mobile'] = array( // The key value should be unique and not contain any spaces.
269 'field_type' => 'phone',
270 'class' => 'uwp-mobile',
271 'icon' => 'fas fa-mobile-alt',
272 'name' => __('Mobile', 'userswp'),
273 'description' => __('Adds a input for Mobile field.', 'userswp'),
274 'defaults' => array(
275 'admin_title' => 'Mobile',
276 'site_title' => 'Mobile',
277 'htmlvar_name' => 'mobile',
278 'is_active' => 1,
279 'default_value' => '',
280 'is_required' => 0,
281 'required_msg' => '',
282 'field_icon' => 'fas fa-mobile-alt',
283 'css_class' => ''
284 )
285 );
286
287
288 return apply_filters('uwp_form_fields_predefined', $custom_fields, $type);
289 }
290
291 public function uwp_form_fields_custom($type = '') {
292 $custom_fields = array();
293 return apply_filters('uwp_form_fields_custom', $custom_fields, $type);
294 }
295
296 public function uwp_form_fields($type = '') {
297
298 $custom_fields = array(
299 'text' => array(
300 'field_type' => 'text',
301 'class' => 'uwp-text',
302 'icon' => 'fas fa-minus',
303 'name' => __('Text', 'userswp'),
304 'description' => __('Add any sort of text field, text or numbers', 'userswp')
305 ),
306 'datepicker' => array(
307 'field_type' => 'datepicker',
308 'class' => 'uwp-datepicker',
309 'icon' => 'fas fa-calendar-alt',
310 'name' => __('Date', 'userswp'),
311 'description' => __('Adds a date picker.', 'userswp')
312 ),
313 'textarea' => array(
314 'field_type' => 'textarea',
315 'class' => 'uwp-textarea',
316 'icon' => 'fas fa-bars',
317 'name' => __('Textarea', 'userswp'),
318 'description' => __('Adds a textarea', 'userswp')
319 ),
320 'time' => array(
321 'field_type' => 'time',
322 'class' => 'uwp-time',
323 'icon' => 'far fa-clock',
324 'name' => __('Time', 'userswp'),
325 'description' => __('Adds a time picker', 'userswp')
326 ),
327 'checkbox' => array(
328 'field_type' => 'checkbox',
329 'class' => 'uwp-checkbox',
330 'icon' => 'far fa-check-square',
331 'name' => __('Checkbox', 'userswp'),
332 'description' => __('Adds a checkbox', 'userswp')
333 ),
334 'phone' => array(
335 'field_type' => 'phone',
336 'class' => 'uwp-phone',
337 'icon' => 'fas fa-phone',
338 'name' => __('Phone', 'userswp'),
339 'description' => __('Adds a phone input', 'userswp')
340 ),
341 'radio' => array(
342 'field_type' => 'radio',
343 'class' => 'uwp-radio',
344 'icon' => 'far fa-dot-circle',
345 'name' => __('Radio', 'userswp'),
346 'description' => __('Adds a radio input', 'userswp')
347 ),
348 'email' => array(
349 'field_type' => 'email',
350 'class' => 'uwp-email',
351 'icon' => 'far fa-envelope',
352 'name' => __('Email', 'userswp'),
353 'description' => __('Adds a email input', 'userswp')
354 ),
355 'select' => array(
356 'field_type' => 'select',
357 'class' => 'uwp-select',
358 'icon' => 'far fa-caret-square-down',
359 'name' => __('Select', 'userswp'),
360 'description' => __('Adds a select input', 'userswp')
361 ),
362 'multiselect' => array(
363 'field_type' => 'multiselect',
364 'class' => 'uwp-multiselect',
365 'icon' => 'far fa-caret-square-down',
366 'name' => __('Multi Select', 'userswp'),
367 'description' => __('Adds a multiselect input', 'userswp')
368 ),
369 'url' => array(
370 'field_type' => 'url',
371 'class' => 'uwp-url',
372 'icon' => 'fas fa-link',
373 'name' => __('URL', 'userswp'),
374 'description' => __('Adds a url input', 'userswp')
375 ),
376 'file' => array(
377 'field_type' => 'file',
378 'class' => 'uwp-file',
379 'icon' => 'fas fa-file',
380 'name' => __('File Upload', 'userswp'),
381 'description' => __('Adds a file input', 'userswp')
382 )
383 );
384
385 return apply_filters('uwp_form_fields', $custom_fields, $type);
386 }
387
388
389 public function uwp_manage_available_fields_predefined($form_type) {
390 switch ($form_type) {
391 case 'account':
392 $this->uwp_custom_available_fields('predefined', $form_type);
393 break;
394 }
395 }
396
397 public function uwp_manage_available_fields_custom($form_type) {
398 switch ($form_type) {
399 case 'account':
400 $this->uwp_custom_available_fields('custom', $form_type);
401 break;
402 }
403 }
404
405 public function uwp_manage_available_fields($form_type) {
406 switch ($form_type) {
407 case 'account':
408 $this->uwp_custom_available_fields('', $form_type);
409 break;
410 case 'register':
411 $this->uwp_register_available_fields($form_type);
412 break;
413 }
414 }
415
416 public function uwp_manage_selected_fields($form_type) {
417 switch ($form_type) {
418 case 'account':
419 $this->uwp_custom_selected_fields($form_type);
420 break;
421 case 'register':
422 $this->uwp_register_selected_fields($form_type);
423 break;
424 }
425 }
426
427 function uwp_custom_selected_fields($form_type)
428 {
429
430 global $wpdb;
431 $table_name = uwp_get_table_prefix() . 'uwp_form_fields';
432 ?>
433 <input type="hidden" name="form_type" id="form_type" value="<?php echo $form_type; ?>"/>
434 <input type="hidden" name="manage_field_type" class="manage_field_type" value="custom_fields">
435 <ul class="core">
436 <?php
437 $fields = $wpdb->get_results($wpdb->prepare("SELECT * FROM " . $table_name . " WHERE form_type = %s ORDER BY sort_order ASC", array($form_type)));
438
439 if (!empty($fields)) {
440 foreach ($fields as $field) {
441 //$result_str = $field->id;
442 $result_str = $field;
443 $field_type = $field->field_type;
444 $field_type_key = $field->field_type_key;
445 $field_ins_upd = 'display';
446
447 $this->uwp_form_field_adminhtml($field_type, $result_str, $field_ins_upd, $field_type_key);
448 }
449 }
450 ?></ul>
451 <?php
452
453 }
454
455 /**
456 * @param $field_info
457 * @param $field_type
458 * @param string $field_type_key
459 * @param string $field_ins_upd
460 * @param $result_str
461 * @param bool $form_type
462 */
463 public function uwp_admin_form_field_html($field_info, $field_type, $field_type_key, $field_ins_upd, $result_str, $form_type = false) {
464
465 if (!$form_type) {
466 if (!isset($field_info->form_type)) {
467 $form_type = sanitize_text_field($_REQUEST['tab']);
468 } else {
469 $form_type = $field_info->form_type;
470 }
471 }
472
473 $cf_arr1 = $this->uwp_form_fields($form_type);
474 $cf_arr2 = $this->uwp_form_fields_predefined($form_type);
475 $cf_arr3 = $this->uwp_form_fields_custom($form_type);
476
477 $cf_arr = $cf_arr1 + $cf_arr2 + $cf_arr3; // this way defaults can't be overwritten
478
479 $cf = (isset($cf_arr[$field_type_key])) ? $cf_arr[$field_type_key] : '';
480
481 $field_info = stripslashes_deep($field_info); // strip slashes from labels
482
483 $field_site_title = '';
484 if (isset($field_info->site_title))
485 $field_site_title = $field_info->site_title;
486
487 $default = isset($field_info->is_default) ? $field_info->is_default : '';
488
489 $field_display = $field_type == 'address' && $field_info->htmlvar_name == 'post' ? 'style="display:none"' : '';
490
491 if (isset($cf['icon']) && strpos($cf['icon'], ' fa-') !== false) {
492 $field_icon = '<i class="' . $cf['icon'] . '" aria-hidden="true"></i>';
493 }elseif (isset($cf['icon']) && $cf['icon']) {
494 $field_icon = '<b style="background-image: url("' . $cf['icon'] . '")"></b>';
495 } else {
496 $field_icon = '<i class="fas fa-cog" aria-hidden="true"></i>';
497 }
498
499 if (isset($cf['name']) && $cf['name']) {
500 $field_type_name = $cf['name'];
501 } else {
502 $field_type_name = $field_type;
503 }
504
505 ?>
506 <li class="text li-settings" id="licontainer_<?php echo $result_str; ?>">
507 <i class="fas fa-caret-down toggle-arrow" aria-hidden="true" onclick="uwp_show_hide(this);"></i>
508 <div class="title title<?php echo $result_str; ?> uwp-fieldset">
509 <?php
510 $nonce = wp_create_nonce('custom_fields_' . $result_str);
511 if ($field_type == 'fieldset') {
512 ?>
513 <i class="fas fa-long-arrow-alt-left " aria-hidden="true"></i>
514 <i class="fas fa-long-arrow-alt-right " aria-hidden="true"></i>
515 <b><?php echo uwp_ucwords(__('Fieldset:', 'userswp')); ?></b>
516 <span class="field-type"><?php echo ' ('.uwp_ucwords($field_site_title).')';?></span>
517 <?php
518 } else {echo $field_icon;
519 ?>
520 <b><?php echo uwp_ucwords(' ' . $field_site_title ); ?></b>
521 <span class="field-type"><?php echo ' ('.uwp_ucwords($field_type_name).')';?></span>
522 <?php
523 }
524 ?>
525 </div>
526
527 <form>
528 <div id="field_frm<?php echo $result_str; ?>" class="field_frm"
529 style="display:<?php if ($field_ins_upd == 'submit') {
530 echo 'block;';
531 } else {
532 echo 'none;';
533 } ?>">
534 <input type="hidden" name="_wpnonce" value="<?php echo esc_attr($nonce); ?>"/>
535 <input type="hidden" name="form_type" id="form_type" value="<?php echo $form_type; ?>"/>
536 <input type="hidden" name="field_type" id="field_type" value="<?php echo $field_type; ?>"/>
537 <input type="hidden" name="field_type_key" id="field_type_key" value="<?php echo $field_type_key; ?>"/>
538 <input type="hidden" name="field_id" id="field_id" value="<?php echo esc_attr($result_str); ?>"/>
539 <input type="hidden" name="is_active" id="is_active" value="1"/>
540
541 <input type="hidden" name="is_default" value="<?php echo isset($field_info->is_default) ? $field_info->is_default : ''; ?>" /><?php // show in sidebar value?>
542
543 <ul class="widefat post fixed" style="width:100%;">
544
545 <?php
546 // data_type
547 if (has_filter("uwp_builder_data_type_{$field_type}")) {
548
549 echo apply_filters("uwp_builder_data_type_{$field_type}", '', $result_str, $cf, $field_info);
550
551 } else {
552 $value = '';
553 if (isset($field_info->data_type)) {
554 $value = esc_attr($field_info->data_type);
555 }elseif (isset($cf['defaults']['data_type']) && $cf['defaults']['data_type']) {
556 $value = $cf['defaults']['data_type'];
557 }
558 ?>
559 <input type="hidden" name="data_type" id="data_type" value="<?php echo $value; ?>"/>
560 <?php
561 }
562
563 // site_title
564 if (has_filter("uwp_builder_site_title_{$field_type}")) {
565
566 echo apply_filters("uwp_builder_site_title_{$field_type}", '', $result_str, $cf, $field_info);
567
568 } else {
569 $value = '';
570 if (isset($field_info->site_title)) {
571 $value = esc_attr($field_info->site_title);
572 }elseif (isset($cf['defaults']['site_title']) && $cf['defaults']['site_title']) {
573 $value = $cf['defaults']['site_title'];
574 }
575 ?>
576 <li class="uwp-setting-name">
577 <label for="site_title" class="uwp-tooltip-wrap">
578 <span class="uwp-help-tip dashicons dashicons-editor-help" title="<?php _e('This will be the label for the field.', 'userswp'); ?>"></span>
579 <?php _e('Field Label:', 'userswp'); ?>
580 </label>
581 <div class="uwp-input-wrap">
582 <input type="text" name="site_title" id="site_title"
583 value="<?php echo $value; ?>"/>
584 </div>
585 </li>
586 <?php
587 }
588
589 // Input Label
590 if (has_filter("uwp_builder_form_label_{$field_type}")) {
591
592 echo apply_filters("uwp_builder_form_label_{$field_type}", '', $result_str, $cf, $field_info);
593
594 } else {
595 $value = '';
596 if (isset($field_info->form_label)) {
597 $value = esc_attr($field_info->form_label);
598 }elseif (isset($cf['defaults']['form_label']) && $cf['defaults']['form_label']) {
599 $value = $cf['defaults']['form_label'];
600 }
601 ?>
602 <li class="uwp-setting-name uwp-advanced-setting">
603 <label for="form_label" class="uwp-tooltip-wrap">
604 <span class="uwp-help-tip dashicons dashicons-editor-help" title="<?php _e('If your form label is different, then you can fill this field. Ex: You would like to display "What is your age?" in Form Field but would like to display "DOB" in site. In such cases "What is your age?" should be entered here and "DOB" should be entered in previous field. Note: If this field not filled, then the previous field will be used in Form. ', 'userswp'); ?>"></span>
605 <?php _e('Form Label: (Optional)', 'userswp'); ?>
606 </label>
607 <div class="uwp-input-wrap">
608 <input type="text" name="form_label" id="form_label"
609 value="<?php echo $value; ?>"/>
610 </div>
611 </li>
612 <?php
613 }
614
615
616 // htmlvar_name
617 if(has_filter("uwp_builder_htmlvar_name_{$field_type}")){
618
619 echo apply_filters("uwp_builder_htmlvar_name_{$field_type}",'',$result_str,$cf,$field_info);
620
621 }else{
622 $value = '';
623 if (isset($field_info->htmlvar_name)) {
624 $value = esc_attr($field_info->htmlvar_name);
625 }elseif(isset($cf['defaults']['htmlvar_name']) && $cf['defaults']['htmlvar_name']){
626 $value = $cf['defaults']['htmlvar_name'];
627 }
628 ?>
629 <li class="uwp-setting-name">
630 <label for="htmlvar_name" class="uwp-tooltip-wrap">
631 <span class="uwp-help-tip dashicons dashicons-editor-help" title="<?php _e('This is a unique identifier used in the HTML, it MUST NOT contain spaces or special characters.', 'userswp'); ?>"></span>
632 <?php _e('Field Key :', 'userswp');?>
633 </label>
634 <div class="uwp-input-wrap">
635 <input type="text" name="htmlvar_name" id="htmlvar_name" pattern="[a-zA-Z0-9]+" title="<?php _e('Must not contain spaces or special characters', 'userswp');?>"
636 value="<?php if ($value) {
637 echo preg_replace('/uwp_'.$form_type.'_/', '', $value, 1);
638 }?>" <?php if ( ! empty( $value ) && $value != '' ) { echo 'readonly="readonly"'; } ?> />
639 </div>
640 </li>
641 <?php
642 }
643
644
645 // is_active
646 if (has_filter("uwp_builder_is_active_{$field_type}")) {
647
648 echo apply_filters("uwp_builder_is_active_{$field_type}", '', $result_str, $cf, $field_info);
649
650 } else {
651 $value = '';
652 if (isset($field_info->is_active)) {
653 $value = esc_attr($field_info->is_active);
654 }elseif (isset($cf['defaults']['is_active']) && $cf['defaults']['is_active']) {
655 $value = $cf['defaults']['is_active'];
656 }
657 ?>
658 <li <?php echo $field_display; ?> class="uwp-setting-name">
659 <label for="is_active" class="uwp-tooltip-wrap">
660 <span class="uwp-help-tip dashicons dashicons-editor-help" title="<?php _e('If no is selected then the field will not be displayed anywhere.', 'userswp'); ?>"></span>
661 <?php _e('Is active :', 'userswp'); ?>
662 </label>
663 <div class="uwp-input-wrap">
664 <input type="hidden" name="is_active" value="0" />
665 <input type="checkbox" name="is_active" value="1" <?php checked( $value, 1, true );?> />
666 </div>
667 </li>
668 <?php
669 }
670
671 // for_admin_use
672 if (isset($field_info->is_default) && $field_info->is_default == '1') {
673 // do nothing for default fields
674 } else {
675 if (has_filter("uwp_builder_for_admin_use_{$field_type}")) {
676
677 echo apply_filters("uwp_builder_for_admin_use_{$field_type}", '', $result_str, $cf, $field_info);
678
679 } else {
680 $value = '';
681 if (isset($field_info->for_admin_use)) {
682 $value = esc_attr($field_info->for_admin_use);
683 }elseif (isset($cf['defaults']['for_admin_use']) && $cf['defaults']['for_admin_use']) {
684 $value = $cf['defaults']['for_admin_use'];
685 }
686 ?>
687 <li <?php echo $field_display; ?> class="uwp-setting-name uwp-advanced-setting">
688 <label for="for_admin_use" class="uwp-tooltip-wrap">
689 <span class="uwp-help-tip dashicons dashicons-editor-help" title="<?php _e('If yes is selected then only site admin can see and edit this field.', 'userswp'); ?>"></span>
690 <?php _e('For admin use only? :', 'userswp'); ?>
691 </label>
692 <div class="uwp-input-wrap">
693 <input type="hidden" name="for_admin_use" value="0" />
694 <input type="checkbox" name="for_admin_use" value="1" <?php checked( $value, 1, true );?> />
695 </div>
696 </li>
697 <?php
698 }
699 }
700
701
702 // is_public
703 if (has_filter("uwp_builder_is_public_{$field_type}")) {
704
705 echo apply_filters("uwp_builder_is_public_{$field_type}", '', $result_str, $cf, $field_info);
706
707 } else {
708 $value = '';
709 if (isset($field_info->is_public)) {
710 $value = esc_attr($field_info->is_public);
711 }elseif (isset($cf['defaults']['is_public']) && $cf['defaults']['is_public']) {
712 $value = $cf['defaults']['is_public'];
713 }
714 ?>
715 <li <?php echo $field_display; ?> class="uwp-setting-name uwp-advanced-setting">
716 <label for="is_public" class="uwp-tooltip-wrap">
717 <span class="uwp-help-tip dashicons dashicons-editor-help" title="<?php _e('If no is selected then the field will not be visible to other users.', 'userswp'); ?>"></span>
718 <?php _e('Is Public :', 'userswp'); ?>
719 </label>
720 <div class="uwp-input-wrap">
721 <?php
722 if (!$value) {
723 $value = "1";
724 }
725 ?>
726
727 <select name="is_public" id="is_public" class="uwp_select2">
728 <option value="1" <?php selected($value, "1"); ?>><?php echo __("Yes", "userswp") ?></option>
729 <option value="0" <?php selected($value, "0"); ?>><?php echo __("No", "userswp") ?></option>
730 <option value="2" <?php selected($value, "2"); ?>><?php echo __("Let User Decide", "userswp") ?></option>
731 </select>
732
733 </div>
734 </li>
735 <?php
736 }
737
738
739 // default_value
740 if (has_filter("uwp_builder_default_value_{$field_type}")) {
741
742 echo apply_filters("uwp_builder_default_value_{$field_type}", '', $result_str, $cf, $field_info);
743
744 } else {
745 $value = '';
746 if (isset($field_info->default_value)) {
747 $value = esc_attr($field_info->default_value);
748 }elseif (isset($cf['defaults']['default_value']) && $cf['defaults']['default_value']) {
749 $value = $cf['defaults']['default_value'];
750 }
751 ?>
752 <li class="uwp-setting-name uwp-advanced-setting">
753 <label for="default_value" class="uwp-tooltip-wrap">
754 <?php
755 if ($field_type == 'checkbox') {
756 $tip = __('Should the checkbox be checked by default?', 'userswp');
757 } else if ($field_type == 'email') {
758 $tip = __('A default value for the field, usually blank. Ex: info@mysite.com', 'userswp');
759 } else {
760 $tip = __('A default value for the field, usually blank. (for "link" this will be used as the link text)', 'userswp');
761 }
762 ?>
763 <span class="uwp-help-tip dashicons dashicons-editor-help" title="<?php echo $tip; ?>"></span>
764 <?php _e('Default value :', 'userswp'); ?>
765 </label>
766 <div class="uwp-input-wrap">
767 <?php if ($field_type == 'checkbox') { ?>
768 <select name="default_value" id="default_value" class="uwp_select2">
769 <option value=""><?php _e('Unchecked', 'userswp'); ?></option>
770 <option value="1" <?php selected(true, (int) $value === 1); ?>><?php _e('Checked', 'userswp'); ?></option>
771 </select>
772 <?php } else if ($field_type == 'email') { ?>
773 <input type="email" name="default_value" placeholder="<?php _e('info@mysite.com', 'userswp'); ?>" id="default_value" value="<?php echo esc_attr($value); ?>" /><br/>
774 <?php } else { ?>
775 <input type="text" name="default_value" id="default_value" value="<?php echo esc_attr($value); ?>" /><br/>
776 <?php } ?>
777 </div>
778 </li>
779 <?php
780 }
781
782
783 // advanced_editor
784 if (has_filter("uwp_builder_advanced_editor_{$field_type}")) {
785
786 echo apply_filters("uwp_builder_advanced_editor_{$field_type}", '', $result_str, $cf, $field_info);
787
788 }
789
790
791 ?>
792 <input type="hidden" readonly="readonly" name="sort_order" id="sort_order" value="<?php if (isset($field_info->sort_order)) { echo esc_attr($field_info->sort_order); } ?>"/>
793 <?php
794
795 // is_required
796 if (has_filter("uwp_builder_is_required_{$field_type}")) {
797
798 echo apply_filters("uwp_builder_is_required_{$field_type}", '', $result_str, $cf, $field_info);
799
800 } else {
801 $value = '';
802 if (isset($field_info->is_required)) {
803 $value = esc_attr($field_info->is_required);
804 }elseif (isset($cf['defaults']['is_required']) && $cf['defaults']['is_required']) {
805 $value = $cf['defaults']['is_required'];
806 }
807 ?>
808 <li class="uwp-setting-name">
809 <label for="is_required" class="uwp-tooltip-wrap">
810 <span class="uwp-help-tip dashicons dashicons-editor-help" title="<?php _e('Select yes to set field as required', 'userswp'); ?>"></span>
811 <?php _e('Is required :', 'userswp'); ?>
812 </label>
813
814 <div class="uwp-input-wrap">
815 <input type="hidden" name="is_required" value="0" />
816 <input type="checkbox" name="is_required" value="1" <?php checked( $value, 1, true );?> />
817 </div>
818
819 </li>
820
821 <?php
822 }
823
824 // required_msg
825 if (has_filter("uwp_builder_required_msg_{$field_type}")) {
826
827 echo apply_filters("uwp_builder_required_msg_{$field_type}", '', $result_str, $cf, $field_info);
828
829 } else {
830 $value = '';
831 if (isset($field_info->required_msg)) {
832 $value = esc_attr($field_info->required_msg);
833 }elseif (isset($cf['defaults']['required_msg']) && $cf['defaults']['required_msg']) {
834 $value = $cf['defaults']['required_msg'];
835 }
836 ?>
837 <li class="cf-is-required-msg uwp-setting-name uwp-advanced-setting" <?php if ((isset($field_info->is_required) && $field_info->is_required == '0') || !isset($field_info->is_required)) {echo "style='display:none;'"; }?>>
838 <label for="required_msg" class="uwp-tooltip-wrap">
839 <span class="uwp-help-tip dashicons dashicons-editor-help" title="<?php _e('Enter text for the error message if the field is required and has not fulfilled the requirements.', 'userswp'); ?>"></span>
840 <?php _e('Required message:', 'userswp'); ?>
841 </label>
842 <div class="uwp-input-wrap">
843 <input type="text" name="required_msg" id="required_msg"
844 value="<?php echo esc_attr($value); ?>"/>
845 </div>
846 </li>
847 <?php
848 }
849
850
851 // required_msg
852 if (has_filter("uwp_builder_validation_pattern_{$field_type}")) {
853
854 echo apply_filters("uwp_builder_validation_pattern_{$field_type}", '', $result_str, $cf, $field_info);
855
856 }
857
858
859 // extra_fields
860 if (has_filter("uwp_builder_extra_fields_{$field_type}")) {
861
862 echo apply_filters("uwp_builder_extra_fields_{$field_type}", '', $result_str, $cf, $field_info);
863
864 }
865
866
867 // field_icon
868 if (has_filter("uwp_builder_field_icon_{$field_type}")) {
869
870 echo apply_filters("uwp_builder_field_icon_{$field_type}", '', $result_str, $cf, $field_info);
871
872 } else {
873 $value = '';
874 if (isset($field_info->field_icon)) {
875 $value = esc_attr($field_info->field_icon);
876 }elseif (isset($cf['defaults']['field_icon']) && $cf['defaults']['field_icon']) {
877 $value = $cf['defaults']['field_icon'];
878 }
879 ?>
880 <li class="uwp-setting-name uwp-advanced-setting">
881
882 <label for="field_icon" class="uwp-tooltip-wrap">
883 <span class="uwp-help-tip dashicons dashicons-editor-help" title='<?php echo sprintf(__('Upload icon using media and enter its url path, or enter %sfont awesome%s class eg:"fas fa-home"', 'userswp'), '<a href="http://fortawesome.github.io/Font-Awesome/icons/" target="_blank" >', '</a>'); ?>'></span>
884 <?php _e('Upload icon :', 'userswp'); ?>
885 </label>
886 <div class="uwp-input-wrap">
887 <input type="text" name="field_icon" id="field_icon"
888 value="<?php echo $value; ?>"/>
889 </div>
890
891 </li>
892 <?php
893 }
894
895
896 // css_class
897 if (has_filter("uwp_builder_css_class_{$field_type}")) {
898
899 echo apply_filters("uwp_builder_css_class_{$field_type}", '', $result_str, $cf, $field_info);
900
901 } else {
902 ?>
903 <li class="uwp-setting-name uwp-advanced-setting">
904
905 <?php
906 $tip = __('Enter custom css class for field custom style.', 'userswp');
907 if ($field_type == 'multiselect') { $tip .= __('(Enter class `uwp-comma-list` to show list as comma separated)', 'userswp'); }
908 ?>
909
910 <label for="css_class" class="uwp-tooltip-wrap">
911 <span class="uwp-help-tip dashicons dashicons-editor-help" title="<?php echo $tip; ?>"></span>
912 <?php _e('CSS class :', 'userswp'); ?>
913 </label>
914 <div class="uwp-input-wrap">
915 <input type="text" name="css_class" id="css_class"
916 value="<?php if (isset($field_info->css_class)) {
917 echo esc_attr($field_info->css_class);
918 }?>"/>
919 </div>
920
921 </li>
922 <?php
923 }
924
925 // show_in
926 if (has_filter("uwp_builder_show_in_{$field_type}")) {
927
928 echo apply_filters("uwp_builder_show_in_{$field_type}", '', $result_str, $cf, $field_info);
929
930 } else {
931 $value = '';
932 if (isset($field_info->show_in)) {
933 $value = esc_attr($field_info->show_in);
934 }elseif (isset($cf['defaults']['show_in']) && $cf['defaults']['show_in']) {
935 $value = esc_attr($cf['defaults']['show_in']);
936 }
937 ?>
938 <li class="uwp-setting-name">
939 <label for="show_in" class="uwp-tooltip-wrap">
940 <span class="uwp-help-tip dashicons dashicons-editor-help" title="<?php _e('Select in what locations you want to display this field.', 'userswp'); ?>"></span>
941 <?php _e('Show in what locations?:', 'userswp'); ?>
942 </label>
943 <div class="uwp-input-wrap">
944
945 <?php
946
947 $show_in_locations = uwp_get_show_in_locations();
948
949 if ($field_type == 'fieldset') {
950 unset($show_in_locations['[fieldset]']);
951 }
952
953 if (in_array($field_type, array('text', 'datepicker', 'textarea', 'time', 'phone', 'email', 'select', 'multiselect', 'url', 'html', 'fieldset', 'radio', 'checkbox', 'file'))) {
954 unset($show_in_locations['[own_tab]']);
955 }
956 ?>
957
958 <select multiple="multiple" name="show_in[]"
959 id="show_in"
960 style="min-width:300px;"
961 class="uwp_select2"
962 data-placeholder="<?php _e('Select locations', 'userswp'); ?>">
963 <?php
964
965 $show_in_values = explode(',', $value);
966
967 foreach ($show_in_locations as $key => $val) {
968 $selected = '';
969
970 if (is_array($show_in_values) && in_array($key, $show_in_values)) {
971 $selected = 'selected';
972 }
973
974 ?>
975 <option value="<?php echo $key; ?>" <?php echo $selected; ?>><?php echo $val; ?></option>
976 <?php
977 }
978 ?>
979 </select>
980 </div>
981 </li>
982 <?php
983 }
984
985
986
987 switch ($field_type):
988 default:
989 do_action('uwp_admin_extra_custom_fields', $field_info, $cf); ?>
990
991
992 <?php endswitch; ?>
993
994
995 <li>
996
997 <label for="save" class="uwp-tooltip-wrap">
998 </label>
999 <div class="uwp-input-wrap uwp-tab-actions" data-setting="save_button">
1000 <input type="button" class="button button-primary" name="save" id="save" value="<?php echo esc_attr(__('Save', 'userswp')); ?>"
1001 onclick="save_field('<?php echo esc_attr($result_str); ?>')"/>
1002 <?php if (!$default): ?>
1003 <a class="item-delete submitdelete deletion" id="delete-16" href="javascript:void(0);" onclick="delete_field('<?php echo esc_attr($result_str); ?>', '<?php echo $nonce; ?>')"><?php _e("Remove","userswp");?></a>
1004 <?php endif; ?>
1005 <?php UsersWP_Settings_Page::toggle_advanced_button();?>
1006 </div>
1007 </li>
1008 </ul>
1009 </div>
1010 </form>
1011 </li>
1012 <?php
1013 }
1014
1015 public function uwp_form_field_adminhtml($field_type, $result_str, $field_ins_upd = '', $field_type_key = '', $form_type = false)
1016 {
1017 global $wpdb;
1018 $table_name = uwp_get_table_prefix() . 'uwp_form_fields';
1019 $cf = $result_str;
1020 if (!is_object($cf)) {
1021
1022 $field_info = $wpdb->get_row($wpdb->prepare("select * from " . $table_name . " where id= %d", array($cf)));
1023
1024 } else {
1025 $field_info = $cf;
1026 $result_str = $cf->id;
1027 }
1028
1029 $this->uwp_admin_form_field_html($field_info, $field_type, $field_type_key, $field_ins_upd, $result_str, $form_type);
1030
1031 }
1032
1033
1034 public function uwp_admin_form_field_save($request_field = array())
1035 {
1036
1037 global $wpdb;
1038
1039
1040 $table_name = uwp_get_table_prefix() . 'uwp_form_fields';
1041
1042 $meta_table = get_usermeta_table_prefix() . 'uwp_usermeta';
1043
1044 $old_html_variable = '';
1045
1046
1047 $result_str = isset($request_field['field_id']) ? trim($request_field['field_id']) : '';
1048
1049 $user_meta_info = null;
1050
1051 // some servers fail if a POST value is VARCHAR so we change it.
1052 if (isset($request_field['data_type']) && $request_field['data_type'] == 'XVARCHAR') {
1053 $request_field['data_type'] = 'VARCHAR';
1054 }
1055
1056 $cf = trim($result_str, '_');
1057
1058
1059 $cehhtmlvar_name = isset($request_field['htmlvar_name']) ? $request_field['htmlvar_name'] : '';
1060 $form_type = $request_field['form_type'];
1061
1062 if ($request_field['field_type'] != 'fieldset') {
1063 $cehhtmlvar_name = 'uwp_' . $form_type . '_' . $cehhtmlvar_name;
1064 }
1065
1066 $check_html_variable = $wpdb->get_var(
1067 $wpdb->prepare(
1068 "select htmlvar_name from " . $table_name . " where id <> %d and htmlvar_name = %s and form_type = %s ",
1069 array($cf, $cehhtmlvar_name, $form_type)
1070 )
1071 );
1072
1073
1074 if (!$check_html_variable || $request_field['field_type'] == 'fieldset') {
1075
1076 if ($cf != '') {
1077
1078 $user_meta_info = $wpdb->get_row(
1079 $wpdb->prepare(
1080 "select * from " . $table_name . " where id = %d",
1081 array($cf)
1082 )
1083 );
1084
1085 }
1086
1087 if (!empty($user_meta_info)) {
1088 $old_html_variable = $user_meta_info->htmlvar_name;
1089
1090 }
1091
1092
1093 $site_title = $request_field['site_title'];
1094 $form_label = isset($request_field['form_label']) ? $request_field['form_label'] : '';
1095 $field_type = $request_field['field_type'];
1096 $data_type = $request_field['data_type'];
1097 $field_type_key = isset($request_field['field_type_key']) ? $request_field['field_type_key'] : $field_type;
1098 $htmlvar_name = isset($request_field['htmlvar_name']) ? $request_field['htmlvar_name'] : '';
1099 $default_value = isset($request_field['default_value']) ? $request_field['default_value'] : '';
1100 $sort_order = isset($request_field['sort_order']) ? $request_field['sort_order'] : '';
1101 $is_active = isset($request_field['is_active']) ? $request_field['is_active'] : '';
1102 $for_admin_use = isset($request_field['for_admin_use']) ? $request_field['for_admin_use'] : '';
1103 $is_required = isset($request_field['is_required']) ? $request_field['is_required'] : '';
1104 $is_dummy = isset($request_field['is_dummy']) ? $request_field['is_dummy'] : '';
1105 $is_public = isset($request_field['is_public']) ? $request_field['is_public'] : '';
1106 $is_register_field = isset($request_field['is_register_field']) ? $request_field['is_register_field'] : '';
1107 $is_search_field = isset($request_field['is_search_field']) ? $request_field['is_search_field'] : '';
1108 $is_register_only_field = isset($request_field['is_register_only_field']) ? $request_field['is_register_only_field'] : '';
1109 $required_msg = isset($request_field['required_msg']) ? $request_field['required_msg'] : '';
1110 $css_class = isset($request_field['css_class']) ? $request_field['css_class'] : '';
1111 $field_icon = isset($request_field['field_icon']) ? $request_field['field_icon'] : '';
1112 $show_in = isset($request_field['show_in']) ? $request_field['show_in'] : '';
1113 $user_roles = isset($request_field['user_roles']) ? $request_field['user_roles'] : '';
1114 $decimal_point = isset($request_field['decimal_point']) ? trim($request_field['decimal_point']) : ''; // decimal point for DECIMAL data type
1115 $decimal_point = $decimal_point > 0 ? ($decimal_point > 10 ? 10 : $decimal_point) : '';
1116 $validation_pattern = isset($request_field['validation_pattern']) ? $request_field['validation_pattern'] : '';
1117 $validation_msg = isset($request_field['validation_msg']) ? $request_field['validation_msg'] : '';
1118
1119
1120 if (is_array($show_in)) {
1121 $show_in = implode(",", $request_field['show_in']);
1122 }
1123
1124 if (is_array($user_roles)) {
1125 $user_roles = implode(",", $request_field['user_roles']);
1126 }
1127
1128 // fieldset need htmlvar_name for register tab
1129 $htmlvar_name = 'uwp_' . $form_type . '_' . $htmlvar_name;
1130
1131
1132 $option_values = '';
1133 if (isset($request_field['option_values']))
1134 $option_values = $request_field['option_values'];
1135
1136 if (isset($request_field['extra']) && !empty($request_field['extra']))
1137 $extra_fields = $request_field['extra'];
1138
1139 if (isset($request_field['is_default']) && $request_field['is_default'] != '')
1140 $is_default = $request_field['is_default'];
1141 else
1142 $is_default = '0';
1143
1144 if ($is_active == '') $is_active = 1;
1145 if ($for_admin_use == '') $for_admin_use = 0;
1146 if ($is_required == '') $is_required = 0;
1147 if ($is_dummy == '') $is_dummy = 0;
1148 if ($is_public == '') $is_public = 0;
1149 if ($is_register_field == '') $is_register_field = 0;
1150 if ($is_search_field == '') $is_search_field = 0;
1151 if ($is_register_only_field == '') $is_register_only_field = 0;
1152
1153
1154 if ($sort_order == '') {
1155
1156 $last_order = $wpdb->get_var("SELECT MAX(sort_order) as last_order FROM " . $table_name);
1157
1158 $sort_order = (int) $last_order + 1;
1159 }
1160
1161 if (!empty($user_meta_info)) {
1162
1163 $excluded = uwp_get_excluded_fields();
1164
1165 $starts_with = "uwp_account_";
1166
1167 if ((substr($htmlvar_name, 0, strlen($starts_with)) === $starts_with) && !in_array($htmlvar_name, $excluded)) {
1168 // Create custom columns
1169 switch ($field_type):
1170
1171 case 'checkbox':
1172 case 'multiselect':
1173 case 'select':
1174
1175 $op_size = '500';
1176
1177 // only make the field as big as it needs to be.
1178 if (isset($option_values) && $option_values && $field_type == 'select') {
1179 $option_values_arr = explode(',', $option_values);
1180 if (is_array($option_values_arr)) {
1181 $op_max = 0;
1182 foreach ($option_values_arr as $op_val) {
1183 if (strlen($op_val) && strlen($op_val) > $op_max) {$op_max = strlen($op_val); }
1184 }
1185 if ($op_max) {$op_size = $op_max; }
1186 }
1187 }elseif (isset($option_values) && $option_values && $field_type == 'multiselect') {
1188 if (strlen($option_values)) {
1189 $op_size = strlen($option_values);
1190 }
1191 }
1192
1193 $meta_field_add = "ALTER TABLE " . $meta_table . " CHANGE `" . $old_html_variable . "` `" . $htmlvar_name . "`VARCHAR( $op_size ) NULL";
1194
1195 if ($default_value != '') {
1196 $meta_field_add .= " DEFAULT '" . $default_value . "'";
1197 }
1198
1199 $alter_result = $wpdb->query($meta_field_add);
1200 if ($alter_result === false) {
1201 return __('Column change failed, you may have too many columns.', 'userswp');
1202 }
1203
1204 if (isset($request_field['cat_display_type']))
1205 $extra_fields = $request_field['cat_display_type'];
1206
1207 if (isset($request_field['multi_display_type']))
1208 $extra_fields = $request_field['multi_display_type'];
1209
1210
1211 break;
1212
1213 case 'textarea':
1214 case 'html':
1215 case 'url':
1216 case 'file':
1217
1218 $alter_result = $wpdb->query("ALTER TABLE " . $meta_table . " CHANGE `" . $old_html_variable . "` `" . $htmlvar_name . "` TEXT NULL");
1219 if ($alter_result === false) {
1220 return __('Column change failed, you may have too many columns.', 'userswp');
1221 }
1222 if (isset($request_field['advanced_editor']))
1223 $extra_fields = $request_field['advanced_editor'];
1224
1225 break;
1226
1227 case 'fieldset':
1228 // Nothing happened for fieldset
1229 break;
1230
1231 default:
1232 if ($data_type != 'VARCHAR' && $data_type != '') {
1233 if ($data_type == 'FLOAT' && $decimal_point > 0) {
1234 $default_value_add = "ALTER TABLE " . $meta_table . " CHANGE `" . $old_html_variable . "` `" . $htmlvar_name . "` DECIMAL(11, " . (int) $decimal_point . ") NULL";
1235 } else {
1236 $default_value_add = "ALTER TABLE " . $meta_table . " CHANGE `" . $old_html_variable . "` `" . $htmlvar_name . "` " . $data_type . " NULL";
1237 }
1238
1239 if (is_numeric($default_value) && $default_value != '') {
1240 $default_value_add .= " DEFAULT '" . $default_value . "'";
1241 }
1242 } else {
1243 $default_value_add = "ALTER TABLE " . $meta_table . " CHANGE `" . $old_html_variable . "` `" . $htmlvar_name . "` VARCHAR( 254 ) NULL";
1244 if ($default_value != '') {
1245 $default_value_add .= " DEFAULT '" . $default_value . "'";
1246 }
1247 }
1248
1249 $alter_result = $wpdb->query($default_value_add);
1250 if ($alter_result === false) {
1251 return __('Column change failed, you may have too many columns.', 'userswp');
1252 }
1253 break;
1254 endswitch;
1255 }
1256
1257 $extra_field_query = '';
1258 if (!empty($extra_fields)) {
1259 $extra_field_query = serialize($extra_fields);
1260 }
1261
1262 $wpdb->query(
1263
1264 $wpdb->prepare(
1265
1266 "update " . $table_name . " set
1267 form_type = %s,
1268 site_title = %s,
1269 form_label = %s,
1270 field_type = %s,
1271 data_type = %s,
1272 decimal_point = %s,
1273 field_type_key = %s,
1274 htmlvar_name = %s,
1275 default_value = %s,
1276 sort_order = %s,
1277 is_active = %s,
1278 for_admin_use = %s,
1279 is_default = %s,
1280 is_required = %s,
1281 is_dummy = %s,
1282 is_public = %s,
1283 is_register_field = %s,
1284 is_search_field = %s,
1285 is_register_only_field = %s,
1286 required_msg = %s,
1287 css_class = %s,
1288 field_icon = %s,
1289 field_icon = %s,
1290 show_in = %s,
1291 user_roles = %s,
1292 option_values = %s,
1293 extra_fields = %s,
1294 validation_pattern = %s,
1295 validation_msg = %s
1296 where id = %d",
1297
1298 array(
1299 $form_type,
1300 $site_title,
1301 $form_label,
1302 $field_type,
1303 $data_type,
1304 $decimal_point,
1305 $field_type_key,
1306 $htmlvar_name,
1307 $default_value,
1308 $sort_order,
1309 $is_active,
1310 $for_admin_use,
1311 $is_default,
1312 $is_required,
1313 $is_dummy,
1314 $is_public,
1315 $is_register_field,
1316 $is_search_field,
1317 $is_register_only_field,
1318 $required_msg,
1319 $css_class,
1320 $field_icon,
1321 $field_icon,
1322 $show_in,
1323 $user_roles,
1324 $option_values,
1325 $extra_field_query,
1326 $validation_pattern,
1327 $validation_msg,
1328 $cf
1329 )
1330 )
1331
1332 );
1333
1334 $lastid = trim($cf);
1335
1336
1337 do_action('uwp_after_custom_fields_updated', $lastid);
1338
1339 } else {
1340
1341 switch ($field_type):
1342
1343 case 'checkbox':
1344 $data_type = 'TINYINT';
1345
1346 $meta_field_add = $data_type . "( 1 ) NOT NULL ";
1347 if ((int) $default_value === 1) {
1348 $meta_field_add .= " DEFAULT '1'";
1349 }
1350
1351 $add_result = uwp_add_column_if_not_exist($meta_table, $htmlvar_name, $meta_field_add);
1352 if ($add_result === false) {
1353 return __('Column creation failed, you may have too many columns or the default value does not match with field data type.', 'userswp');
1354 }
1355 break;
1356 case 'multiselect':
1357 case 'select':
1358 $data_type = 'VARCHAR';
1359 $op_size = '500';
1360
1361 // only make the field as big as it needs to be.
1362 if (isset($option_values) && $option_values && $field_type == 'select') {
1363 $option_values_arr = explode(',', $option_values);
1364
1365 if (is_array($option_values_arr)) {
1366 $op_max = 0;
1367
1368 foreach ($option_values_arr as $op_val) {
1369 if (strlen($op_val) && strlen($op_val) > $op_max) {
1370 $op_max = strlen($op_val);
1371 }
1372 }
1373
1374 if ($op_max) {
1375 $op_size = $op_max;
1376 }
1377 }
1378 } elseif (isset($option_values) && $option_values && $field_type == 'multiselect') {
1379 if (strlen($option_values)) {
1380 $op_size = strlen($option_values);
1381 }
1382
1383 if (isset($request_field['multi_display_type'])) {
1384 $extra_fields = $request_field['multi_display_type'];
1385 }
1386 }
1387
1388 $meta_field_add = $data_type . "( $op_size ) NULL ";
1389 if ($default_value != '') {
1390 $meta_field_add .= " DEFAULT '" . $default_value . "'";
1391 }
1392
1393 $add_result = uwp_add_column_if_not_exist($meta_table, $htmlvar_name, $meta_field_add);
1394 if ($add_result === false) {
1395 return __('Column creation failed, you may have too many columns or the default value does not match with field data type.', 'userswp');
1396 }
1397 break;
1398 case 'textarea':
1399 case 'html':
1400 case 'url':
1401 case 'file':
1402
1403 $data_type = 'TEXT';
1404
1405 $meta_field_add = $data_type . " NULL ";
1406
1407 $add_result = uwp_add_column_if_not_exist($meta_table, $htmlvar_name, $meta_field_add);
1408 if ($add_result === false) {
1409 return __('Column creation failed, you may have too many columns or the default value does not match with field data type.', 'userswp');
1410 }
1411
1412 break;
1413
1414 case 'datepicker':
1415
1416 $data_type = 'DATE';
1417
1418 $meta_field_add = $data_type . " NULL ";
1419
1420 $add_result = uwp_add_column_if_not_exist($meta_table, $htmlvar_name, $meta_field_add);
1421 if ($add_result === false) {
1422 return __('Column creation failed, you may have too many columns or the default value must have in valid date format.', 'userswp');
1423 }
1424
1425 break;
1426
1427 case 'time':
1428
1429 $data_type = 'TIME';
1430
1431 $meta_field_add = $data_type . " NULL ";
1432
1433 $add_result = uwp_add_column_if_not_exist($meta_table, $htmlvar_name, $meta_field_add);
1434 if ($add_result === false) {
1435 return __('Column creation failed, you may have too many columns or the default value must have in valid time format.', 'userswp');
1436 }
1437
1438 break;
1439
1440 default:
1441
1442 if ($data_type != 'VARCHAR' && $data_type != '') {
1443 $meta_field_add = $data_type . " NULL ";
1444
1445 if ($data_type == 'FLOAT' && $decimal_point > 0) {
1446 $meta_field_add = "DECIMAL(11, " . (int) $decimal_point . ") NULL ";
1447 }
1448
1449 if (is_numeric($default_value) && $default_value != '') {
1450 $meta_field_add .= " DEFAULT '" . $default_value . "'";
1451 }
1452 } else {
1453 $meta_field_add = " VARCHAR( 254 ) NULL ";
1454
1455 if ($default_value != '') {
1456 $meta_field_add .= " DEFAULT '" . $default_value . "'";
1457 }
1458 }
1459
1460 $add_result = uwp_add_column_if_not_exist($meta_table, $htmlvar_name, $meta_field_add);
1461 if ($add_result === false) {
1462 return __('Column creation failed, you may have too many columns or the default value does not match with field data type.', 'userswp');
1463 }
1464 break;
1465 endswitch;
1466
1467 $extra_field_query = '';
1468 if (!empty($extra_fields)) {
1469 $extra_field_query = serialize($extra_fields);
1470 }
1471
1472 $wpdb->query(
1473
1474 $wpdb->prepare(
1475
1476 "insert into " . $table_name . " set
1477 form_type = %s,
1478 site_title = %s,
1479 form_label = %s,
1480 field_type = %s,
1481 data_type = %s,
1482 decimal_point = %s,
1483 field_type_key = %s,
1484 htmlvar_name = %s,
1485 default_value = %s,
1486 sort_order = %d,
1487 is_active = %s,
1488 for_admin_use = %s,
1489 is_default = %s,
1490 is_required = %s,
1491 is_dummy = %s,
1492 is_public = %s,
1493 is_register_field = %s,
1494 is_search_field = %s,
1495 is_register_only_field = %s,
1496 required_msg = %s,
1497 css_class = %s,
1498 field_icon = %s,
1499 show_in = %s,
1500 user_roles = %s,
1501 option_values = %s,
1502 extra_fields = %s,
1503 validation_pattern = %s,
1504 validation_msg = %s ",
1505
1506 array(
1507 $form_type,
1508 $site_title,
1509 $form_label,
1510 $field_type,
1511 $data_type,
1512 $decimal_point,
1513 $field_type_key,
1514 $htmlvar_name,
1515 $default_value,
1516 $sort_order,
1517 $is_active,
1518 $for_admin_use,
1519 $is_default,
1520 $is_required,
1521 $is_dummy,
1522 $is_public,
1523 $is_register_field,
1524 $is_search_field,
1525 $is_register_only_field,
1526 $required_msg,
1527 $css_class,
1528 $field_icon,
1529 $show_in,
1530 $user_roles,
1531 $option_values,
1532 $extra_field_query,
1533 $validation_pattern,
1534 $validation_msg
1535 )
1536
1537 )
1538
1539 );
1540
1541 $lastid = $wpdb->insert_id;
1542
1543 $lastid = trim($lastid);
1544
1545 }
1546
1547 return (int) $lastid;
1548
1549
1550 } else {
1551 return 'invalid_key';
1552 }
1553
1554 }
1555
1556 public function uwp_set_field_order($field_ids = array())
1557 {
1558
1559 global $wpdb;
1560
1561 $table_name = uwp_get_table_prefix() . 'uwp_form_fields';
1562
1563 $count = 0;
1564 if (!empty($field_ids)):
1565 $user_meta_info = false;
1566 foreach ($field_ids as $id) {
1567
1568 $cf = trim($id, '_');
1569
1570 $user_meta_info = $wpdb->query(
1571 $wpdb->prepare(
1572 "update " . $table_name . " set
1573 sort_order=%d
1574 where id= %d",
1575 array($count, $cf)
1576 )
1577 );
1578 $count++;
1579 }
1580
1581 return $user_meta_info;
1582 else:
1583 return false;
1584 endif;
1585 }
1586
1587 public function uwp_admin_form_field_delete($field_id = '') {
1588 global $wpdb;
1589
1590 $table_name = uwp_get_table_prefix() . 'uwp_form_fields';
1591 $extras_table_name = uwp_get_table_prefix() . 'uwp_form_extras';
1592
1593 if ($field_id != '') {
1594 $cf = trim($field_id, '_');
1595
1596 if ($field = $wpdb->get_row($wpdb->prepare("select * from " . $table_name . " where id= %d", array($cf)))) {
1597
1598 $wpdb->query($wpdb->prepare("delete from " . $table_name . " where id= %d ", array($cf)));
1599
1600 $form_type = $field->form_type;
1601
1602 // Also delete register form field
1603 $wpdb->query($wpdb->prepare("delete from " . $extras_table_name . " where site_htmlvar_name= %s ", array($field->htmlvar_name)));
1604
1605 do_action('uwp_after_custom_field_deleted', $cf, $field->htmlvar_name, $form_type);
1606
1607 return $field_id;
1608 } else
1609 return 0;
1610 } else
1611 return 0;
1612 }
1613
1614 public function uwp_builder_extra_fields_smr($output, $result_str, $cf, $field_info) {
1615
1616 ob_start();
1617
1618 $value = '';
1619 if (isset($field_info->option_values)) {
1620 $value = esc_attr($field_info->option_values);
1621 }elseif (isset($cf['defaults']['option_values']) && $cf['defaults']['option_values']) {
1622 $value = esc_attr($cf['defaults']['option_values']);
1623 }
1624
1625 $field_type = isset($field_info->field_type) ? $field_info->field_type : $cf['field_type'];
1626 $field_type_key = isset($field_info->field_type_key) ? $field_info->field_type_key : '';
1627 if(!$field_type_key){
1628 $field_type_key = isset($_REQUEST['field_type_key']) ? esc_html($_REQUEST['field_type_key']) : '';
1629 }
1630 ?>
1631 <li class="uwp-setting-name">
1632 <label for="option_values" class="uwp-tooltip-wrap">
1633 <?php
1634 $tip = __('Option Values should be separated by comma.', 'userswp');
1635 if($field_type != 'multiselect'){
1636 $tip .= '<br/><small>'.__('If using for a tick filter place a / and then either a 1 for true or 0 for false', 'userswp');
1637 $tip .= '<br/>'.__('eg: No Dogs Allowed/0,Dogs Allowed/1', 'userswp').'</small>';
1638 }
1639 if ($field_type == 'multiselect' || $field_type == 'select') {
1640 $tip .= '<br/><small>'.__('Like: Apple,Bannana,Pear,Peach', 'userswp');
1641 $tip .= '<br/>'.__('Or you can show Selection/Value shown: Pets Allowed/Yes,Pets not Allowed/No', 'userswp');
1642 $tip .= '<br/>'.__('- If using OPTGROUP tag to grouping options, use {optgroup}OPTGROUP-LABEL|OPTION-1,OPTION-2{/optgroup}', 'userswp');
1643 $tip .= '<br/>'.__('eg: {optgroup}Pets Allowed|No Dogs Allowed/0,Dogs Allowed/1{/optgroup},{optgroup}Sports|Cricket/Cricket,Football/Football,Hockey{/optgroup}', 'userswp').'</small>';
1644 }
1645 ?>
1646 <span class="uwp-help-tip dashicons dashicons-editor-help" title="<?php echo $tip; ?>"></span>
1647 <?php _e('Option Values :', 'userswp'); ?>
1648 </label>
1649 <div class="uwp-input-wrap">
1650
1651 <?php if(isset($field_type_key) && $field_type_key == 'country' ){
1652
1653 // @todo here we should show a multiselect to either include or exclude countries
1654 _e('A full country list will be shown','userswp');
1655 ?>
1656
1657 <?php }else{?>
1658 <input type="text" name="option_values" id="option_values" value="<?php echo $value; ?>"/>
1659 <?php }?>
1660
1661 <br/>
1662
1663 </div>
1664 </li>
1665 <?php
1666
1667 $html = ob_get_clean();
1668 return $output . $html;
1669 }
1670
1671 public function uwp_builder_extra_fields_datepicker($output, $result_str, $cf, $field_info) {
1672 ob_start();
1673 $extra = array();
1674 if (isset($field_info->extra_fields) && $field_info->extra_fields != '') {
1675 $extra = unserialize($field_info->extra_fields);
1676 }
1677 ?>
1678 <li class="uwp-setting-name uwp-advanced-setting">
1679 <label for="date_format" class="uwp-tooltip-wrap">
1680 <span class="uwp-help-tip dashicons dashicons-editor-help" title="<?php _e('Select the date format.', 'userswp'); ?>"></span>
1681 <?php _e('Date Format :', 'userswp'); ?>
1682 </label>
1683 <div class="uwp-input-wrap" style="overflow:inherit;">
1684 <?php
1685 $date_formats = array(
1686 'm/d/Y',
1687 'd/m/Y',
1688 'Y/m/d',
1689 'm-d-Y',
1690 'd-m-Y',
1691 'Y-m-d',
1692 'F j, Y',
1693 );
1694
1695 $date_formats = apply_filters('uwp_date_formats', $date_formats);
1696 ?>
1697 <select name="extra[date_format]" id="date_format" class="uwp_select2">
1698 <?php
1699 foreach ($date_formats as $format) {
1700 $selected = '';
1701 if (!empty($extra) && esc_attr($extra['date_format']) == $format) {
1702 $selected = "selected='selected'";
1703 }
1704 echo "<option $selected value='$format'>$format (" . date_i18n($format, time()) . ")</option>";
1705 }
1706 ?>
1707 </select>
1708
1709 </div>
1710 </li>
1711 <?php
1712
1713 $html = ob_get_clean();
1714 return $output . $html;
1715 }
1716
1717 public function uwp_builder_extra_fields_password($output, $result_str, $cf, $field_info) {
1718 ob_start();
1719
1720 //confirm password field
1721 $extra = array();
1722 if (isset($field_info->extra_fields) && $field_info->extra_fields != '') {
1723 $extra = unserialize($field_info->extra_fields);
1724 }
1725 $value = isset($extra['confirm_password']) ? $extra['confirm_password'] : '1';
1726 if (isset($field_info->htmlvar_name) && $field_info->htmlvar_name == 'uwp_account_password') {
1727 ?>
1728 <li class="uwp-setting-name uwp-advanced-setting">
1729 <label for="cat_sort" class="uwp-tooltip-wrap">
1730 <span class="uwp-help-tip dashicons dashicons-editor-help" title="<?php _e('Lets you display confirm password form field.', 'userswp'); ?>"></span>
1731 <?php _e('Display confirm password field?:', 'userswp'); ?>
1732 </label>
1733
1734 <div class="uwp-input-wrap">
1735 <input type="hidden" name="extra[confirm_password]" value="0" />
1736 <input type="checkbox" name="extra[confirm_password]" value="1" <?php checked( $value, 1, true );?> onclick="" />
1737 </div>
1738 </li>
1739 <?php
1740 }
1741 $html = ob_get_clean();
1742 return $output . $html;
1743 }
1744
1745 public function uwp_builder_extra_fields_email($output, $result_str, $cf, $field_info) {
1746 ob_start();
1747 //confirm email field
1748 $extra = array();
1749 if (isset($field_info->extra_fields) && $field_info->extra_fields != '') {
1750 $extra = unserialize($field_info->extra_fields);
1751 }
1752 $value = isset($extra['confirm_email']) ? $extra['confirm_email'] : '0';
1753
1754 if (isset($field_info->htmlvar_name) && $field_info->htmlvar_name == 'uwp_account_email') {
1755 ?>
1756 <li class="uwp-setting-name uwp-advanced-setting">
1757 <label for="cat_sort" class="uwp-tooltip-wrap">
1758 <span class="uwp-help-tip dashicons dashicons-editor-help" title="<?php _e('Lets you display confirm email form field.', 'userswp'); ?>"></span>
1759 <?php _e('Display confirm email field?:', 'userswp'); ?>
1760 </label>
1761
1762 <div class="uwp-input-wrap">
1763 <input type="hidden" name="extra[confirm_email]" value="0" />
1764 <input type="checkbox" name="extra[confirm_email]" value="1" <?php checked( $value, 1, true );?> onclick="" />
1765 </div>
1766 </li>
1767 <?php
1768 }
1769 $html = ob_get_clean();
1770 return $output . $html;
1771 }
1772
1773 public function uwp_builder_extra_fields_file($output, $result_str, $cf, $field_info) {
1774 ob_start();
1775
1776 $file_obj = new UsersWP_Files();
1777 $allowed_file_types = $file_obj->allowed_mime_types();
1778
1779 $extra_fields = isset($field_info->extra_fields) && $field_info->extra_fields != '' ? maybe_unserialize($field_info->extra_fields) : '';
1780 $uwp_file_types = !empty($extra_fields) && !empty($extra_fields['uwp_file_types']) ? $extra_fields['uwp_file_types'] : array('*');
1781 ?>
1782 <li class="uwp-setting-name uwp-advanced-setting">
1783 <label for="uwp_file_types" class="uwp-tooltip-wrap">
1784 <span class="uwp-help-tip dashicons dashicons-editor-help" title="<?php _e('Select file types to allowed for file uploading. (Select multiple file types by holding down "Ctrl" key.)', 'userswp'); ?>"></span>
1785 <?php _e('Allowed file types :', 'userswp'); ?>
1786 </label>
1787 <div class="uwp-input-wrap">
1788 <select name="extra[uwp_file_types][]" id="uwp_file_types" multiple="multiple" class="uwp_select2" style="height:100px;width:90%;">
1789 <option value="*" <?php selected(true, in_array('*', $uwp_file_types)); ?>><?php _e('All types', 'userswp'); ?></option>
1790 <?php foreach ($allowed_file_types as $format => $types) { ?>
1791 <optgroup label="<?php echo esc_attr(wp_sprintf(__('%s formats', 'userswp'), __($format, 'userswp'))); ?>">
1792 <?php foreach ($types as $ext => $type) { ?>
1793 <option value="<?php echo esc_attr($ext); ?>" <?php selected(true, in_array($ext, $uwp_file_types)); ?>><?php echo '.' . $ext; ?></option>
1794 <?php } ?>
1795 </optgroup>
1796 <?php } ?>
1797 </select>
1798 </div>
1799 </li>
1800 <?php
1801
1802 $html = ob_get_clean();
1803 return $output . $html;
1804 }
1805
1806 public function uwp_builder_data_type_text($output, $result_str, $cf, $field_info) {
1807 ob_start();
1808
1809 $dt_value = '';
1810 if (isset($field_info->data_type)) {
1811 $dt_value = esc_attr($field_info->data_type);
1812 }elseif (isset($cf['defaults']['data_type']) && $cf['defaults']['data_type']) {
1813 $dt_value = $cf['defaults']['data_type'];
1814 }
1815 ?>
1816 <li class="uwp-setting-name uwp-advanced-setting">
1817 <label for="data_type" class="uwp-tooltip-wrap">
1818 <span class="uwp-help-tip dashicons dashicons-editor-help" title="<?php _e('Select Custom Field type', 'userswp'); ?>"></span>
1819 <?php _e('Field Data Type:', 'userswp'); ?>
1820 </label>
1821 <div class="uwp-input-wrap">
1822
1823 <select name="data_type" id="data_type" class="uwp_select2"
1824 onchange="uwp_data_type_changed(this, '<?php echo $result_str; ?>');">
1825 <option
1826 value="XVARCHAR" <?php if ($dt_value == 'VARCHAR') {
1827 echo 'selected="selected"';
1828 } ?>><?php _e('Text Field', 'userswp'); ?></option>
1829 <option
1830 value="INT" <?php if ($dt_value == 'INT') {
1831 echo 'selected="selected"';
1832 } ?>><?php _e('Number Field', 'userswp'); ?></option>
1833 <option
1834 value="FLOAT" <?php if ($dt_value == 'FLOAT') {
1835 echo 'selected="selected"';
1836 } ?>><?php _e('Decimal Field', 'userswp'); ?></option>
1837 </select>
1838
1839 </div>
1840 </li>
1841
1842 <?php
1843 $value = '';
1844 if (isset($field_info->decimal_point)) {
1845 $value = esc_attr($field_info->decimal_point);
1846 }elseif (isset($cf['defaults']['decimal_point']) && $cf['defaults']['decimal_point']) {
1847 $value = $cf['defaults']['decimal_point'];
1848 }
1849 ?>
1850
1851 <li class="decimal-point-wrapper uwp-setting-name uwp-advanced-setting"
1852 style="<?php echo ($dt_value == 'FLOAT') ? '' : 'display:none' ?>">
1853 <label for="decimal_point" class="uwp-tooltip-wrap">
1854 <span class="uwp-help-tip dashicons dashicons-editor-help" title="<?php _e('Decimal places to display after point', 'userswp'); ?>"></span>
1855 <?php _e('Select decimal precision:', 'userswp'); ?>
1856 </label>
1857 <div class="uwp-input-wrap">
1858 <select name="decimal_point" id="decimal_point" class="uwp_select2">
1859 <option value=""><?php echo __('Select', 'userswp'); ?></option>
1860 <?php for ($i = 1; $i <= 10; $i++) {
1861 $selected = $i == $value ? 'selected="selected"' : ''; ?>
1862 <option value="<?php echo $i; ?>" <?php echo $selected; ?>><?php echo $i; ?></option>
1863 <?php } ?>
1864 </select>
1865 </div>
1866 </li>
1867 <?php
1868
1869 $output = ob_get_clean();
1870 return $output;
1871 }
1872
1873 public function uwp_advance_admin_custom_fields($field_info, $cf) {
1874 $hide_register_field = (isset($cf['defaults']['is_register_field']) && $cf['defaults']['is_register_field'] === false) ? "style='display:none;'" : '';
1875 $hide_register_field = (isset($field_info->for_admin_use) && $field_info->for_admin_use == '1') ? "style='display:none;'" : $hide_register_field;
1876
1877 $value = 0;
1878 if (isset($field_info->is_register_field)) {
1879 $value = (int) $field_info->is_register_field;
1880 } else if (isset($cf['defaults']['is_register_field']) && $cf['defaults']['is_register_field']) {
1881 $value = ($cf['defaults']['is_register_field']) ? 1 : 0;
1882 }
1883
1884 //register only field
1885 $hide_register_only_field = (isset($cf['defaults']['is_register_only_field']) && $cf['defaults']['is_register_only_field'] === false) ? "style='display:none;'" : '';
1886 $hide_register_only_field = (isset($field_info->for_admin_use) && $field_info->for_admin_use == '1') ? "style='display:none;'" : $hide_register_only_field;
1887 $register_only_value = 0;
1888 if (isset($field_info->is_register_only_field)) {
1889 $register_only_value = (int) $field_info->is_register_only_field;
1890 } else if (isset($cf['defaults']['is_register_only_field']) && $cf['defaults']['is_register_only_field']) {
1891 $register_only_value = ($cf['defaults']['is_register_only_field']) ? 1 : 0;
1892 }
1893 ?>
1894 <li <?php echo $hide_register_field; ?> class="cf-incin-reg-form uwp-setting-name uwp-advanced-setting">
1895 <label for="cat_sort" class="uwp-tooltip-wrap">
1896 <span class="uwp-help-tip dashicons dashicons-editor-help" title="<?php _e('Lets you use this field as register form field, set from register tab above.', 'userswp'); ?>"></span>
1897 <?php _e('Include this field in register form:', 'userswp'); ?>
1898 </label>
1899
1900 <?php
1901 if (isset($field_info->htmlvar_name) && $field_info->htmlvar_name == 'uwp_account_username') {
1902 ?>
1903 <div>
1904 <input type="hidden" name="is_register_field" value="1" />
1905 <p><?php _e('This is mandatory register form field.', 'userswp'); ?></p>
1906 </div>
1907 <?php
1908 } else {
1909 ?>
1910 <div class="uwp-input-wrap">
1911 <input type="hidden" name="is_register_field" value="0" />
1912 <input type="checkbox" name="is_register_field" value="1" <?php checked( $value, 1, true );?> />
1913 </div>
1914 <?php } ?>
1915 </li>
1916
1917 <li <?php echo $hide_register_only_field; ?> class="cf-inconlyin-reg-form uwp-setting-name uwp-advanced-setting">
1918 <label for="cat_sort" class="uwp-tooltip-wrap">
1919 <span class="uwp-help-tip dashicons dashicons-editor-help" title="<?php _e('Lets you use this field as register ONLY form field.', 'userswp'); ?>"></span>
1920 <?php _e('Include this field ONLY in register form:', 'userswp'); ?>
1921 </label>
1922
1923 <?php
1924 if (isset($field_info->htmlvar_name) && $field_info->htmlvar_name == 'uwp_account_username') {
1925 ?>
1926 <div>
1927 <input type="hidden" name="is_register_only_field" value="1" />
1928 <p><?php _e('This field is applicable only for register form.', 'userswp'); ?></p>
1929 </div>
1930 <?php
1931 } else {
1932 ?>
1933 <div class="uwp-input-wrap">
1934 <input type="hidden" name="is_register_only_field" value="0" />
1935 <input type="checkbox" name="is_register_only_field" value="1" <?php checked( $register_only_value, 1, true );?> />
1936 </div>
1937 <?php } ?>
1938 </li>
1939 <?php
1940 }
1941
1942 public function uwp_return_empty_string() {
1943 return "";
1944 }
1945
1946 public function uwp_register_available_fields_head($heading, $form_type)
1947 {
1948 switch ($form_type)
1949 {
1950 case 'register':
1951 $heading = __('Available register form fields.', 'userswp');
1952 break;
1953 }
1954 return $heading;
1955 }
1956
1957
1958 public function uwp_register_available_fields_note($note, $form_type)
1959 {
1960 switch ($form_type)
1961 {
1962 case 'register':
1963 $note = __("Click on any box below to make it appear in register form. To make a field available here, go to account tab and expand any field from selected fields panel and tick the checkbox saying 'Include this field in register form'.", 'userswp');
1964 break;
1965 }
1966 return $note;
1967 }
1968
1969
1970 public function uwp_register_selected_fields_head($heading, $form_type)
1971 {
1972 switch ($form_type)
1973 {
1974 case 'register':
1975 $heading = __('List of fields those will appear in register form.', 'userswp');
1976 break;
1977
1978 }
1979 return $heading;
1980 }
1981
1982
1983 public function uwp_register_selected_fields_note($note, $form_type)
1984 {
1985 switch ($form_type)
1986 {
1987 case 'register':
1988 $note = __('Click to expand and view field related settings. You may drag and drop to arrange fields order in register form.', 'userswp');
1989 break;
1990
1991 }
1992 return $note;
1993 }
1994
1995 public function uwp_register_available_fields($form_type)
1996 {
1997 global $wpdb;
1998
1999 $extras_table_name = uwp_get_table_prefix() . 'uwp_form_extras';
2000
2001 $existing_fields = $wpdb->get_results("select site_htmlvar_name from " . $extras_table_name . " where form_type ='" . $form_type . "'");
2002
2003 $existing_field_ids = array();
2004 if (!empty($existing_fields)) {
2005 foreach ($existing_fields as $existing_field) {
2006 $existing_field_ids[] = $existing_field->site_htmlvar_name;
2007 }
2008 }
2009 ?>
2010 <input type="hidden" name="form_type" id="form_type" value="<?php echo $form_type; ?>"/>
2011 <input type="hidden" name="manage_field_type" class="manage_field_type" value="register">
2012 <ul>
2013 <?php
2014
2015 $fields = $this->uwp_register_fields($form_type);
2016
2017 if (!empty($fields)) {
2018 foreach ($fields as $field) {
2019 $field = stripslashes_deep($field); // strip slashes
2020
2021
2022 $fieldset_width = '';
2023 if ($field['field_type'] == 'fieldset') {
2024 $fieldset_width = 'width:100%;';
2025 }
2026
2027 $display = '';
2028 if (in_array($field['htmlvar_name'], $existing_field_ids))
2029 $display = 'display:none;';
2030
2031 $style = 'style="' . $display . $fieldset_width . '"';
2032 ?>
2033 <li <?php echo $style; ?> >
2034
2035 <a id="uwp-<?php echo $field['htmlvar_name']; ?>"
2036 class="uwp-draggable-form-items uwp-<?php echo $field['field_type']; ?>"
2037 href="javascript:void(0);" data-type="<?php echo $field['field_type']; ?>">
2038
2039 <?php if ($icon = uwp_get_field_icon($field['field_icon'])) {
2040 echo $icon;
2041 } else {
2042 echo '<i class="fas fa-cog" aria-hidden="true"></i>';
2043 }?>
2044
2045 <?php echo $field['site_title']; ?>
2046
2047 </a>
2048 </li>
2049
2050
2051 <?php
2052 }
2053 }
2054 ?>
2055 </ul>
2056 <?php
2057 }
2058
2059 public function uwp_register_fields($form_type)
2060 {
2061
2062 global $wpdb;
2063
2064 $table_name = uwp_get_table_prefix() . 'uwp_form_fields';
2065 $fields = $wpdb->get_results($wpdb->prepare("select field_type, site_title, htmlvar_name, field_icon from " . $table_name . " where form_type = %s and is_register_field=%s order by sort_order asc", array('account', '1')), ARRAY_A);
2066
2067 return apply_filters('uwp_register_fields', $fields, $form_type);
2068 }
2069
2070 public function uwp_register_selected_fields($form_type)
2071 {
2072 global $wpdb;
2073 $extras_table_name = uwp_get_table_prefix() . 'uwp_form_extras';
2074 ?>
2075 <input type="hidden" name="manage_field_type" class="manage_field_type" value="register">
2076 <ul class="uwp_form_extras"><?php
2077
2078 $fields = $wpdb->get_results(
2079 $wpdb->prepare(
2080 "select * from " . $extras_table_name . " where form_type = %s order by sort_order asc",
2081 array($form_type)
2082 )
2083 );
2084
2085 if (!empty($fields)) {
2086 foreach ($fields as $field) {
2087 $result_str = $field;
2088 $field_ins_upd = 'display';
2089
2090 $default = false;
2091
2092 $this->uwp_register_field_adminhtml($result_str, $field_ins_upd, $default);
2093 }
2094 }?>
2095 </ul>
2096 <?php
2097 }
2098
2099 public function uwp_register_field_adminhtml($result_str, $field_ins_upd = '', $default = false, $request = array())
2100 {
2101 global $wpdb;
2102
2103 $table_name = uwp_get_table_prefix() . 'uwp_form_fields';
2104 $extras_table_name = uwp_get_table_prefix() . 'uwp_form_extras';
2105
2106 $cf = $result_str;
2107 if (!is_object($cf) && (is_int($cf) || ctype_digit($cf))) {
2108 $field_info = $wpdb->get_row($wpdb->prepare("select * from " . $extras_table_name . " where id= %d", array($cf)));
2109 } elseif (is_object($cf)) {
2110 //$field_info = $cf;
2111 $result_str = $cf->id;
2112 $field_info = $wpdb->get_row($wpdb->prepare("select * from " . $extras_table_name . " where id= %d", array((int) $cf->id)));
2113 } else {
2114 $field_info = false;
2115 }
2116
2117 if (isset($request['field_type']) && $request['field_type'] != '')
2118 $field_type = esc_attr($request['field_type']);
2119 else
2120 $field_type = $field_info->field_type;
2121
2122
2123 $field_site_name = '';
2124 if (isset($request['site_title'])) {
2125 $field_site_name = $request['site_title'];
2126 }
2127
2128 if ($field_info) {
2129 $account_field_info = $wpdb->get_row($wpdb->prepare("select * from " . $table_name . " where htmlvar_name= %s", array($field_info->site_htmlvar_name)));
2130 if (isset($account_field_info->site_title)) {
2131 if ($account_field_info->field_type == 'fieldset') {
2132 $field_site_name = __('Fieldset:', 'userswp') . ' ' . $account_field_info->site_title;
2133 } else {
2134 $field_site_name = $account_field_info->site_title;
2135 }
2136 }
2137 $field_info = stripslashes_deep($field_info); // strip slashes
2138 }
2139 $field_site_name = sanitize_title($field_site_name);
2140
2141 if (isset($request['form_type'])) {
2142 $form_type = esc_attr($request['form_type']);
2143 } else {
2144 $form_type = $field_info->form_type;
2145 }
2146
2147 if (isset($request['htmlvar_name']) && $request['htmlvar_name'] != '') {
2148 $htmlvar_name = esc_attr($request['htmlvar_name']);
2149 } else {
2150 $htmlvar_name = $field_info->site_htmlvar_name;
2151 }
2152
2153 if (isset($htmlvar_name)) {
2154 if (!is_object($field_info)) {$field_info = new stdClass(); }
2155 $field_info->field_icon = $wpdb->get_var(
2156 $wpdb->prepare("SELECT field_icon FROM " . $table_name . " WHERE htmlvar_name = %s", array($htmlvar_name))
2157 );
2158 }
2159
2160 if (isset($field_info->field_icon) && strpos($field_info->field_icon, ' fa-') !== false) {
2161 $field_icon = '<i class="' . $field_info->field_icon . '" aria-hidden="true"></i>';
2162 }elseif (isset($field_info->field_icon) && $field_info->field_icon) {
2163 $field_icon = '<b style="background-image: url("' . $field_info->field_icon . '")"></b>';
2164 }
2165 elseif (isset($field_info->field_type) && $field_info->field_type == 'fieldset') {
2166 $field_icon = '<i class="fas fa-arrows-alt-h" aria-hidden="true"></i>';
2167 } else {
2168 $field_icon = '<i class="fas fa-cog" aria-hidden="true"></i>';
2169 }
2170
2171 ?>
2172 <li class="text li-settings" id="licontainer_<?php echo $result_str; ?>">
2173 <i class="fas fa-caret-down toggle-arrow" aria-hidden="true" onclick="uwp_show_hide(this);"></i>
2174 <form>
2175 <div class="title title<?php echo $result_str; ?> uwp-fieldset">
2176 <?php
2177 $nonce = wp_create_nonce('uwp_form_extras_nonce' . $result_str);
2178 echo $field_icon;
2179 ?>
2180 <b><?php echo uwp_ucwords(' ' . $field_site_name); ?></b>
2181
2182 </div>
2183
2184 <div id="field_frm<?php echo $result_str; ?>" class="field_frm"
2185 style="display:<?php if ($field_ins_upd == 'submit') {
2186 echo 'block;';
2187 } else {
2188 echo 'none;';
2189 } ?>">
2190 <input type="hidden" name="_wpnonce" value="<?php echo $nonce; ?>"/>
2191 <input type="hidden" name="field_id" id="field_id" value="<?php echo esc_attr($result_str); ?>"/>
2192 <input type="hidden" name="form_type" id="form_type" value="<?php echo $form_type; ?>"/>
2193 <input type="hidden" name="field_type" id="field_type" value="<?php echo $field_type; ?>"/>
2194 <input type="hidden" name="is_active" id="is_active" value="1"/>
2195 <ul class="widefat post fixed" style="width:100%;">
2196
2197 <input type="hidden" name="site_htmlvar_name" value="<?php echo $htmlvar_name ?>"/>
2198
2199 <li>
2200 <div class="uwp-input-wrap">
2201 <p><?php _e('No options available', 'userswp'); ?></p>
2202 </div>
2203 </li>
2204
2205 <li>
2206 <div class="uwp-input-wrap">
2207 <?php
2208 $no_actions = array('uwp_account_username', 'uwp_account_email');
2209 $no_actions = apply_filters('uwp_register_fields_without_actions', $no_actions);
2210 if (!in_array($field_info->site_htmlvar_name, $no_actions)) { ?>
2211 <input type="button" class="button button-primary" name="save" id="save"
2212 value="<?php esc_attr_e('Save', 'userswp'); ?>"
2213 onclick="save_register_field('<?php echo $result_str; ?>')"/>
2214 <input type="button" name="delete" value="<?php esc_attr_e('Delete', 'userswp'); ?>"
2215 onclick="delete_register_field('<?php echo $result_str; ?>', '<?php echo $nonce; ?>','<?php echo $htmlvar_name ?>')"
2216 class="button"/>
2217 <?php } ?>
2218
2219 </div>
2220 </li>
2221 </ul>
2222
2223 </div>
2224 </form>
2225 </li>
2226 <?php
2227 }
2228
2229 public function uwp_register_ajax_handler()
2230 {
2231 if (isset($_REQUEST['create_field'])) {
2232 $field_id = isset($_REQUEST['field_id']) ? trim(sanitize_text_field($_REQUEST['field_id']), '_') : '';
2233 $field_action = isset($_REQUEST['field_ins_upd']) ? sanitize_text_field($_REQUEST['field_ins_upd']) : '';
2234
2235 /* ------- check nonce field ------- */
2236 if (isset($_REQUEST['update']) && $_REQUEST['update'] == 'update') {
2237 $field_ids = array();
2238 if (!empty($_REQUEST['licontainer']) && is_array($_REQUEST['licontainer'])) {
2239 foreach ($_REQUEST['licontainer'] as $lic_id) {
2240 $field_ids[] = sanitize_text_field($lic_id);
2241 }
2242 }
2243
2244 $return = uwp_form_extras_field_order($field_ids, "register");
2245
2246 if (is_array($return)) {
2247 $return = json_encode($return);
2248 }
2249
2250 echo $return;
2251 }
2252
2253 /* ---- Show field form in admin ---- */
2254 if ($field_action == 'new') {
2255 $form_type = isset($_REQUEST['form_type']) ? sanitize_text_field($_REQUEST['form_type']) : '';
2256 $fields = $this->uwp_register_fields($form_type);
2257
2258
2259 $_REQUEST['site_field_id'] = isset($_REQUEST['field_id']) ? sanitize_text_field($_REQUEST['field_id']) : '';
2260 $_REQUEST['is_default'] = '0';
2261
2262 if (!empty($fields)) {
2263 foreach ($fields as $val) {
2264 $val = stripslashes_deep($val);
2265
2266 if ($val['htmlvar_name'] == $_REQUEST['htmlvar_name']) {
2267 $_REQUEST['field_type'] = $val['field_type'];
2268 $_REQUEST['site_title'] = $val['site_title'];
2269 }
2270 }
2271 }
2272
2273
2274 $htmlvar_name = isset($_REQUEST['htmlvar_name']) ? sanitize_text_field($_REQUEST['htmlvar_name']) : '';
2275
2276 $this->uwp_register_field_adminhtml($htmlvar_name, $field_action, false, $_REQUEST);
2277 }
2278
2279 /* ---- Delete field ---- */
2280 if ($field_id != '' && $field_action == 'delete' && isset($_REQUEST['_wpnonce'])) {
2281 if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'uwp_form_extras_nonce' . $field_id))
2282 return;
2283
2284 echo $this->uwp_register_field_delete($field_id);
2285 }
2286
2287 /* ---- Save field ---- */
2288 if ($field_id != '' && $field_action == 'submit' && isset($_REQUEST['_wpnonce'])) {
2289 if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'uwp_form_extras_nonce' . $field_id))
2290 return;
2291
2292 foreach ($_REQUEST as $pkey => $pval) {
2293 $tags = is_array($_REQUEST[$pkey]) ? 'skip_field' : '';
2294
2295 if ($tags != 'skip_field') {
2296 $_REQUEST[$pkey] = strip_tags(sanitize_text_field($_REQUEST[$pkey]), $tags);
2297 }
2298 }
2299
2300
2301 $return = $this->uwp_register_field_save($_REQUEST);
2302
2303 if (is_int($return)) {
2304 $lastid = $return;
2305
2306 $this->uwp_register_field_adminhtml($lastid, 'submit');
2307 } else {
2308 echo $return;
2309 }
2310 }
2311 }
2312 die();
2313 }
2314
2315 public function uwp_register_field_save($request_field = array())
2316 {
2317 global $wpdb;
2318 $extras_table_name = uwp_get_table_prefix() . 'uwp_form_extras';
2319
2320 $result_str = isset($request_field['field_id']) ? trim($request_field['field_id']) : '';
2321
2322 $cf = trim($result_str, '_');
2323
2324 /*-------- check duplicate validation --------*/
2325
2326 $site_htmlvar_name = isset($request_field['htmlvar_name']) ? $request_field['htmlvar_name'] : '';
2327 $form_type = $request_field['form_type'];
2328 $field_type = $request_field['field_type'];
2329
2330 $check_html_variable = $wpdb->get_var($wpdb->prepare("select site_htmlvar_name from " . $extras_table_name . " where id <> %d and site_htmlvar_name = %s and form_type = %s ",
2331 array($cf, $site_htmlvar_name, $form_type)));
2332
2333
2334 if (!$check_html_variable) {
2335
2336 if ($cf != '') {
2337
2338 $user_meta_info = $wpdb->get_row(
2339 $wpdb->prepare(
2340 "select * from " . $extras_table_name . " where id = %d",
2341 array($cf)
2342 )
2343 );
2344
2345 }
2346
2347 if ($form_type == '') $form_type = 'register';
2348
2349
2350 $site_htmlvar_name = $request_field['site_htmlvar_name'];
2351 $field_id = (isset($request_field['field_id']) && $request_field['field_id']) ? str_replace('new', '', $request_field['field_id']) : '';
2352
2353
2354 if (!empty($user_meta_info)) {
2355
2356 $wpdb->query(
2357 $wpdb->prepare(
2358 "update " . $extras_table_name . " set
2359 form_type = %s,
2360 field_type = %s,
2361 site_htmlvar_name = %s,
2362 sort_order = %s
2363 where id = %d",
2364 array(
2365 $form_type,
2366 $field_type,
2367 $site_htmlvar_name,
2368 $field_id,
2369 $cf
2370 )
2371
2372 )
2373
2374 );
2375
2376 $lastid = trim($cf);
2377
2378
2379 } else {
2380
2381
2382 $wpdb->query(
2383 $wpdb->prepare(
2384
2385 "insert into " . $extras_table_name . " set
2386 form_type = %s,
2387 field_type = %s,
2388 site_htmlvar_name = %s,
2389 sort_order = %s",
2390 array($form_type,
2391 $field_type,
2392 $site_htmlvar_name,
2393 $field_id
2394 )
2395 )
2396 );
2397 $lastid = $wpdb->insert_id;
2398 $lastid = trim($lastid);
2399 }
2400
2401 return (int) $lastid;
2402
2403
2404 } else {
2405 return 'invalid_key';
2406 }
2407 }
2408
2409 public function uwp_register_field_delete($field_id = '')
2410 {
2411
2412 global $wpdb;
2413 $extras_table_name = uwp_get_table_prefix() . 'uwp_form_extras';
2414
2415 if ($field_id != '') {
2416 $cf = trim($field_id, '_');
2417
2418 $wpdb->query($wpdb->prepare("delete from " . $extras_table_name . " where id= %d ", array($cf)));
2419
2420 return $field_id;
2421
2422 } else
2423 return 0;
2424
2425
2426 }
2427
2428 public function uwp_form_builder_dummy_fields() {
2429 global $wpdb;
2430
2431 $table_name = uwp_get_table_prefix() . 'uwp_form_fields';
2432 $extras_table_name = uwp_get_table_prefix() . 'uwp_form_extras';
2433 // This function is intended for testing purpose
2434 if (isset($_GET['uwp_dummy'])
2435 && is_admin()
2436 && is_user_logged_in()
2437 && current_user_can('manage_options')) {
2438
2439 if ($_GET['uwp_dummy'] == 'create') {
2440 // Account
2441 $fields = $this->uwp_dummy_custom_fields();
2442
2443 foreach ($fields as $field_index => $field) {
2444 $this->uwp_admin_form_field_save($field);
2445 }
2446
2447 // Register
2448 foreach ($fields as $field) {
2449 $last_order = $wpdb->get_var("SELECT MAX(sort_order) as last_order FROM " . $extras_table_name);
2450 $sort_order = (int) $last_order + 1;
2451 $wpdb->query(
2452 $wpdb->prepare(
2453
2454 "insert into " . $extras_table_name . " set
2455 form_type = %s,
2456 field_type = %s,
2457 is_dummy = %s,
2458 site_htmlvar_name = %s,
2459 sort_order = %s",
2460 array(
2461 'register',
2462 $field['field_type'],
2463 $field['is_dummy'],
2464 'uwp_account_' . $field['htmlvar_name'],
2465 $sort_order
2466 )
2467 )
2468 );
2469 }
2470
2471 wp_redirect(admin_url('admin.php?page=uwp_form_builder'));
2472 exit;
2473 }
2474
2475
2476 if ($_GET['uwp_dummy'] == 'delete') {
2477
2478 $wpdb->query($wpdb->prepare("delete from " . $table_name . " where is_dummy= %s ", array('1')));
2479 $wpdb->query($wpdb->prepare("delete from " . $extras_table_name . " where is_dummy= %s ", array('1')));
2480 wp_redirect(admin_url('admin.php?page=uwp_form_builder'));
2481 exit;
2482 }
2483
2484 }
2485
2486
2487 }
2488
2489 public function uwp_dummy_custom_fields() {
2490
2491 $fields = array();
2492
2493 //Fieldset
2494 $fields[] = array(
2495 'form_type' => 'account',
2496 'field_type' => 'fieldset',
2497 'site_title' => __('Dummy Fieldset', 'userswp'),
2498 'htmlvar_name' => 'dummy_fieldset',
2499 'default_value' => '',
2500 'option_values' => '',
2501 'is_dummy' => '1',
2502 'is_public' => '1',
2503 'is_active' => '1',
2504 'is_register_field' => '1',
2505 'is_search_field' => '1',
2506 );
2507
2508 //Text
2509 $fields[] = array(
2510 'form_type' => 'account',
2511 'field_type' => 'text',
2512 'site_title' => __('Dummy Text', 'userswp'),
2513 'htmlvar_name' => 'dummy_text',
2514 'default_value' => '',
2515 'option_values' => '',
2516 'is_dummy' => '1',
2517 'is_public' => '1',
2518 'is_active' => '1',
2519 'is_register_field' => '1',
2520 'is_search_field' => '1',
2521 );
2522
2523 //Textarea
2524 $fields[] = array(
2525 'form_type' => 'account',
2526 'field_type' => 'textarea',
2527 'site_title' => __('Dummy Textarea', 'userswp'),
2528 'htmlvar_name' => 'dummy_textarea',
2529 'default_value' => '',
2530 'option_values' => '',
2531 'is_dummy' => '1',
2532 'is_public' => '1',
2533 'is_active' => '1',
2534 'is_register_field' => '1',
2535 'is_search_field' => '1',
2536 );
2537
2538 //Checkbox
2539 $fields[] = array(
2540 'form_type' => 'account',
2541 'field_type' => 'checkbox',
2542 'site_title' => __('Dummy Checkbox', 'userswp'),
2543 'htmlvar_name' => 'dummy_checkbox',
2544 'default_value' => '',
2545 'option_values' => '',
2546 'is_dummy' => '1',
2547 'is_public' => '1',
2548 'is_active' => '1',
2549 'is_register_field' => '1',
2550 'is_search_field' => '1',
2551 );
2552
2553 //Radio
2554 $fields[] = array(
2555 'form_type' => 'account',
2556 'field_type' => 'radio',
2557 'site_title' => __('Dummy Radio', 'userswp'),
2558 'htmlvar_name' => 'dummy_radio',
2559 'default_value' => '',
2560 'option_values' => __('Value1,Value2,Value3', 'userswp'),
2561 'is_dummy' => '1',
2562 'is_public' => '1',
2563 'is_active' => '1',
2564 'is_register_field' => '1',
2565 'is_search_field' => '1',
2566 );
2567
2568 //Select
2569 $fields[] = array(
2570 'form_type' => 'account',
2571 'field_type' => 'select',
2572 'site_title' => __('Dummy Select', 'userswp'),
2573 'htmlvar_name' => 'dummy_select',
2574 'default_value' => '',
2575 'option_values' => __('Select Option/,Value1,Value2,Value3', 'userswp'),
2576 'is_dummy' => '1',
2577 'is_public' => '1',
2578 'is_active' => '1',
2579 'is_register_field' => '1',
2580 'is_search_field' => '1',
2581 );
2582
2583 //URL
2584 $fields[] = array(
2585 'form_type' => 'account',
2586 'field_type' => 'url',
2587 'site_title' => __('Dummy URL', 'userswp'),
2588 'htmlvar_name' => 'dummy_url',
2589 'default_value' => '',
2590 'option_values' => '',
2591 'is_dummy' => '1',
2592 'is_public' => '1',
2593 'is_active' => '1',
2594 'is_register_field' => '1',
2595 'is_search_field' => '1',
2596 );
2597
2598 //Date
2599 $fields[] = array(
2600 'form_type' => 'account',
2601 'field_type' => 'datepicker',
2602 'site_title' => __('Dummy Date', 'userswp'),
2603 'htmlvar_name' => 'dummy_datepicker',
2604 'default_value' => '',
2605 'option_values' => '',
2606 'is_dummy' => '1',
2607 'is_public' => '1',
2608 'is_active' => '1',
2609 'is_register_field' => '1',
2610 'is_search_field' => '1',
2611 'extra' => array(
2612 'date_format' => 'F j, Y'
2613 )
2614 );
2615
2616 //Time
2617 $fields[] = array(
2618 'form_type' => 'account',
2619 'field_type' => 'time',
2620 'site_title' => __('Dummy Time', 'userswp'),
2621 'htmlvar_name' => 'dummy_time',
2622 'default_value' => '',
2623 'option_values' => '',
2624 'is_dummy' => '1',
2625 'is_public' => '1',
2626 'is_active' => '1',
2627 'is_register_field' => '1',
2628 'is_search_field' => '1',
2629 );
2630
2631 //Phone
2632 $fields[] = array(
2633 'form_type' => 'account',
2634 'field_type' => 'phone',
2635 'site_title' => __('Dummy Phone', 'userswp'),
2636 'htmlvar_name' => 'dummy_phone',
2637 'default_value' => '',
2638 'option_values' => '',
2639 'is_dummy' => '1',
2640 'is_public' => '1',
2641 'is_active' => '1',
2642 'is_register_field' => '1',
2643 'is_search_field' => '1',
2644 );
2645
2646 //Email
2647 $fields[] = array(
2648 'form_type' => 'account',
2649 'field_type' => 'email',
2650 'site_title' => __('Dummy Email', 'userswp'),
2651 'htmlvar_name' => 'dummy_email',
2652 'default_value' => '',
2653 'option_values' => '',
2654 'is_dummy' => '1',
2655 'is_public' => '1',
2656 'is_active' => '1',
2657 'is_register_field' => '1',
2658 'is_search_field' => '1',
2659 );
2660
2661 //Multiselect
2662 $fields[] = array(
2663 'form_type' => 'account',
2664 'field_type' => 'multiselect',
2665 'site_title' => __('Dummy Multiselect', 'userswp'),
2666 'htmlvar_name' => 'dummy_multiselect',
2667 'default_value' => '',
2668 'option_values' => __('Select Option/,Value1,Value2,Value3', 'userswp'),
2669 'is_dummy' => '1',
2670 'is_public' => '1',
2671 'is_active' => '1',
2672 'is_register_field' => '1',
2673 'is_search_field' => '1',
2674 );
2675
2676 //File Upload
2677 $fields[] = array(
2678 'form_type' => 'account',
2679 'field_type' => 'file',
2680 'site_title' => __('Dummy File', 'userswp'),
2681 'htmlvar_name' => 'dummy_file',
2682 'default_value' => '',
2683 'option_values' => '',
2684 'is_dummy' => '1',
2685 'is_public' => '1',
2686 'is_active' => '1',
2687 'is_register_field' => '1',
2688 'is_search_field' => '1',
2689 );
2690
2691 $fields = apply_filters('uwp_dummy_custom_fields', $fields);
2692
2693 return $fields;
2694 }
2695
2696 }