'How can I change the shipping class to flat shipping? (woocommerce)

I'm working on hiding free shipping when there is a fixed price shipping amount based on certain products. This code is working and after certain sum is also disabled. But I want this to work with flat shipping conditional, not post class conditional.

I want it: if ( isset( $rates['flat_rate:1'] ) )

But it works: if ( $values[ 'data' ]->get_shipping_class_id() == $shipping_class_target )

 add_filter( 'woocommerce_package_rates', 'bbloomer_hide_free_shipping_for_shipping_class', 9999, 2 );
   
function bbloomer_hide_free_shipping_for_shipping_class( $rates, $package ) {
   $shipping_class_target = 261; // shipping class ID (to find it, see screenshot below)
   $subtotal = WC()->cart->get_subtotal();
   $in_cart = false;
   foreach ( WC()->cart->get_cart_contents() as $key => $values ) {
      if ( $values[ 'data' ]->get_shipping_class_id() == $shipping_class_target && $subtotal <= 299  ) {
         $in_cart = true;
         break;
      } 
   }
   if ( $in_cart ) {
      unset( $rates['free_shipping:2'] ); // shipping method with ID (to find it, see screenshot below)
   }
   return $rates;
} 


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source