$current Stored value, returned when $value can't be used. * @return array */ public static function decode_setting( $value, array $current ): array { if ( is_array( $value ) ) { return $value; } if ( ! is_string( $value ) ) { return $current; } $decoded = json_decode( $value, true ); return is_array( $decoded ) ? $decoded : $current; } }