PluginProbe
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP / 1.0.14
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP v1.0.14
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.0.14, at admin/settings/class-formbuilder.php

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