# quickwebp/2.0.0/admin/components/select.php

QuickWebP – WebP &amp; AVIF Image Optimizer, Compression &amp; SEO for WordPress, version 2.0.0. 35 lines.

- Page: https://pluginprobe.com/plugins/quickwebp/2.0.0/code/admin/components/select.php
- Raw: https://pluginprobe.com/plugins/quickwebp/2.0.0/raw/admin/components/select.php
- Modified: 2023-02-10T18:52:10+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/quickwebp/2.0.0/code/admin/components/select.php#L10-L20`.

```php
<?php 
/**
 * Select component for the settings page
 */

$key_option = sanitize_key( $data['name'] );

if( isset( $key_option, $_POST[ $key_option ] ) ) {
    update_option( $key_option, sanitize_text_field( $_POST[ $key_option ] ) );
}
if(isset($data['options']) && is_array($data['options'])) {
    ?>
    <select 
        name="<?php echo esc_attr( $key_option ?? '' ); ?>"
        id="<?php echo esc_attr( $key_option ?? '' ); ?>"
    >
        <option value="">
            <?php echo esc_html( $data['placeholder'] ?? __( 'Select an option', QUICKWEBP_TEXT_DOMAIN ) ); ?>
        </option>
        <?php
        $option_saved = get_option( $key_option );
        foreach( $data['options'] as $option ) {
            ?>
            <option 
                value="<?php echo esc_attr( $option['value'] ?? '' ); ?>"
                <?php selected( $option['value'], $option_saved ); ?>
            >
                <?php echo esc_html( $option['label'] ?? '' ); ?>
            </option>
            <?php
        }
        ?>
    </select>
    <?php
}
```
