Sort posts by meta value with get method

You’re not actually using the $_GET['orderby']-value anywhere. What you’re doing in your code is ordering by the text_date-meta value, always. If you want to order by date by default, and when $_GET['orderby'] is set to default orderby-values or if $_GET['orderby_meta'] is set, order by those instead you need to do something like this:

if (isset($_GET['orderby']){
    $query->set('orderby', sanitize_key($_GET['orderby']);  
    $query->set('order', 'DESC'); 
} else if (isset($_GET['orderby_meta']){
    $query->set('orderby',  'meta_value_num');  
    $query->set('meta_key', 'text_date');
    $query->set('order', 'DESC'); 
}