@user1752759b
Your code can works fine if you change from:
if (isset($_SESSION['orderby'])) {
switch ($_SESSION['orderby']) :
to:
$orderby_value = isset( $_GET['orderby'] ) ? woocommerce_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );
switch ($orderby_value) :