*/ class UsersWP_Form_Builder { public function uwp_form_builder($default_tab = 'account') { ob_start(); $form_type = (isset($_REQUEST['tab']) && $_REQUEST['tab'] != '') ? sanitize_text_field($_REQUEST['tab']) : $default_tab; ?>

uwp_form_fields_predefined($form_type); }elseif ($type == 'custom') { $fields = $this->uwp_form_fields_custom($form_type); } else { $fields = $this->uwp_form_fields($form_type); ?> 'select', 'class' => 'uwp-country', 'icon' => 'fa fa-map-marker', 'name' => __('Country', 'userswp'), 'description' => __('Adds a input for Country field.', 'userswp'), 'defaults' => array( 'admin_title' => 'Country', 'site_title' => 'Country', 'htmlvar_name' => 'country', 'is_active' => 1, 'default_value' => '', 'is_required' => 0, 'option_values' => '', 'required_msg' => '', 'field_icon' => 'fa fa-map-marker', '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' => 'fa 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' => 'fa fa-user', 'css_class' => '' ) ); // Mobile $custom_fields['mobile'] = array( // The key value should be unique and not contain any spaces. 'field_type' => 'phone', 'class' => 'uwp-mobile', 'icon' => 'fa fa-mobile', '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' => 'fa fa-mobile', 'css_class' => '' ) ); return apply_filters('uwp_form_fields_predefined', $custom_fields, $type); } public function uwp_form_fields_custom($type = '') { $custom_fields = array(); return apply_filters('uwp_form_fields_custom', $custom_fields, $type); } public function uwp_form_fields($type = '') { $custom_fields = array( 'text' => array( 'field_type' => 'text', 'class' => 'uwp-text', 'icon' => 'fa 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' => 'fa fa-calendar', 'name' => __('Date', 'userswp'), 'description' => __('Adds a date picker.', 'userswp') ), 'textarea' => array( 'field_type' => 'textarea', 'class' => 'uwp-textarea', 'icon' => 'fa fa-bars', 'name' => __('Textarea', 'userswp'), 'description' => __('Adds a textarea', 'userswp') ), 'time' => array( 'field_type' => 'time', 'class' => 'uwp-time', 'icon' => 'fa fa-clock-o', 'name' => __('Time', 'userswp'), 'description' => __('Adds a time picker', 'userswp') ), 'checkbox' => array( 'field_type' => 'checkbox', 'class' => 'uwp-checkbox', 'icon' => 'fa fa-check-square-o', 'name' => __('Checkbox', 'userswp'), 'description' => __('Adds a checkbox', 'userswp') ), 'phone' => array( 'field_type' => 'phone', 'class' => 'uwp-phone', 'icon' => 'fa fa-phone', 'name' => __('Phone', 'userswp'), 'description' => __('Adds a phone input', 'userswp') ), 'radio' => array( 'field_type' => 'radio', 'class' => 'uwp-radio', 'icon' => 'fa fa-dot-circle-o', 'name' => __('Radio', 'userswp'), 'description' => __('Adds a radio input', 'userswp') ), 'email' => array( 'field_type' => 'email', 'class' => 'uwp-email', 'icon' => 'fa fa-envelope-o', 'name' => __('Email', 'userswp'), 'description' => __('Adds a email input', 'userswp') ), 'select' => array( 'field_type' => 'select', 'class' => 'uwp-select', 'icon' => 'fa fa-caret-square-o-down', 'name' => __('Select', 'userswp'), 'description' => __('Adds a select input', 'userswp') ), 'multiselect' => array( 'field_type' => 'multiselect', 'class' => 'uwp-multiselect', 'icon' => 'fa fa-caret-square-o-down', 'name' => __('Multi Select', 'userswp'), 'description' => __('Adds a multiselect input', 'userswp') ), 'url' => array( 'field_type' => 'url', 'class' => 'uwp-url', 'icon' => 'fa fa-link', 'name' => __('URL', 'userswp'), 'description' => __('Adds a url input', 'userswp') ), 'file' => array( 'field_type' => 'file', 'class' => 'uwp-file', 'icon' => 'fa fa-file', 'name' => __('File Upload', 'userswp'), 'description' => __('Adds a file input', 'userswp') ) ); return apply_filters('uwp_form_fields', $custom_fields, $type); } public function uwp_manage_available_fields_predefined($form_type) { switch ($form_type) { case 'account': $this->uwp_custom_available_fields('predefined', $form_type); break; } } public function uwp_manage_available_fields_custom($form_type) { switch ($form_type) { case 'account': $this->uwp_custom_available_fields('custom', $form_type); break; } } public function uwp_manage_available_fields($form_type) { switch ($form_type) { case 'account': $this->uwp_custom_available_fields('', $form_type); break; } } public function uwp_manage_selected_fields($form_type) { switch ($form_type) { case 'account': $this->uwp_custom_selected_fields($form_type); break; } } function uwp_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->uwp_form_fields($form_type); $cf_arr2 = $this->uwp_form_fields_predefined($form_type); $cf_arr3 = $this->uwp_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"' : ''; $radio_id = (isset($field_info->htmlvar_name)) ? $field_info->htmlvar_name : rand(5, 500); if (isset($cf['icon']) && strpos($cf['icon'], 'fa 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']; } ?>
    • >
      /> />
    • 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']; } ?>
    • >
      /> />
    • is_public)) { $value = esc_attr($field_info->is_public); }elseif (isset($cf['defaults']['is_public']) && $cf['defaults']['is_public']) { $value = $cf['defaults']['is_public']; } ?>
    • >
    • 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']; } ?>
    • 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']); } ?>
    • __("Users Page", 'userswp'), "[more_info]" => __("More info tab", 'userswp'), "[own_tab]" => __("Profile page own tab", 'userswp'), "[profile_side]" => __("Profile Side", 'userswp'), ); if ($field_type != 'fieldset') { $show_in_locations["[fieldset]"] = __("Fieldset", 'userswp'); } $show_in_locations = apply_filters('uwp_show_in_locations', $show_in_locations, $field_info, $field_type); if (in_array($field_type, array('text', 'datepicker', 'textarea', 'time', 'phone', 'email', 'select', 'multiselect', 'url', 'html', 'fieldset', 'radio', 'checkbox', 'file'))) { } else { unset($show_in_locations['[own_tab]']); } ?>
  • get_row($wpdb->prepare("select * from " . $table_name . " where id= %d", array($cf))); } else { $field_info = $cf; $result_str = $cf->id; } $this->uwp_admin_form_field_html($field_info, $field_type, $field_type_key, $field_ins_upd, $result_str, $form_type); } public function uwp_admin_form_field_save($request_field = array()) { global $wpdb; $table_name = uwp_get_table_prefix() . 'uwp_form_fields'; $meta_table = uwp_get_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']; if ($request_field['field_type'] != 'fieldset') { $cehhtmlvar_name = 'uwp_' . $form_type . '_' . $cehhtmlvar_name; } $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_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 = $request_field['site_title']; $form_label = isset($request_field['form_label']) ? $request_field['form_label'] : ''; $field_type = $request_field['field_type']; $data_type = $request_field['data_type']; $field_type_key = isset($request_field['field_type_key']) ? $request_field['field_type_key'] : $field_type; $htmlvar_name = isset($request_field['htmlvar_name']) ? $request_field['htmlvar_name'] : ''; $default_value = isset($request_field['default_value']) ? $request_field['default_value'] : ''; $sort_order = isset($request_field['sort_order']) ? $request_field['sort_order'] : ''; $is_active = isset($request_field['is_active']) ? $request_field['is_active'] : ''; $for_admin_use = isset($request_field['for_admin_use']) ? $request_field['for_admin_use'] : ''; $is_required = isset($request_field['is_required']) ? $request_field['is_required'] : ''; $is_dummy = isset($request_field['is_dummy']) ? $request_field['is_dummy'] : ''; $is_public = isset($request_field['is_public']) ? $request_field['is_public'] : ''; $is_register_field = isset($request_field['is_register_field']) ? $request_field['is_register_field'] : ''; $is_search_field = isset($request_field['is_search_field']) ? $request_field['is_search_field'] : ''; $is_register_only_field = isset($request_field['is_register_only_field']) ? $request_field['is_register_only_field'] : ''; $required_msg = isset($request_field['required_msg']) ? $request_field['required_msg'] : ''; $css_class = isset($request_field['css_class']) ? $request_field['css_class'] : ''; $field_icon = isset($request_field['field_icon']) ? $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']) ? trim($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']) ? $request_field['validation_pattern'] : ''; $validation_msg = isset($request_field['validation_msg']) ? $request_field['validation_msg'] : ''; if (is_array($show_in)) { $show_in = implode(",", $request_field['show_in']); } if (is_array($user_roles)) { $user_roles = implode(",", $request_field['user_roles']); } // fieldset need htmlvar_name for register tab $htmlvar_name = 'uwp_' . $form_type . '_' . $htmlvar_name; $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 (isset($request_field['is_default']) && $request_field['is_default'] != '') $is_default = $request_field['is_default']; else $is_default = '0'; if ($is_active == '') $is_active = 1; if ($for_admin_use == '') $for_admin_use = 0; if ($is_required == '') $is_required = 0; if ($is_dummy == '') $is_dummy = 0; if ($is_public == '') $is_public = 0; if ($is_register_field == '') $is_register_field = 0; if ($is_search_field == '') $is_search_field = 0; if ($is_register_only_field == '') $is_register_only_field = 0; 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(); $starts_with = "uwp_account_"; if ((substr($htmlvar_name, 0, strlen($starts_with)) === $starts_with) && !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, 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, $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 __('HTML Variable Name should be a unique name', 'userswp'); } } public function uwp_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 uwp_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'; 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))); do_action('uwp_after_custom_field_deleted', $cf, $field->htmlvar_name, $form_type); return $field_id; } else return 0; } else return 0; } public function uwp_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); } ?>
  • htmlvar_name)) ? $field_info->htmlvar_name : rand(5, 500); //confirm password field $extra = array(); if (isset($field_info->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 == 'uwp_account_password') { ?>
  • /> />
  • htmlvar_name)) ? $field_info->htmlvar_name : rand(5, 500); //confirm email field $extra = array(); if (isset($field_info->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 == 'uwp_account_email') { ?>
  • /> />
  • 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']; } ?>
  • htmlvar_name)) ? $field_info->htmlvar_name : rand(5, 500); $hide_register_field = (isset($cf['defaults']['is_register_field']) && $cf['defaults']['is_register_field'] === false) ? "style='display:none;'" : ''; $hide_register_field = (isset($field_info->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"> htmlvar_name) && $field_info->htmlvar_name == 'uwp_account_username') { ?>

    /> />
  • class="cf-inconlyin-reg-form"> htmlvar_name) && $field_info->htmlvar_name == 'uwp_account_username') { ?>

    /> />
  • uwp_register_available_fields($form_type); break; } } public function uwp_manage_register_selected_fields($form_type) { switch ($form_type) { case 'register': $this->uwp_register_selected_fields($form_type); break; } } public function uwp_register_available_fields($form_type) { global $wpdb; $extras_table_name = uwp_get_table_prefix() . 'uwp_form_extras'; $existing_fields = $wpdb->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 * from " . $table_name . " where form_type = %s and is_register_field=%s order by sort_order asc", array('account', '1'))); foreach ($records as $row) { $field_type = $row->field_type; $fields[] = array( 'field_type' => $field_type, 'site_title' => $row->site_title, 'htmlvar_name' => $row->htmlvar_name, 'field_icon' => $row->field_icon ); } return $fields; } public function uwp_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['is_default']) && $request['is_default'] != '') { $default = esc_attr($request['is_default']); } else { $default = $field_info->is_default; } 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)) ); } if (isset($field_info->field_icon) && strpos($field_info->field_icon, 'fa fa-') !== false) { $field_icon = ''; }elseif (isset($field_info->field_icon) && $field_info->field_icon) { $field_icon = 'field_icon . '")">'; } elseif (isset($field_info->field_type) && $field_info->field_type == 'fieldset') { $field_icon = ''; } else { $field_icon = ''; } ?>
    • No options available

    • site_htmlvar_name == 'uwp_account_password') { ?>
  • uwp_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->uwp_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->uwp_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->uwp_register_field_save($_REQUEST); if (is_int($return)) { $lastid = $return; $this->uwp_register_field_adminhtml($lastid, 'submit'); } else { echo $return; } } } die(); } public function uwp_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['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 'HTML Variable Name should be a unique name'; } } public function uwp_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; } public function uwp_form_builder_dummy_fields() { global $wpdb; $table_name = uwp_get_table_prefix() . 'uwp_form_fields'; $extras_table_name = uwp_get_table_prefix() . 'uwp_form_extras'; // This function is intended for testing purpose if (isset($_GET['uwp_dummy']) && is_admin() && is_user_logged_in() && current_user_can('manage_options')) { if ($_GET['uwp_dummy'] == 'create') { // Account $fields = $this->uwp_dummy_custom_fields(); foreach ($fields as $field_index => $field) { $this->uwp_admin_form_field_save($field); } // Register foreach ($fields as $field) { $last_order = $wpdb->get_var("SELECT MAX(sort_order) as last_order FROM " . $extras_table_name); $sort_order = (int) $last_order + 1; $wpdb->query( $wpdb->prepare( "insert into " . $extras_table_name . " set form_type = %s, field_type = %s, is_dummy = %s, site_htmlvar_name = %s, sort_order = %s", array( 'register', $field['field_type'], $field['is_dummy'], 'uwp_account_' . $field['htmlvar_name'], $sort_order ) ) ); } wp_redirect(admin_url('admin.php?page=uwp_form_builder')); exit; } if ($_GET['uwp_dummy'] == 'delete') { $wpdb->query($wpdb->prepare("delete from " . $table_name . " where is_dummy= %s ", array('1'))); $wpdb->query($wpdb->prepare("delete from " . $extras_table_name . " where is_dummy= %s ", array('1'))); wp_redirect(admin_url('admin.php?page=uwp_form_builder')); exit; } } } public function uwp_dummy_custom_fields() { $fields = array(); //Fieldset $fields[] = array( 'form_type' => 'account', 'field_type' => 'fieldset', 'site_title' => __('Dummy Fieldset', 'userswp'), 'htmlvar_name' => 'dummy_fieldset', 'default_value' => '', 'option_values' => '', 'is_dummy' => '1', 'is_public' => '1', 'is_active' => '1', 'is_register_field' => '1', 'is_search_field' => '1', ); //Text $fields[] = array( 'form_type' => 'account', 'field_type' => 'text', 'site_title' => __('Dummy Text', 'userswp'), 'htmlvar_name' => 'dummy_text', 'default_value' => '', 'option_values' => '', 'is_dummy' => '1', 'is_public' => '1', 'is_active' => '1', 'is_register_field' => '1', 'is_search_field' => '1', ); //Textarea $fields[] = array( 'form_type' => 'account', 'field_type' => 'textarea', 'site_title' => __('Dummy Textarea', 'userswp'), 'htmlvar_name' => 'dummy_textarea', 'default_value' => '', 'option_values' => '', 'is_dummy' => '1', 'is_public' => '1', 'is_active' => '1', 'is_register_field' => '1', 'is_search_field' => '1', ); //Checkbox $fields[] = array( 'form_type' => 'account', 'field_type' => 'checkbox', 'site_title' => __('Dummy Checkbox', 'userswp'), 'htmlvar_name' => 'dummy_checkbox', 'default_value' => '', 'option_values' => '', 'is_dummy' => '1', 'is_public' => '1', 'is_active' => '1', 'is_register_field' => '1', 'is_search_field' => '1', ); //Radio $fields[] = array( 'form_type' => 'account', 'field_type' => 'radio', 'site_title' => __('Dummy Radio', 'userswp'), 'htmlvar_name' => 'dummy_radio', 'default_value' => '', 'option_values' => __('Value1,Value2,Value3', 'userswp'), 'is_dummy' => '1', 'is_public' => '1', 'is_active' => '1', 'is_register_field' => '1', 'is_search_field' => '1', ); //Select $fields[] = array( 'form_type' => 'account', 'field_type' => 'select', 'site_title' => __('Dummy Select', 'userswp'), 'htmlvar_name' => 'dummy_select', 'default_value' => '', 'option_values' => __('Select Option/,Value1,Value2,Value3', 'userswp'), 'is_dummy' => '1', 'is_public' => '1', 'is_active' => '1', 'is_register_field' => '1', 'is_search_field' => '1', ); //URL $fields[] = array( 'form_type' => 'account', 'field_type' => 'url', 'site_title' => __('Dummy URL', 'userswp'), 'htmlvar_name' => 'dummy_url', 'default_value' => '', 'option_values' => '', 'is_dummy' => '1', 'is_public' => '1', 'is_active' => '1', 'is_register_field' => '1', 'is_search_field' => '1', ); //Date $fields[] = array( 'form_type' => 'account', 'field_type' => 'datepicker', 'site_title' => __('Dummy Date', 'userswp'), 'htmlvar_name' => 'dummy_datepicker', 'default_value' => '', 'option_values' => '', 'is_dummy' => '1', 'is_public' => '1', 'is_active' => '1', 'is_register_field' => '1', 'is_search_field' => '1', 'extra' => array( 'date_format' => 'F j, Y' ) ); //Time $fields[] = array( 'form_type' => 'account', 'field_type' => 'time', 'site_title' => __('Dummy Time', 'userswp'), 'htmlvar_name' => 'dummy_time', 'default_value' => '', 'option_values' => '', 'is_dummy' => '1', 'is_public' => '1', 'is_active' => '1', 'is_register_field' => '1', 'is_search_field' => '1', ); //Phone $fields[] = array( 'form_type' => 'account', 'field_type' => 'phone', 'site_title' => __('Dummy Phone', 'userswp'), 'htmlvar_name' => 'dummy_phone', 'default_value' => '', 'option_values' => '', 'is_dummy' => '1', 'is_public' => '1', 'is_active' => '1', 'is_register_field' => '1', 'is_search_field' => '1', ); //Email $fields[] = array( 'form_type' => 'account', 'field_type' => 'email', 'site_title' => __('Dummy Email', 'userswp'), 'htmlvar_name' => 'dummy_email', 'default_value' => '', 'option_values' => '', 'is_dummy' => '1', 'is_public' => '1', 'is_active' => '1', 'is_register_field' => '1', 'is_search_field' => '1', ); //Multiselect $fields[] = array( 'form_type' => 'account', 'field_type' => 'multiselect', 'site_title' => __('Dummy Multiselect', 'userswp'), 'htmlvar_name' => 'dummy_multiselect', 'default_value' => '', 'option_values' => __('Select Option/,Value1,Value2,Value3', 'userswp'), 'is_dummy' => '1', 'is_public' => '1', 'is_active' => '1', 'is_register_field' => '1', 'is_search_field' => '1', ); //File Upload $fields[] = array( 'form_type' => 'account', 'field_type' => 'file', 'site_title' => __('Dummy File', 'userswp'), 'htmlvar_name' => 'dummy_file', 'default_value' => '', 'option_values' => '', 'is_dummy' => '1', 'is_public' => '1', 'is_active' => '1', 'is_register_field' => '1', 'is_search_field' => '1', ); $fields = apply_filters('uwp_dummy_custom_fields', $fields); return $fields; } }