true, ); } public static function get() { $saved = get_option( self::OPTION_KEY, array() ); $settings = wp_parse_args( is_array( $saved ) ? $saved : array(), self::defaults() ); return $settings; } /** * Gespeicherte Schluessel, die diese Variante nicht kennt (die * PRO-Einstellungen, wenn gerade FREE laeuft), bleiben beim Speichern * unangetastet -- sonst gingen sie bei einem Wechsel von PRO auf FREE mit * dem ersten Speichern verloren. */ public static function save( array $input ) { $defaults = self::defaults(); // Default-true-Checkbox: ein fehlender Eingabe-Schluessel (z. B. eine // wirklich frische Installation) muss beim Default true bleiben statt // stillschweigend auf false zu kippen -- deshalb array_key_exists() // statt nur !empty(). $out = array( 'anonymize_comment_ips' => array_key_exists( 'anonymize_comment_ips', $input ) ? ! empty( $input['anonymize_comment_ips'] ) : $defaults['anonymize_comment_ips'], ); $stored = get_option( self::OPTION_KEY, array() ); $unknown = is_array( $stored ) ? array_diff_key( $stored, $out ) : array(); update_option( self::OPTION_KEY, array_merge( $unknown, $out ) ); return $out; } }