| @@ -79,30 +79,34 @@ | ||
| 79 | 79 | * @param array $old_instance The previous instance of values before the update. |
| 80 | 80 | */ |
| 81 | 81 | public function update( $new_instance, $old_instance ) { |
| 82 | 82 | $instance = array(); |
| 83 | + | |
| 83 | 84 | $instance['title'] = isset( $new_instance['title'] ) ? strip_tags( $new_instance['title'] ) : ''; |
| 84 | 85 | |
| 85 | 86 | $fields = ayg_get_editor_fields(); |
| 86 | 87 | |
| 87 | - foreach ( $fields as $section ) { | |
| 88 | - foreach ( $section['fields'] as $field ) { | |
| 89 | - $name = $field['name']; | |
| 88 | + foreach ( $fields as $key => $value ) { | |
| 89 | + foreach ( $value['fields'] as $field ) { | |
| 90 | + $field_name = $field['name']; | |
| 91 | + $field_type = $field['type']; | |
| 90 | 92 | |
| 91 | - if ( 'checkbox' === $field['type'] ) { | |
| 92 | - $instance[ $name ] = ! empty( $new_instance[ $name ] ) ? 1 : 0; | |
| 93 | - } elseif ( ! isset( $new_instance[ $name ] ) ) { | |
| 94 | - continue; | |
| 95 | - } elseif ( 'select' === $field['type'] && isset( $field['options'] ) ) { | |
| 96 | - $raw = sanitize_text_field( $new_instance[ $name ] ); | |
| 97 | - $instance[ $name ] = array_key_exists( $raw, $field['options'] ) ? $raw : sanitize_text_field( $field['value'] ); | |
| 93 | + if ( 'number' == $field_type ) { | |
| 94 | + if ( ! empty( $new_instance[ $field_name ] ) ) { | |
| 95 | + $instance[ $field_name ] = false === strpos( $new_instance[ $field_name ], '.' ) ? (int) $new_instance[ $field_name ] : (float) $new_instance[ $field_name ]; | |
| 96 | + } else { | |
| 97 | + $instance[ $field_name ] = 0; | |
| 98 | + } | |
| 99 | + } elseif ( 'checkbox' == $field_type ) { | |
| 100 | + $instance[ $field_name ] = isset( $new_instance[ $field_name ] ) ? (int) $new_instance[ $field_name ] : 0; | |
| 101 | + } elseif ( 'textarea' == $field_type ) { | |
| 102 | + $instance[ $field_name ] = ! empty( $new_instance[ $field_name ] ) ? sanitize_textarea_field( $new_instance[ $field_name ] ) : ''; | |
| 98 | 103 | } else { |
| 99 | - $sanitize_callback = ! empty( $field['sanitize_callback'] ) ? $field['sanitize_callback'] : 'sanitize_text_field'; | |
| 100 | - $instance[ $name ] = call_user_func( $sanitize_callback, $new_instance[ $name ] ); | |
| 104 | + $instance[ $field_name ] = ! empty( $new_instance[ $field_name ] ) ? sanitize_text_field( $new_instance[ $field_name ] ) : ''; | |
| 101 | 105 | } |
| 102 | 106 | } |
| 103 | 107 | } |
| 104 | - | |
| 108 | + | |
| 105 | 109 | return $instance; |
| 106 | 110 | } |
| 107 | 111 | |
| 108 | 112 | /** |