*/ class UsersWP_Form_Builder { public static function output($tab = '') { global $current_tab; do_action( 'uwp_form_builder_start' ); // Get current tab/section if($tab){ $current_tab = sanitize_title( $tab); }else{ $current_tab = empty( $_GET['tab'] ) ? 'account' : sanitize_title( $_GET['tab'] ); } // Get tabs for the form builder page $tabs = apply_filters( 'uwp_form_builder_tabs_array', array( 'account' => __( 'Account', 'userswp' ), 'register' => __( 'Register', 'userswp' ), ) ); ?>

form_fields_predefined($form_type); }elseif ($type == 'custom') { $fields = $this->form_fields_custom($form_type); } else { $fields = $this->form_fields($form_type); ?> 'select', 'class' => 'uwp-country', 'icon' => 'fas fa-map-marker-alt', 'name' => __('Country', 'userswp'), 'description' => __('Adds a input for Country field.', 'userswp'), 'defaults' => array( 'admin_title' => 'Country', 'site_title' => 'Country', 'htmlvar_name' => 'uwp_country', 'is_active' => 1, 'default_value' => '', 'is_required' => 0, 'option_values' => '', 'required_msg' => '', 'field_icon' => 'fas fa-map-marker-alt', 'css_class' => '' ) ); // Gender $custom_fields['gender'] = array( // The key value should be unique and not contain any spaces. 'field_type' => 'select', 'class' => 'uwp-gender', 'icon' => 'fas fa-user', 'name' => __('Gender', 'userswp'), 'description' => __('Adds a input for Gender field.', 'userswp'), 'defaults' => array( 'admin_title' => 'Gender', 'site_title' => 'Gender', 'htmlvar_name' => 'gender', 'is_active' => 1, 'default_value' => '', 'is_required' => 0, 'option_values' => __('Select Gender/,Male,Female,Other', 'userswp'), 'required_msg' => '', 'field_icon' => 'fas fa-user', 'css_class' => '' ) ); $custom_fields['dob'] = array( // The key value should be unique and not contain any spaces. 'field_type' => 'datepicker', 'class' => 'uwp-dob', 'icon' => 'fas fa-birthday-cake', 'name' => __( 'Date of birth', 'userswp' ), 'description' => __( 'Adds a date input for users to enter their date of birth.', 'userswp' ), 'defaults' => array( 'data_type' => 'DATE', 'admin_title' => __( 'Date of birth', 'userswp' ), 'site_title' => __( 'Date of birth', 'userswp' ), 'form_label' => __( 'Enter your date of birth.', 'userswp' ), 'htmlvar_name' => 'dob', 'is_active' => true, 'for_admin_use' => false, 'default_value' => '', 'is_required' => false, 'validation_pattern' => '', 'validation_msg' => '', 'required_msg' => '', 'field_icon' => 'fas fa-birthday-cake', 'css_class' => '', 'cat_sort' => true, 'cat_filter' => true, 'extra_fields' => array( 'date_range' => 'c-100:c+0' ) ) ); // Mobile $custom_fields['mobile'] = array( // The key value should be unique and not contain any spaces. 'field_type' => 'phone', 'class' => 'uwp-mobile', 'icon' => 'fas fa-mobile-alt', 'name' => __('Mobile', 'userswp'), 'description' => __('Adds a input for Mobile field.', 'userswp'), 'defaults' => array( 'admin_title' => 'Mobile', 'site_title' => 'Mobile', 'htmlvar_name' => 'mobile', 'is_active' => 1, 'default_value' => '', 'is_required' => 0, 'required_msg' => '', 'field_icon' => 'fas fa-mobile-alt', 'css_class' => '' ) ); // Website $custom_fields['website'] = array( // The key value should be unique and not contain any spaces. 'field_type' => 'url', 'class' => 'uwp-website', 'icon' => 'fas fa-link', 'name' => __('Website', 'userswp'), 'description' => __('Let users enter their website url.', 'userswp'), 'defaults' => array( 'admin_title' => 'Website', 'site_title' => 'Website', 'form_label' => __( 'Website', 'userswp' ), 'htmlvar_name' => 'user_url', 'is_active' => 1, 'default_value' => '', 'is_required' => 0, 'required_msg' => '', 'field_icon' => 'fas fa-link', 'css_class' => 'btn-website' ) ); // Facebook $custom_fields['facebook'] = array( // The key value should be unique and not contain any spaces. 'field_type' => 'url', 'class' => 'uwp-facebook', 'icon' => 'fab fa-facebook-square', 'name' => __('Facebook', 'userswp'), 'description' => __('Let users enter their facebook url.', 'userswp'), 'defaults' => array( 'admin_title' => 'Facebook', 'site_title' => 'Facebook', 'form_label' => __( 'Facebook url', 'userswp' ), 'htmlvar_name' => 'facebook', 'is_active' => 1, 'default_value' => '', 'is_required' => 0, 'required_msg' => '', 'field_icon' => 'fab fa-facebook-f', 'css_class' => 'btn-facebook' ) ); // Twitter $custom_fields['twitter'] = array( // The key value should be unique and not contain any spaces. 'field_type' => 'url', 'class' => 'uwp-twitter', 'icon' => 'fab fa-twitter-square', 'name' => __('Twitter', 'userswp'), 'description' => __('Let users enter their twitter url.', 'userswp'), 'defaults' => array( 'admin_title' => 'Twitter', 'site_title' => 'Twitter', 'form_label' => __( 'Twitter url', 'userswp' ), 'htmlvar_name' => 'twitter', 'is_active' => 1, 'default_value' => '', 'is_required' => 0, 'required_msg' => '', 'field_icon' => 'fab fa-twitter', 'css_class' => 'btn-twitter' ) ); // Instagram $custom_fields['instagram'] = array( // The key value should be unique and not contain any spaces. 'field_type' => 'url', 'class' => 'uwp-instagram', 'icon' => 'fab fa-instagram', 'name' => __('Instagram', 'userswp'), 'description' => __('Let users enter their instagram url.', 'userswp'), 'defaults' => array( 'admin_title' => 'Instagram', 'site_title' => 'Instagram', 'form_label' => __( 'Instagram url', 'userswp' ), 'htmlvar_name' => 'instagram', 'is_active' => 1, 'default_value' => '', 'is_required' => 0, 'required_msg' => '', 'field_icon' => 'fab fa-instagram', 'css_class' => 'btn-instagram' ) ); // Linkedin $custom_fields['linkedin'] = array( // The key value should be unique and not contain any spaces. 'field_type' => 'url', 'class' => 'uwp-linkedin', 'icon' => 'fab fa-linkedin', 'name' => __('Linkedin', 'userswp'), 'description' => __('Let users enter their linkedin url.', 'userswp'), 'defaults' => array( 'admin_title' => 'Linkedin', 'site_title' => 'Linkedin', 'form_label' => __( 'Linkedin url', 'userswp' ), 'htmlvar_name' => 'linkedin', 'is_active' => 1, 'default_value' => '', 'is_required' => 0, 'required_msg' => '', 'field_icon' => 'fab fa-linkedin-in', 'css_class' => 'btn-linkedin' ) ); // Flickr $custom_fields['flickr'] = array( // The key value should be unique and not contain any spaces. 'field_type' => 'url', 'class' => 'uwp-flickr', 'icon' => 'fab fa-flickr', 'name' => __('Flickr', 'userswp'), 'description' => __('Let users enter their Flickr url.', 'userswp'), 'defaults' => array( 'admin_title' => 'Flickr', 'site_title' => 'Flickr', 'form_label' => __( 'Flickr url', 'userswp' ), 'htmlvar_name' => 'flickr', 'is_active' => 1, 'default_value' => '', 'is_required' => 0, 'required_msg' => '', 'field_icon' => 'fab fa-flickr', 'css_class' => 'btn-flickr' ) ); // GitHub $custom_fields['github'] = array( // The key value should be unique and not contain any spaces. 'field_type' => 'url', 'class' => 'uwp-github', 'icon' => 'fab fa-github-square', 'name' => __('GitHub', 'userswp'), 'description' => __('Let users enter their GitHub url.', 'userswp'), 'defaults' => array( 'admin_title' => 'GitHub', 'site_title' => 'GitHub', 'form_label' => __( 'GitHub url', 'userswp' ), 'htmlvar_name' => 'github', 'is_active' => 1, 'default_value' => '', 'is_required' => 0, 'required_msg' => '', 'field_icon' => 'fab fa-github-alt', 'css_class' => 'btn-github' ) ); // YouTube $custom_fields['youtube'] = array( // The key value should be unique and not contain any spaces. 'field_type' => 'url', 'class' => 'uwp-youtube', 'icon' => 'fab fa-youtube-square', 'name' => __('YouTube', 'userswp'), 'description' => __('Let users enter their YouTube url.', 'userswp'), 'defaults' => array( 'admin_title' => 'YouTube', 'site_title' => 'YouTube', 'form_label' => __( 'YouTube url', 'userswp' ), 'htmlvar_name' => 'youtube', 'is_active' => 1, 'default_value' => '', 'is_required' => 0, 'required_msg' => '', 'field_icon' => 'fab fa-youtube', 'css_class' => 'btn-youtube' ) ); // WordPress $custom_fields['wordpress'] = array( // The key value should be unique and not contain any spaces. 'field_type' => 'url', 'class' => 'uwp-wordpress', 'icon' => 'fab fa-wordpress-simple', 'name' => __('WordPress', 'userswp'), 'description' => __('Let users enter their WordPress profile url.', 'userswp'), 'defaults' => array( 'admin_title' => 'WordPress', 'site_title' => 'WordPress', 'form_label' => __( 'WordPress url', 'userswp' ), 'htmlvar_name' => 'wordpress', 'is_active' => 1, 'default_value' => '', 'is_required' => 0, 'required_msg' => '', 'field_icon' => 'fab fa-wordpress-simple', 'css_class' => 'btn-wordpress' ) ); return apply_filters('uwp_form_fields_predefined', $custom_fields, $type); } public function form_fields_custom($type = '') { $custom_fields = array(); return apply_filters('uwp_form_fields_custom', $custom_fields, $type); } public function form_fields($type = '') { $custom_fields = array( 'text' => array( 'field_type' => 'text', 'class' => 'uwp-text', 'icon' => 'fas fa-minus', 'name' => __('Text', 'userswp'), 'description' => __('Add any sort of text field, text or numbers', 'userswp') ), 'datepicker' => array( 'field_type' => 'datepicker', 'class' => 'uwp-datepicker', 'icon' => 'fas fa-calendar-alt', 'name' => __('Date', 'userswp'), 'description' => __('Adds a date picker.', 'userswp') ), 'textarea' => array( 'field_type' => 'textarea', 'class' => 'uwp-textarea', 'icon' => 'fas fa-bars', 'name' => __('Textarea', 'userswp'), 'description' => __('Adds a textarea', 'userswp') ), 'time' => array( 'field_type' => 'time', 'class' => 'uwp-time', 'icon' => 'far fa-clock', 'name' => __('Time', 'userswp'), 'description' => __('Adds a time picker', 'userswp') ), 'checkbox' => array( 'field_type' => 'checkbox', 'class' => 'uwp-checkbox', 'icon' => 'far fa-check-square', 'name' => __('Checkbox', 'userswp'), 'description' => __('Adds a checkbox', 'userswp') ), 'phone' => array( 'field_type' => 'phone', 'class' => 'uwp-phone', 'icon' => 'fas fa-phone', 'name' => __('Phone', 'userswp'), 'description' => __('Adds a phone input', 'userswp') ), 'radio' => array( 'field_type' => 'radio', 'class' => 'uwp-radio', 'icon' => 'far fa-dot-circle', 'name' => __('Radio', 'userswp'), 'description' => __('Adds a radio input', 'userswp') ), 'email' => array( 'field_type' => 'email', 'class' => 'uwp-email', 'icon' => 'far fa-envelope', 'name' => __('Email', 'userswp'), 'description' => __('Adds a email input', 'userswp') ), 'select' => array( 'field_type' => 'select', 'class' => 'uwp-select', 'icon' => 'far fa-caret-square-down', 'name' => __('Select', 'userswp'), 'description' => __('Adds a select input', 'userswp') ), 'multiselect' => array( 'field_type' => 'multiselect', 'class' => 'uwp-multiselect', 'icon' => 'far fa-caret-square-down', 'name' => __('Multi Select', 'userswp'), 'description' => __('Adds a multiselect input', 'userswp') ), 'url' => array( 'field_type' => 'url', 'class' => 'uwp-url', 'icon' => 'fas fa-link', 'name' => __('URL', 'userswp'), 'description' => __('Adds a url input', 'userswp') ), 'file' => array( 'field_type' => 'file', 'class' => 'uwp-file', 'icon' => 'fas fa-file', 'name' => __('File Upload', 'userswp'), 'description' => __('Adds a file input', 'userswp') ) ); return apply_filters('uwp_form_fields', $custom_fields, $type); } public function manage_available_fields_predefined($form_type) { switch ($form_type) { case 'account': $this->custom_available_fields('predefined', $form_type); break; } } public function manage_available_fields_custom($form_type) { switch ($form_type) { case 'account': $this->custom_available_fields('custom', $form_type); break; } } public function manage_available_fields($form_type) { switch ($form_type) { case 'account': $this->custom_available_fields('', $form_type); break; case 'register': $this->register_available_fields($form_type); break; } } public function manage_selected_fields($form_type) { switch ($form_type) { case 'account': $this->custom_selected_fields($form_type); break; case 'register': $this->register_selected_fields($form_type); break; } } public function custom_selected_fields($form_type) { global $wpdb; $table_name = uwp_get_table_prefix() . 'uwp_form_fields'; ?> form_type)) { $form_type = sanitize_text_field($_REQUEST['tab']); } else { $form_type = $field_info->form_type; } } $cf_arr1 = $this->form_fields($form_type); $cf_arr2 = $this->form_fields_predefined($form_type); $cf_arr3 = $this->form_fields_custom($form_type); $cf_arr = $cf_arr1 + $cf_arr2 + $cf_arr3; // this way defaults can't be overwritten $cf = (isset($cf_arr[$field_type_key])) ? $cf_arr[$field_type_key] : ''; $field_info = stripslashes_deep($field_info); // strip slashes from labels $field_site_title = ''; if (isset($field_info->site_title)) $field_site_title = $field_info->site_title; $default = isset($field_info->is_default) ? $field_info->is_default : ''; $field_display = $field_type == 'address' && $field_info->htmlvar_name == 'post' ? 'style="display:none"' : ''; if (isset($cf['icon']) && strpos($cf['icon'], ' fa-') !== false) { $field_icon = ''; }elseif (isset($cf['icon']) && $cf['icon']) { $field_icon = ''; } else { $field_icon = ''; } if (isset($cf['name']) && $cf['name']) { $field_type_name = $cf['name']; } else { $field_type_name = $field_type; } ?>
    • data_type)) { $value = esc_attr($field_info->data_type); }elseif (isset($cf['defaults']['data_type']) && $cf['defaults']['data_type']) { $value = $cf['defaults']['data_type']; } ?> site_title)) { $value = esc_attr($field_info->site_title); }elseif (isset($cf['defaults']['site_title']) && $cf['defaults']['site_title']) { $value = $cf['defaults']['site_title']; } ?>
    • form_label)) { $value = esc_attr($field_info->form_label); }elseif (isset($cf['defaults']['form_label']) && $cf['defaults']['form_label']) { $value = $cf['defaults']['form_label']; } ?>
    • htmlvar_name)) { $value = esc_attr($field_info->htmlvar_name); }elseif(isset($cf['defaults']['htmlvar_name']) && $cf['defaults']['htmlvar_name']){ $value = $cf['defaults']['htmlvar_name']; } ?>
    • />
    • is_active)) { $value = esc_attr($field_info->is_active); }elseif (isset($cf['defaults']['is_active']) && $cf['defaults']['is_active']) { $value = $cf['defaults']['is_active']; } ?>
    • class="uwp-setting-name">
      />
    • is_default) && $field_info->is_default == '1') { // do nothing for default fields } else { if (has_filter("uwp_builder_for_admin_use_{$field_type}")) { echo apply_filters("uwp_builder_for_admin_use_{$field_type}", '', $result_str, $cf, $field_info); } else { $value = ''; if (isset($field_info->for_admin_use)) { $value = esc_attr($field_info->for_admin_use); }elseif (isset($cf['defaults']['for_admin_use']) && $cf['defaults']['for_admin_use']) { $value = $cf['defaults']['for_admin_use']; } ?>
    • class="uwp-setting-name uwp-advanced-setting">
      />
    • is_default) && $field_info->is_default == '1') { // do nothing for default fields } else { if ( has_filter( "uwp_builder_is_public_{$field_type}" ) ) { echo apply_filters( "uwp_builder_is_public_{$field_type}", '', $result_str, $cf, $field_info ); } else { $value = ''; if ( isset( $field_info->is_public ) ) { $value = esc_attr( $field_info->is_public ); } elseif ( isset( $cf['defaults']['is_public'] ) && $cf['defaults']['is_public'] ) { $value = $cf['defaults']['is_public']; } ?>
    • class="uwp-setting-name uwp-advanced-setting">
    • default_value)) { $value = esc_attr($field_info->default_value); }elseif (isset($cf['defaults']['default_value']) && $cf['defaults']['default_value']) { $value = $cf['defaults']['default_value']; } ?>


    • is_required)) { $value = esc_attr($field_info->is_required); }elseif (isset($cf['defaults']['is_required']) && $cf['defaults']['is_required']) { $value = $cf['defaults']['is_required']; } ?>
    • />
    • required_msg)) { $value = esc_attr($field_info->required_msg); }elseif (isset($cf['defaults']['required_msg']) && $cf['defaults']['required_msg']) { $value = $cf['defaults']['required_msg']; } ?>
    • is_required) && $field_info->is_required == '0') || !isset($field_info->is_required)) {echo "style='display:none;'"; }?>>
    • field_icon)) { $value = esc_attr($field_info->field_icon); }elseif (isset($cf['defaults']['field_icon']) && $cf['defaults']['field_icon']) { $value = $cf['defaults']['field_icon']; } ?>
    • css_class)) { $value = esc_attr($field_info->css_class); }elseif (isset($cf['defaults']['css_class']) && $cf['defaults']['css_class']) { $value = $cf['defaults']['css_class']; } $tip = __('Enter custom css class for field custom style.', 'userswp'); if ($field_type == 'multiselect') { $tip .= __('(Enter class `uwp-comma-list` to show list as comma separated)', 'userswp'); } ?>
    • show_in)) { $value = esc_attr($field_info->show_in); }elseif (isset($cf['defaults']['show_in']) && $cf['defaults']['show_in']) { $value = esc_attr($cf['defaults']['show_in']); } ?>
  • get_row($wpdb->prepare("select * from " . $table_name . " where id= %d", array($cf))); } else { $field_info = $cf; $result_str = $cf->id; } $this->admin_form_field_html($field_info, $field_type, $field_type_key, $field_ins_upd, $result_str, $form_type); } public function admin_form_field_save($request_field = array()) { global $wpdb; $table_name = uwp_get_table_prefix() . 'uwp_form_fields'; $meta_table = get_usermeta_table_prefix() . 'uwp_usermeta'; $old_html_variable = ''; $result_str = isset($request_field['field_id']) ? trim($request_field['field_id']) : ''; $user_meta_info = null; // some servers fail if a POST value is VARCHAR so we change it. if (isset($request_field['data_type']) && $request_field['data_type'] == 'XVARCHAR') { $request_field['data_type'] = 'VARCHAR'; } $cf = trim($result_str, '_'); $cehhtmlvar_name = isset($request_field['htmlvar_name']) ? $request_field['htmlvar_name'] : ''; $form_type = $request_field['form_type']; $old_html_variable_name = 'uwp_account_' . $cehhtmlvar_name; $check_old_html_variable = $wpdb->get_var( $wpdb->prepare( "select htmlvar_name from " . $table_name . " where id <> %d and htmlvar_name = %s and form_type = %s ", array($cf,$old_html_variable_name , $form_type) ) ); $check_html_variable = $wpdb->get_var( $wpdb->prepare( "select htmlvar_name from " . $table_name . " where id <> %d and htmlvar_name = %s and form_type = %s ", array($cf, $cehhtmlvar_name, $form_type) ) ); if ((!$check_old_html_variable && !$check_html_variable) || $request_field['field_type'] == 'fieldset') { if ($cf != '') { $user_meta_info = $wpdb->get_row( $wpdb->prepare( "select * from " . $table_name . " where id = %d", array($cf) ) ); } if (!empty($user_meta_info)) { $old_html_variable = $user_meta_info->htmlvar_name; } $site_title = sanitize_text_field($request_field['site_title']); $form_label = isset($request_field['form_label']) ? sanitize_text_field($request_field['form_label']) : ''; $field_type = sanitize_text_field($request_field['field_type']); $data_type = sanitize_text_field($request_field['data_type']); $field_type_key = isset($request_field['field_type_key']) ? sanitize_text_field($request_field['field_type_key']) : $field_type; $htmlvar_name = isset( $request_field['htmlvar_name'] ) ? str_replace(array('-',' ','"',"'"), array('_','','',''), sanitize_title_with_dashes( $request_field['htmlvar_name'] ) ) : null; $default_value = isset($request_field['default_value']) ? sanitize_text_field($request_field['default_value']) : ''; $sort_order = isset($request_field['sort_order']) ? absint($request_field['sort_order']) : ''; $is_active = isset($request_field['is_active']) ? absint($request_field['is_active']) : 1; $for_admin_use = isset($request_field['for_admin_use']) ? absint($request_field['for_admin_use']) : 0; $is_required = isset($request_field['is_required']) ? absint($request_field['is_required']) : 0; $is_dummy = isset($request_field['is_dummy']) ? absint($request_field['is_dummy']) : 0; $is_public = isset($request_field['is_public']) ? absint($request_field['is_public']) : 0; $is_default = isset($request_field['is_default']) ? absint($request_field['is_default']) : 0; $is_register_field = isset($request_field['is_register_field']) ? absint($request_field['is_register_field']) : 0; $is_search_field = isset($request_field['is_search_field']) ? absint($request_field['is_search_field']) : 0; $is_register_only_field = isset($request_field['is_register_only_field']) ? absint($request_field['is_register_only_field']) : 0; $required_msg = isset($request_field['required_msg']) ? sanitize_text_field($request_field['required_msg']) : ''; $css_class = isset($request_field['css_class']) ? sanitize_text_field($request_field['css_class']) : ''; $field_icon = isset($request_field['field_icon']) ? sanitize_text_field($request_field['field_icon']) : ''; $show_in = isset($request_field['show_in']) ? $request_field['show_in'] : ''; $user_roles = isset($request_field['user_roles']) ? $request_field['user_roles'] : ''; $decimal_point = isset($request_field['decimal_point']) ? absint($request_field['decimal_point']) : ''; // decimal point for DECIMAL data type $decimal_point = $decimal_point > 0 ? ($decimal_point > 10 ? 10 : $decimal_point) : ''; $validation_pattern = isset($request_field['validation_pattern']) ? sanitize_text_field($request_field['validation_pattern']) : ''; $validation_msg = isset($request_field['validation_msg']) ? sanitize_text_field($request_field['validation_msg']) : ''; if ( empty( $htmlvar_name ) && $field_type == 'fieldset') { $htmlvar_name = $field_type_key; } if ( empty( $htmlvar_name ) ) { $htmlvar_name = sanitize_key( str_replace( array( '-', ' ', '"', "'" ), array( '_', '_', '', '' ), $request_field['site_title'] ) ); if ( str_replace( '_', '', $htmlvar_name ) != '' ) { $htmlvar_name = substr( $htmlvar_name, 0, 50 ); } else { $htmlvar_name = time(); } } if (is_array($show_in)) { $show_in = implode(",", $request_field['show_in']); $show_in = sanitize_text_field($show_in); } if (is_array($user_roles)) { $user_roles = implode(",", $request_field['user_roles']); $user_roles = sanitize_text_field($user_roles); } $option_values = ''; if (isset($request_field['option_values'])) $option_values = $request_field['option_values']; if (isset($request_field['extra']) && !empty($request_field['extra'])) $extra_fields = $request_field['extra']; if ($sort_order == '') { $last_order = $wpdb->get_var("SELECT MAX(sort_order) as last_order FROM " . $table_name); $sort_order = (int) $last_order + 1; } if (!empty($user_meta_info)) { $excluded = uwp_get_excluded_fields(); if (!in_array($htmlvar_name, $excluded)) { // Create custom columns switch ($field_type): case 'checkbox': case 'multiselect': case 'select': $op_size = '500'; // only make the field as big as it needs to be. if (isset($option_values) && $option_values && $field_type == 'select') { $option_values_arr = explode(',', $option_values); if (is_array($option_values_arr)) { $op_max = 0; foreach ($option_values_arr as $op_val) { if (strlen($op_val) && strlen($op_val) > $op_max) {$op_max = strlen($op_val); } } if ($op_max) {$op_size = $op_max; } } }elseif (isset($option_values) && $option_values && $field_type == 'multiselect') { if (strlen($option_values)) { $op_size = strlen($option_values); } } $meta_field_add = "ALTER TABLE " . $meta_table . " CHANGE `" . $old_html_variable . "` `" . $htmlvar_name . "`VARCHAR( $op_size ) NULL"; if ($default_value != '') { $meta_field_add .= " DEFAULT '" . $default_value . "'"; } $alter_result = $wpdb->query($meta_field_add); if ($alter_result === false) { return __('Column change failed, you may have too many columns.', 'userswp'); } if (isset($request_field['cat_display_type'])) $extra_fields = $request_field['cat_display_type']; if (isset($request_field['multi_display_type'])) $extra_fields = $request_field['multi_display_type']; break; case 'textarea': case 'html': case 'url': case 'file': $alter_result = $wpdb->query("ALTER TABLE " . $meta_table . " CHANGE `" . $old_html_variable . "` `" . $htmlvar_name . "` TEXT NULL"); if ($alter_result === false) { return __('Column change failed, you may have too many columns.', 'userswp'); } if (isset($request_field['advanced_editor'])) $extra_fields = $request_field['advanced_editor']; break; case 'fieldset': // Nothing happened for fieldset break; default: if ($data_type != 'VARCHAR' && $data_type != '') { if ($data_type == 'FLOAT' && $decimal_point > 0) { $default_value_add = "ALTER TABLE " . $meta_table . " CHANGE `" . $old_html_variable . "` `" . $htmlvar_name . "` DECIMAL(11, " . (int) $decimal_point . ") NULL"; } else { $default_value_add = "ALTER TABLE " . $meta_table . " CHANGE `" . $old_html_variable . "` `" . $htmlvar_name . "` " . $data_type . " NULL"; } if (is_numeric($default_value) && $default_value != '') { $default_value_add .= " DEFAULT '" . $default_value . "'"; } } else { $default_value_add = "ALTER TABLE " . $meta_table . " CHANGE `" . $old_html_variable . "` `" . $htmlvar_name . "` VARCHAR( 254 ) NULL"; if ($default_value != '') { $default_value_add .= " DEFAULT '" . $default_value . "'"; } } $alter_result = $wpdb->query($default_value_add); if ($alter_result === false) { return __('Column change failed, you may have too many columns.', 'userswp'); } break; endswitch; } $extra_field_query = ''; if (!empty($extra_fields)) { $extra_field_query = serialize($extra_fields); } $wpdb->query( $wpdb->prepare( "update " . $table_name . " set form_type = %s, site_title = %s, form_label = %s, field_type = %s, data_type = %s, decimal_point = %s, field_type_key = %s, htmlvar_name = %s, default_value = %s, sort_order = %s, is_active = %s, for_admin_use = %s, is_default = %s, is_required = %s, is_dummy = %s, is_public = %s, is_register_field = %s, is_search_field = %s, is_register_only_field = %s, required_msg = %s, css_class = %s, field_icon = %s, show_in = %s, user_roles = %s, option_values = %s, extra_fields = %s, validation_pattern = %s, validation_msg = %s where id = %d", array( $form_type, $site_title, $form_label, $field_type, $data_type, $decimal_point, $field_type_key, $htmlvar_name, $default_value, $sort_order, $is_active, $for_admin_use, $is_default, $is_required, $is_dummy, $is_public, $is_register_field, $is_search_field, $is_register_only_field, $required_msg, $css_class, $field_icon, $show_in, $user_roles, $option_values, $extra_field_query, $validation_pattern, $validation_msg, $cf ) ) ); $lastid = trim($cf); do_action('uwp_after_custom_fields_updated', $lastid); } else { switch ($field_type): case 'checkbox': $data_type = 'TINYINT'; $meta_field_add = $data_type . "( 1 ) NOT NULL "; if ((int) $default_value === 1) { $meta_field_add .= " DEFAULT '1'"; } $add_result = uwp_add_column_if_not_exist($meta_table, $htmlvar_name, $meta_field_add); if ($add_result === false) { return __('Column creation failed, you may have too many columns or the default value does not match with field data type.', 'userswp'); } break; case 'multiselect': case 'select': $data_type = 'VARCHAR'; $op_size = '500'; // only make the field as big as it needs to be. if (isset($option_values) && $option_values && $field_type == 'select') { $option_values_arr = explode(',', $option_values); if (is_array($option_values_arr)) { $op_max = 0; foreach ($option_values_arr as $op_val) { if (strlen($op_val) && strlen($op_val) > $op_max) { $op_max = strlen($op_val); } } if ($op_max) { $op_size = $op_max; } } } elseif (isset($option_values) && $option_values && $field_type == 'multiselect') { if (strlen($option_values)) { $op_size = strlen($option_values); } if (isset($request_field['multi_display_type'])) { $extra_fields = $request_field['multi_display_type']; } } $meta_field_add = $data_type . "( $op_size ) NULL "; if ($default_value != '') { $meta_field_add .= " DEFAULT '" . $default_value . "'"; } $add_result = uwp_add_column_if_not_exist($meta_table, $htmlvar_name, $meta_field_add); if ($add_result === false) { return __('Column creation failed, you may have too many columns or the default value does not match with field data type.', 'userswp'); } break; case 'textarea': case 'html': case 'url': case 'file': $data_type = 'TEXT'; $meta_field_add = $data_type . " NULL "; $add_result = uwp_add_column_if_not_exist($meta_table, $htmlvar_name, $meta_field_add); if ($add_result === false) { return __('Column creation failed, you may have too many columns or the default value does not match with field data type.', 'userswp'); } break; case 'datepicker': $data_type = 'DATE'; $meta_field_add = $data_type . " NULL "; $add_result = uwp_add_column_if_not_exist($meta_table, $htmlvar_name, $meta_field_add); if ($add_result === false) { return __('Column creation failed, you may have too many columns or the default value must have in valid date format.', 'userswp'); } break; case 'time': $data_type = 'TIME'; $meta_field_add = $data_type . " NULL "; $add_result = uwp_add_column_if_not_exist($meta_table, $htmlvar_name, $meta_field_add); if ($add_result === false) { return __('Column creation failed, you may have too many columns or the default value must have in valid time format.', 'userswp'); } break; default: if ($data_type != 'VARCHAR' && $data_type != '') { $meta_field_add = $data_type . " NULL "; if ($data_type == 'FLOAT' && $decimal_point > 0) { $meta_field_add = "DECIMAL(11, " . (int) $decimal_point . ") NULL "; } if (is_numeric($default_value) && $default_value != '') { $meta_field_add .= " DEFAULT '" . $default_value . "'"; } } else { $meta_field_add = " VARCHAR( 254 ) NULL "; if ($default_value != '') { $meta_field_add .= " DEFAULT '" . $default_value . "'"; } } $add_result = uwp_add_column_if_not_exist($meta_table, $htmlvar_name, $meta_field_add); if ($add_result === false) { return __('Column creation failed, you may have too many columns or the default value does not match with field data type.', 'userswp'); } break; endswitch; $extra_field_query = ''; if (!empty($extra_fields)) { $extra_field_query = serialize($extra_fields); } $wpdb->query( $wpdb->prepare( "insert into " . $table_name . " set form_type = %s, site_title = %s, form_label = %s, field_type = %s, data_type = %s, decimal_point = %s, field_type_key = %s, htmlvar_name = %s, default_value = %s, sort_order = %d, is_active = %s, for_admin_use = %s, is_default = %s, is_required = %s, is_dummy = %s, is_public = %s, is_register_field = %s, is_search_field = %s, is_register_only_field = %s, required_msg = %s, css_class = %s, field_icon = %s, show_in = %s, user_roles = %s, option_values = %s, extra_fields = %s, validation_pattern = %s, validation_msg = %s ", array( $form_type, $site_title, $form_label, $field_type, $data_type, $decimal_point, $field_type_key, $htmlvar_name, $default_value, $sort_order, $is_active, $for_admin_use, $is_default, $is_required, $is_dummy, $is_public, $is_register_field, $is_search_field, $is_register_only_field, $required_msg, $css_class, $field_icon, $show_in, $user_roles, $option_values, $extra_field_query, $validation_pattern, $validation_msg ) ) ); $lastid = $wpdb->insert_id; $lastid = trim($lastid); } return (int) $lastid; } else { return 'invalid_key'; } } public function set_field_order($field_ids = array()) { global $wpdb; $table_name = uwp_get_table_prefix() . 'uwp_form_fields'; $count = 0; if (!empty($field_ids)): $user_meta_info = false; foreach ($field_ids as $id) { $cf = trim($id, '_'); $user_meta_info = $wpdb->query( $wpdb->prepare( "update " . $table_name . " set sort_order=%d where id= %d", array($count, $cf) ) ); $count++; } return $user_meta_info; else: return false; endif; } public function admin_form_field_delete($field_id = '') { global $wpdb; $table_name = uwp_get_table_prefix() . 'uwp_form_fields'; $extras_table_name = uwp_get_table_prefix() . 'uwp_form_extras'; $meta_table = get_usermeta_table_prefix() . 'uwp_usermeta'; if ($field_id != '') { $cf = trim($field_id, '_'); if ($field = $wpdb->get_row($wpdb->prepare("select * from " . $table_name . " where id= %d", array($cf)))) { $wpdb->query($wpdb->prepare("delete from " . $table_name . " where id= %d ", array($cf))); $form_type = $field->form_type; // Also delete register form field $wpdb->query($wpdb->prepare("delete from " . $extras_table_name . " where site_htmlvar_name= %s ", array($field->htmlvar_name))); // delete the meta column $col_name = sanitize_sql_orderby($field->htmlvar_name); $wpdb->query("ALTER TABLE `{$meta_table}` DROP COLUMN $col_name"); do_action('uwp_after_custom_field_deleted', $cf, $field->htmlvar_name, $form_type); return $field_id; } else return 0; } else return 0; } public function builder_extra_fields_smr($output, $result_str, $cf, $field_info) { ob_start(); $value = ''; if (isset($field_info->option_values)) { $value = esc_attr($field_info->option_values); }elseif (isset($cf['defaults']['option_values']) && $cf['defaults']['option_values']) { $value = esc_attr($cf['defaults']['option_values']); } $field_type = isset($field_info->field_type) ? $field_info->field_type : $cf['field_type']; $field_type_key = isset($field_info->field_type_key) ? $field_info->field_type_key : ''; if(!$field_type_key){ $field_type_key = isset($_REQUEST['field_type_key']) ? esc_html($_REQUEST['field_type_key']) : ''; } ?>

  • extra_fields) && $field_info->extra_fields != '') { $extra = unserialize($field_info->extra_fields); } ?>
  • extra_fields) && $field_info->extra_fields != '') { $extra = unserialize($field_info->extra_fields); } $value = isset($extra['confirm_password']) ? $extra['confirm_password'] : '1'; if (isset($field_info->htmlvar_name) && $field_info->htmlvar_name == 'password') { ?>
  • onclick="" />
  • extra_fields) && $field_info->extra_fields != '') { $extra = unserialize($field_info->extra_fields); } $value = isset($extra['confirm_email']) ? $extra['confirm_email'] : '0'; if (isset($field_info->htmlvar_name) && $field_info->htmlvar_name == 'email') { ?>
  • onclick="" />
  • allowed_mime_types(); $extra_fields = isset($field_info->extra_fields) && $field_info->extra_fields != '' ? maybe_unserialize($field_info->extra_fields) : ''; $uwp_file_types = !empty($extra_fields) && !empty($extra_fields['uwp_file_types']) ? $extra_fields['uwp_file_types'] : array('*'); ?>
  • data_type)) { $dt_value = esc_attr($field_info->data_type); }elseif (isset($cf['defaults']['data_type']) && $cf['defaults']['data_type']) { $dt_value = $cf['defaults']['data_type']; } ?>
  • decimal_point)) { $value = esc_attr($field_info->decimal_point); }elseif (isset($cf['defaults']['decimal_point']) && $cf['defaults']['decimal_point']) { $value = $cf['defaults']['decimal_point']; } ?>
  • for_admin_use) && $field_info->for_admin_use == '1') ? "style='display:none;'" : $hide_register_field; $value = 0; if (isset($field_info->is_register_field)) { $value = (int) $field_info->is_register_field; } else if (isset($cf['defaults']['is_register_field']) && $cf['defaults']['is_register_field']) { $value = ($cf['defaults']['is_register_field']) ? 1 : 0; } //register only field $hide_register_only_field = (isset($cf['defaults']['is_register_only_field']) && $cf['defaults']['is_register_only_field'] === false) ? "style='display:none;'" : ''; $hide_register_only_field = (isset($field_info->for_admin_use) && $field_info->for_admin_use == '1') ? "style='display:none;'" : $hide_register_only_field; $register_only_value = 0; if (isset($field_info->is_register_only_field)) { $register_only_value = (int) $field_info->is_register_only_field; } else if (isset($cf['defaults']['is_register_only_field']) && $cf['defaults']['is_register_only_field']) { $register_only_value = ($cf['defaults']['is_register_only_field']) ? 1 : 0; } ?>
  • class="cf-incin-reg-form uwp-setting-name uwp-advanced-setting"> htmlvar_name) && $field_info->htmlvar_name == 'username') { ?>

    />
  • class="cf-inconlyin-reg-form uwp-setting-name uwp-advanced-setting"> htmlvar_name) && $field_info->htmlvar_name == 'username') { ?>

    />
  • get_results("select site_htmlvar_name from " . $extras_table_name . " where form_type ='" . $form_type . "'"); $existing_field_ids = array(); if (!empty($existing_fields)) { foreach ($existing_fields as $existing_field) { $existing_field_ids[] = $existing_field->site_htmlvar_name; } } ?> get_results($wpdb->prepare("select field_type, site_title, htmlvar_name, field_icon from " . $table_name . " where form_type = %s and is_register_field=%s order by sort_order asc", array('account', '1')), ARRAY_A); return apply_filters('uwp_register_fields', $fields, $form_type); } public function register_selected_fields($form_type) { global $wpdb; $extras_table_name = uwp_get_table_prefix() . 'uwp_form_extras'; ?> get_row($wpdb->prepare("select * from " . $extras_table_name . " where id= %d", array($cf))); } elseif (is_object($cf)) { //$field_info = $cf; $result_str = $cf->id; $field_info = $wpdb->get_row($wpdb->prepare("select * from " . $extras_table_name . " where id= %d", array((int) $cf->id))); } else { $field_info = false; } if (isset($request['field_type']) && $request['field_type'] != '') $field_type = esc_attr($request['field_type']); else $field_type = $field_info->field_type; $field_site_name = ''; if (isset($request['site_title'])) { $field_site_name = $request['site_title']; } if ($field_info) { $account_field_info = $wpdb->get_row($wpdb->prepare("select * from " . $table_name . " where htmlvar_name= %s", array($field_info->site_htmlvar_name))); if (isset($account_field_info->site_title)) { if ($account_field_info->field_type == 'fieldset') { $field_site_name = __('Fieldset:', 'userswp') . ' ' . $account_field_info->site_title; } else { $field_site_name = $account_field_info->site_title; } } $field_info = stripslashes_deep($field_info); // strip slashes } $field_site_name = sanitize_title($field_site_name); if (isset($request['form_type'])) { $form_type = esc_attr($request['form_type']); } else { $form_type = $field_info->form_type; } if (isset($request['htmlvar_name']) && $request['htmlvar_name'] != '') { $htmlvar_name = esc_attr($request['htmlvar_name']); } else { $htmlvar_name = $field_info->site_htmlvar_name; } if (isset($htmlvar_name)) { if (!is_object($field_info)) {$field_info = new stdClass(); } $field_info->field_icon = $wpdb->get_var( $wpdb->prepare("SELECT field_icon FROM " . $table_name . " WHERE htmlvar_name = %s", array($htmlvar_name)) ); } $icon = isset($field_info->field_icon) ? $field_info->field_icon : ''; if ( uwp_is_fa_icon( $icon ) ) { $field_icon = ''; } elseif ( uwp_is_icon_url( $icon ) ) { $field_icon = ''; } elseif (isset($field_info->field_type) && $field_info->field_type == 'fieldset') { $field_icon = ''; } else { $field_icon = ''; } ?>
    • site_htmlvar_name, $no_actions)) { ?>
  • set_field_order($field_ids); } /* ---- Show field form in admin ---- */ if ($field_type != '' && $field_id != '' && $field_action == 'new' && isset($_REQUEST['create_field']) && isset($_REQUEST['manage_field_type']) && $_REQUEST['manage_field_type'] == 'custom_fields') { $this->form_field_adminhtml($field_type, $field_id, $field_action,$field_type_key, $form_type); } /* ---- Delete field ---- */ if ($field_id != '' && $field_action == 'delete' && isset($_REQUEST['_wpnonce']) && isset($_REQUEST['create_field']) && isset($_REQUEST['manage_field_type']) && $_REQUEST['manage_field_type'] == 'custom_fields') { if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'custom_fields_' . $field_id)) return; echo $this->admin_form_field_delete($field_id); } /* ---- Save field ---- */ if ($field_id != '' && $field_action == 'submit' && isset($_REQUEST['_wpnonce']) && isset($_REQUEST['create_field']) && isset($_REQUEST['manage_field_type']) && $_REQUEST['manage_field_type'] == 'custom_fields') { if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'custom_fields_' . $field_id)) return; foreach ($_REQUEST as $pkey => $pval) { if (is_array($_REQUEST[$pkey])) { $tags = 'skip_field'; } else { $tags = ''; } if ($tags != 'skip_field') { $_REQUEST[$pkey] = strip_tags($_REQUEST[$pkey], $tags); } } $return = $this->admin_form_field_save($_REQUEST); if (is_int($return)) { $lastid = $return; $this->form_field_adminhtml($field_type, $lastid, 'submit',$field_type_key, $form_type); } else { echo $return; } } wp_die(); } public function register_ajax_handler() { if (isset($_REQUEST['create_field'])) { $field_id = isset($_REQUEST['field_id']) ? trim(sanitize_text_field($_REQUEST['field_id']), '_') : ''; $field_action = isset($_REQUEST['field_ins_upd']) ? sanitize_text_field($_REQUEST['field_ins_upd']) : ''; /* ------- check nonce field ------- */ if (isset($_REQUEST['update']) && $_REQUEST['update'] == 'update') { $field_ids = array(); if (!empty($_REQUEST['licontainer']) && is_array($_REQUEST['licontainer'])) { foreach ($_REQUEST['licontainer'] as $lic_id) { $field_ids[] = sanitize_text_field($lic_id); } } $return = uwp_form_extras_field_order($field_ids, "register"); if (is_array($return)) { $return = json_encode($return); } echo $return; } /* ---- Show field form in admin ---- */ if ($field_action == 'new') { $form_type = isset($_REQUEST['form_type']) ? sanitize_text_field($_REQUEST['form_type']) : ''; $fields = $this->register_fields($form_type); $_REQUEST['site_field_id'] = isset($_REQUEST['field_id']) ? sanitize_text_field($_REQUEST['field_id']) : ''; $_REQUEST['is_default'] = '0'; if (!empty($fields)) { foreach ($fields as $val) { $val = stripslashes_deep($val); if ($val['htmlvar_name'] == $_REQUEST['htmlvar_name']) { $_REQUEST['field_type'] = $val['field_type']; $_REQUEST['site_title'] = $val['site_title']; } } } $htmlvar_name = isset($_REQUEST['htmlvar_name']) ? sanitize_text_field($_REQUEST['htmlvar_name']) : ''; $this->register_field_adminhtml($htmlvar_name, $field_action, false, $_REQUEST); } /* ---- Delete field ---- */ if ($field_id != '' && $field_action == 'delete' && isset($_REQUEST['_wpnonce'])) { if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'uwp_form_extras_nonce' . $field_id)) return; echo $this->register_field_delete($field_id); } /* ---- Save field ---- */ if ($field_id != '' && $field_action == 'submit' && isset($_REQUEST['_wpnonce'])) { if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'uwp_form_extras_nonce' . $field_id)) return; foreach ($_REQUEST as $pkey => $pval) { $tags = is_array($_REQUEST[$pkey]) ? 'skip_field' : ''; if ($tags != 'skip_field') { $_REQUEST[$pkey] = strip_tags(sanitize_text_field($_REQUEST[$pkey]), $tags); } } $return = $this->register_field_save($_REQUEST); if (is_int($return)) { $lastid = $return; $this->register_field_adminhtml($lastid, 'submit'); } else { echo $return; } } } die(); } public function register_field_save($request_field = array()) { global $wpdb; $extras_table_name = uwp_get_table_prefix() . 'uwp_form_extras'; $result_str = isset($request_field['field_id']) ? trim($request_field['field_id']) : ''; $cf = trim($result_str, '_'); /*-------- check duplicate validation --------*/ $site_htmlvar_name = isset($request_field['site_htmlvar_name']) ? $request_field['site_htmlvar_name'] : $request_field['htmlvar_name']; $form_type = $request_field['form_type']; $field_type = $request_field['field_type']; $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 ", array($cf, $site_htmlvar_name, $form_type))); if (!$check_html_variable) { if ($cf != '') { $user_meta_info = $wpdb->get_row( $wpdb->prepare( "select * from " . $extras_table_name . " where id = %d", array($cf) ) ); } if ($form_type == '') $form_type = 'register'; $site_htmlvar_name = $request_field['site_htmlvar_name']; $field_id = (isset($request_field['field_id']) && $request_field['field_id']) ? str_replace('new', '', $request_field['field_id']) : ''; if (!empty($user_meta_info)) { $wpdb->query( $wpdb->prepare( "update " . $extras_table_name . " set form_type = %s, field_type = %s, site_htmlvar_name = %s, sort_order = %s where id = %d", array( $form_type, $field_type, $site_htmlvar_name, $field_id, $cf ) ) ); $lastid = trim($cf); } else { $wpdb->query( $wpdb->prepare( "insert into " . $extras_table_name . " set form_type = %s, field_type = %s, site_htmlvar_name = %s, sort_order = %s", array($form_type, $field_type, $site_htmlvar_name, $field_id ) ) ); $lastid = $wpdb->insert_id; $lastid = trim($lastid); } return (int) $lastid; } else { return 'invalid_key'; } } public function register_field_delete($field_id = '') { global $wpdb; $extras_table_name = uwp_get_table_prefix() . 'uwp_form_extras'; if ($field_id != '') { $cf = trim($field_id, '_'); $wpdb->query($wpdb->prepare("delete from " . $extras_table_name . " where id= %d ", array($cf))); return $field_id; } else return 0; } }