Allow non-editable fields in registration form

This commit is contained in:
champsupertramp
2016-07-31 17:40:05 +08:00
parent f707eac472
commit c4a4bef052
+90 -19
View File
@@ -69,6 +69,10 @@ class UM_Fields {
echo '</div>';
}
function disabled_hidden_field( $key, $value ){
return '<input type="hidden" name="'.$key.'" value="'.esc_attr( $value ).'"/>';
}
/***
*** @update a field globally
***/
@@ -909,12 +913,17 @@ class UM_Fields {
if ( !isset( $data['type'] ) ) return;
if ( isset( $data['in_group'] ) && $data['in_group'] != '' && $rule != 'group' ) return;
if ( $visibility == 'view' && $this->set_mode != 'register' ) return;
if ( $visibility == 'view' ) return;
if ( $visibility == 'view' && $this->set_mode == 'register' ){
$disabled = ' disabled="disabled" ';
}
if ( !um_can_view_field( $data ) ) return;
if ( !um_can_edit_field( $data ) ) return;
// fields that need to be disabled in edit mode (profile)
$arr_restricted_fields = array('user_email','username','user_login','user_password');
@@ -982,9 +991,16 @@ class UM_Fields {
}
$output .= '<input '.$disabled.' class="'.$this->get_class($key, $data).'" type="'.$input.'" name="'.$key.$ultimatemember->form->form_suffix.'" id="'.$key.$ultimatemember->form->form_suffix.'" value="'. htmlspecialchars( $this->field_value( $key, $default, $data ) ) .'" placeholder="'.$placeholder.'" data-validate="'.$validate.'" data-key="'.$key.'" />
$field_name = $key.$ultimatemember->form->form_suffix;
$field_value = htmlspecialchars( $this->field_value( $key, $default, $data ) );
$output .= '<input '.$disabled.' class="'.$this->get_class($key, $data).'" type="'.$input.'" name="'.$field_name.'" id="'.$field_name.'" value="'. $field_value .'" placeholder="'.$placeholder.'" data-validate="'.$validate.'" data-key="'.$key.'" />
</div>';
if( ! empty( $disabled ) ){
$output .= $this->disabled_hidden_field( $field_name, $field_value );
}
if ( $this->is_error($key) ) {
$output .= $this->field_error( $this->show_error($key) );
@@ -1010,9 +1026,16 @@ class UM_Fields {
}
$output .= '<input '.$disabled.' class="'.$this->get_class($key, $data).'" type="'.$input.'" name="'.$key.$ultimatemember->form->form_suffix.'" id="'.$key.$ultimatemember->form->form_suffix.'" value="'. htmlspecialchars( $this->field_value( $key, $default, $data ) ) .'" placeholder="'.$placeholder.'" data-validate="'.$validate.'" data-key="'.$key.'" />
$field_name = $key.$ultimatemember->form->form_suffix;
$field_value = htmlspecialchars( $this->field_value( $key, $default, $data ) );
$output .= '<input '.$disabled.' class="'.$this->get_class($key, $data).'" type="'.$input.'" name="'.$field_name.'" id="'.$field_name.'" value="'. $field_value .'" placeholder="'.$placeholder.'" data-validate="'.$validate.'" data-key="'.$key.'" />
</div>';
if( ! empty( $disabled ) ){
$output .= $this->disabled_hidden_field( $field_name, $field_value );
}
if ( $this->is_error($key) ) {
$output .= $this->field_error( $this->show_error($key) );
@@ -1195,7 +1218,7 @@ class UM_Fields {
}
$output .= '<input class="'.$this->get_class($key, $data).'" type="'.$input.'" name="'.$key.$ultimatemember->form->form_suffix.'" id="'.$key.$ultimatemember->form->form_suffix.'" value="'. $this->field_value( $key, $default, $data ) .'" placeholder="'.$placeholder.'" data-validate="'.$validate.'" data-key="'.$key.'" />
$output .= '<input '.$disabled.' class="'.$this->get_class($key, $data).'" type="'.$input.'" name="'.$key.$ultimatemember->form->form_suffix.'" id="'.$key.$ultimatemember->form->form_suffix.'" value="'. $this->field_value( $key, $default, $data ) .'" placeholder="'.$placeholder.'" data-validate="'.$validate.'" data-key="'.$key.'" />
</div>';
@@ -1223,7 +1246,7 @@ class UM_Fields {
}
$output .= '<input class="'.$this->get_class($key, $data).'" type="'.$input.'" name="'.$key.$ultimatemember->form->form_suffix.'" id="'.$key.$ultimatemember->form->form_suffix.'" value="'. $this->field_value( $key, $default, $data ) .'" placeholder="'.$placeholder.'" data-validate="'.$validate.'" data-key="'.$key.'" data-range="'.$range.'" data-years="'.$years.'" data-years_x="'.$years_x.'" data-disabled_weekdays="'.$disabled_weekdays.'" data-date_min="'.$date_min.'" data-date_max="'.$date_max.'" data-format="'.$js_format.'" data-value="'. $this->field_value( $key, $default, $data ) .'" />
$output .= '<input '.$disabled.' class="'.$this->get_class($key, $data).'" type="'.$input.'" name="'.$key.$ultimatemember->form->form_suffix.'" id="'.$key.$ultimatemember->form->form_suffix.'" value="'. $this->field_value( $key, $default, $data ) .'" placeholder="'.$placeholder.'" data-validate="'.$validate.'" data-key="'.$key.'" data-range="'.$range.'" data-years="'.$years.'" data-years_x="'.$years_x.'" data-disabled_weekdays="'.$disabled_weekdays.'" data-date_min="'.$date_min.'" data-date_max="'.$date_max.'" data-format="'.$js_format.'" data-value="'. $this->field_value( $key, $default, $data ) .'" />
</div>';
@@ -1251,7 +1274,7 @@ class UM_Fields {
}
$output .= '<input class="'.$this->get_class($key, $data).'" type="'.$input.'" name="'.$key.$ultimatemember->form->form_suffix.'" id="'.$key.$ultimatemember->form->form_suffix.'" value="'. $this->field_value( $key, $default, $data ) .'" placeholder="'.$placeholder.'" data-validate="'.$validate.'" data-key="'.$key.'" data-format="'.$js_format.'" data-intervals="'.$intervals.'" data-value="'. $this->field_value( $key, $default, $data ) .'" />
$output .= '<input '.$disabled.' class="'.$this->get_class($key, $data).'" type="'.$input.'" name="'.$key.$ultimatemember->form->form_suffix.'" id="'.$key.$ultimatemember->form->form_suffix.'" value="'. $this->field_value( $key, $default, $data ) .'" placeholder="'.$placeholder.'" data-validate="'.$validate.'" data-key="'.$key.'" data-format="'.$js_format.'" data-intervals="'.$intervals.'" data-value="'. $this->field_value( $key, $default, $data ) .'" />
</div>';
@@ -1276,6 +1299,8 @@ class UM_Fields {
}
$output .= '<div class="um-field-area">';
$field_name = $key;
$field_value = $this->field_value( $key, $default, $data );
if ( isset( $data['html'] ) && $data['html'] != 0 && $key != "description" ) {
@@ -1287,27 +1312,35 @@ class UM_Fields {
'editor_height' => $height,
'tinymce'=> array(
'toolbar1' => 'formatselect,bullist,numlist,bold,italic,underline,forecolor,blockquote,hr,removeformat,link,unlink,undo,redo',
'toolbar2' => ''
'toolbar2' => '',
)
);
if( ! empty( $disabled ) ){
$textarea_settings['tinymce']['readonly'] = true;
}
$textarea_settings = apply_filters('um_form_fields_textarea_settings', $textarea_settings );
// turn on the output buffer
ob_start();
// echo the editor to the buffer
wp_editor( $this->field_value( $key, $default, $data ) , $key, $textarea_settings );
wp_editor( $field_value , $key, $textarea_settings );
// add the contents of the buffer to the output variable
$output .= ob_get_clean();
}
else $output .= '<textarea style="height: '.$height.';" class="'.$this->get_class($key, $data).'" name="'.$key.'" id="'.$key.'" placeholder="'.$placeholder.'">'.$this->field_value( $key, $default, $data ).'</textarea>';
else $output .= '<textarea '.$disabled.' style="height: '.$height.';" class="'.$this->get_class($key, $data).'" name="'.$key.'" id="'.$key.'" placeholder="'.$placeholder.'">'.$field_value.'</textarea>';
$output .= '
</div>';
if( ! empty( $disabled ) ){
$output .= $this->disabled_hidden_field( $field_name, $field_value );
}
if ( $this->is_error($key) ) {
$output .= $this->field_error( $this->show_error($key) );
}
@@ -1544,7 +1577,7 @@ class UM_Fields {
$output .= '<div class="um-field-area">';
$output .= '<select name="'.$form_key.'" id="'.$form_key.'" data-validate="'.$validate.'" data-key="'.$key.'" class="'.$this->get_class($key, $data, $class).'" style="width: 100%" data-placeholder="'.$placeholder.'">';
$output .= '<select '.$disabled.' name="'.$form_key.'" id="'.$form_key.'" data-validate="'.$validate.'" data-key="'.$key.'" class="'.$this->get_class($key, $data, $class).'" style="width: 100%" data-placeholder="'.$placeholder.'">';
if ( isset($options) && $options == 'builtin'){
$options = $ultimatemember->builtin->get ( $filter );
@@ -1580,7 +1613,9 @@ class UM_Fields {
// add an empty option!
$output .= '<option value=""></option>';
$field_value = '';
// add options
foreach($options as $k => $v) {
@@ -1604,19 +1639,28 @@ class UM_Fields {
$output .= '<option value="' . $option_value . '" ';
if ( $this->is_selected( $form_key, $option_value, $data ) || ( ! isset( $options_pair ) && $this->is_selected( $form_key, $v, $data ) ) ) {
if ( $this->is_selected( $form_key, $option_value, $data ) ) {
$output.= 'selected';
$field_value = $option_value;
}else if( ! isset( $options_pair ) && $this->is_selected( $form_key, $v, $data ) ){
$output.= 'selected';
$field_value = $v;
}
$output .= '>'.__( $um_field_checkbox_item_title, UM_TEXTDOMAIN).'</option>';
}
if( ! empty( $disabled ) ){
$output .= $this->disabled_hidden_field( $form_key, $field_value );
}
$output .= '</select>';
$output .= '</div>';
if ( $this->is_error($form_key) ) {
$output .= $this->field_error( $this->show_error($form_key) );
}
@@ -1645,7 +1689,7 @@ class UM_Fields {
$output .= '<div class="um-field-area">';
$output .= '<select multiple="multiple" name="'.$key.'[]" id="'.$key.'" data-maxsize="'. $max_selections . '" data-validate="'.$validate.'" data-key="'.$key.'" class="'.$this->get_class($key, $data, $class).' um-user-keyword_'.$use_keyword.'" style="width: 100%" data-placeholder="'.$placeholder.'">';
$output .= '<select '.$disabled.' multiple="multiple" name="'.$key.'[]" id="'.$key.'" data-maxsize="'. $max_selections . '" data-validate="'.$validate.'" data-key="'.$key.'" class="'.$this->get_class($key, $data, $class).' um-user-keyword_'.$use_keyword.'" style="width: 100%" data-placeholder="'.$placeholder.'">';
if ( isset($options) && $options == 'builtin'){
@@ -1665,7 +1709,7 @@ class UM_Fields {
// add an empty option!
$output .= '<option value=""></option>';
$arr_selected = array();
// add options
foreach( $options as $k => $v ) {
@@ -1684,16 +1728,28 @@ class UM_Fields {
$output .= '<option value="'.$opt_value.'" ';
if ( $this->is_selected( $key, $opt_value, $data ) ) {
$output .= 'selected';
$arr_selected[ $opt_value ] = $opt_value;
}
$output .= '>'.__( $um_field_checkbox_item_title ,UM_TEXTDOMAIN).'</option>';
$output .= '>'.__( $um_field_checkbox_item_title ,UM_TEXTDOMAIN).'</option>';
}
$output .= '</select>';
if( ! empty( $disabled ) && ! empty( $arr_selected ) ){
foreach( $arr_selected as $item ){
$output .= $this->disabled_hidden_field( $key.'[]', $item );
}
}
$output .= '</div>';
if ( $this->is_error($key) ) {
$output .= $this->field_error( $this->show_error( $key ) );
}
@@ -1737,6 +1793,7 @@ class UM_Fields {
// add options
$i = 0;
$field_value = array();
foreach($options as $k => $v) {
@@ -1769,13 +1826,15 @@ class UM_Fields {
$option_value = apply_filters('um_field_non_utf8_value',$option_value );
$output .= '<input type="radio" name="'.$form_key.'" value="'.$option_value.'" ';
$output .= '<input '.$disabled.' type="radio" name="'.$form_key.'[]" value="'.$option_value.'" ';
if ( $this->is_radio_checked($key, $option_value, $data) ) {
$output.= 'checked';
$field_value[ $key ] = $option_value;
}
$output .= ' />';
$output .= '<span class="um-field-radio-state"><i class="'.$class.'"></i></span>';
$output .= '<span class="um-field-radio-option">'.__( $um_field_checkbox_item_title,UM_TEXTDOMAIN).'</span>';
$output .= '</label>';
@@ -1786,6 +1845,12 @@ class UM_Fields {
}
if( ! empty( $disabled ) ){
foreach( $field_value as $item ){
$output .= $this->disabled_hidden_field( $form_key , $item );
}
}
$output .= '<div class="um-clear"></div>';
$output .= '</div>';
@@ -1841,7 +1906,7 @@ class UM_Fields {
$v = apply_filters('um_field_non_utf8_value', $v );
$output .= '<input type="checkbox" name="'.$key.'[]" value="'.strip_tags( $v ).'" ';
$output .= '<input '.$disabled.' type="checkbox" name="'.$key.'[]" value="'.strip_tags( $v ).'" ';
if ( $this->is_selected($key, $v, $data) ) {
$output.= 'checked';
@@ -1849,6 +1914,11 @@ class UM_Fields {
$output .= ' />';
if( ! empty( $disabled ) && $this->is_selected($key, $v, $data) ){
$output .= $this->disabled_hidden_field( $key.'[]', strip_tags( $v ) );
}
$output .= '<span class="um-field-checkbox-state"><i class="'.$class.'"></i></span>';
$um_field_checkbox_item_title = apply_filters("um_field_checkbox_item_title", $um_field_checkbox_item_title , $key, $v, $data );
$output .= '<span class="um-field-checkbox-option">'. __( $um_field_checkbox_item_title ,UM_TEXTDOMAIN) .'</span>';
@@ -1864,6 +1934,7 @@ class UM_Fields {
$output .= '</div>';
if ( $this->is_error($key) ) {
$output .= $this->field_error( $this->show_error($key) );
}