' . esc_html__( 'Enter some text here', 'your-plugin' ) . '
'; } /** * Number field callback */ function yourprefix_number_field_callback() { $settings = yourprefix_get_settings(); $value = $settings['number_field']; printf( '', esc_attr( $value ) ); echo '' . esc_html__( 'Enter a number between 0 and 100', 'your-plugin' ) . '
'; } /** * Checkbox field callback */ function yourprefix_checkbox_field_callback() { $settings = yourprefix_get_settings(); $value = $settings['checkbox_field']; printf( '', checked( $value, true, false ) ); echo ''; } /** * Select field callback */ function yourprefix_select_field_callback() { $settings = yourprefix_get_settings(); $value = $settings['select_field']; ?> %s', esc_textarea( $value ) ); echo '' . esc_html__( 'Enter some longer text here', 'your-plugin' ) . '
'; } /** * Sanitize settings * * @param array $input Input array. * @return array Sanitized array. */ function yourprefix_sanitize_settings( $input ) { $sanitized = array(); // Text field if ( isset( $input['text_field'] ) ) { $sanitized['text_field'] = sanitize_text_field( $input['text_field'] ); } // Number field if ( isset( $input['number_field'] ) ) { $number = absint( $input['number_field'] ); // Validate range if ( $number < 0 || $number > 100 ) { add_settings_error( 'yourprefix_messages', 'yourprefix_message', __( 'Number must be between 0 and 100', 'your-plugin' ), 'error' ); $sanitized['number_field'] = 0; } else { $sanitized['number_field'] = $number; } } // Checkbox field if ( isset( $input['checkbox_field'] ) ) { $sanitized['checkbox_field'] = true; } else { $sanitized['checkbox_field'] = false; } // Select field if ( isset( $input['select_field'] ) ) { $allowed_values = array( 'option1', 'option2', 'option3' ); $select_value = sanitize_text_field( $input['select_field'] ); // Validate against allowed values if ( in_array( $select_value, $allowed_values, true ) ) { $sanitized['select_field'] = $select_value; } else { $sanitized['select_field'] = ''; } } // Textarea field if ( isset( $input['textarea_field'] ) ) { $sanitized['textarea_field'] = sanitize_textarea_field( $input['textarea_field'] ); } return $sanitized; } /** * Get a specific setting value * * @param string $key Setting key. * @param mixed $default Default value. * @return mixed Setting value or default. */ function yourprefix_get_setting( $key, $default = '' ) { $settings = yourprefix_get_settings(); return isset( $settings[ $key ] ) ? $settings[ $key ] : $default; }