title: Refresh shipping rates on city select field
body: <p>I am trying to update/refresh the shipping rates on city change, so far I have managed to do so only by refreshing the page manually.</p>
  <pre><code>add_action( 'woocommerce_package_rates', 'check_minimum_and_city', 10, 2 );
  function check_minimum_and_city($rates, $package){
      $selected_city = WC()-&gt;checkout-&gt;get_value('billing_city');
      $price_thirty = array('bat-yam','hulon','azur','tel-aviv-yafo','givatayim','ramat-gan','bnei-brak','rishon-letzion','netaim','yavne','kfar-nagid','galiya','ben-zakai','beit-gamliel');
      $price_fifty = array('einot','gan-shlomo','beit-oved','aseret','givat-brener','irus','misgav-dov','givton','kerem-yavne','beit-raban','rehovot','beit-elezri','beit-hanan','kvuzat-yavne','kfar-bilu','bnei-darom','nir-galim','kiryat-ekron','gedera','nes-tziona','kanot','gan-darom','netayim','mishmar-hashiva','gan-sorek','beit-dagan','ganot','beit-hanan-irus','hemed');
      $price_sixty = array('savion','ganei-tikva','or-yehuda','kiryat-ono','yehud','petah-tikva','ramat-hasharon','herzliya','kfar-shmariyahu','rishpon','raanana','kfar-saba','tsafria','beer-yaakov','netser-sireni','nir-tzvi','ramla','matsliax','bnaya','kfar-aviv');
      if(WC()-&gt;session-&gt;get( 'chosen_shipping_methods' )[0] == 'local_pickup:13'){            
          $minimum = 0;       
      }else{      
          $minimum_thirty = 100;
          $minimum_fifty = 150;
          $minimum_sixty = 200;
          if(in_array($selected_city, $price_thirty)){
              unset( $rates['flat_rate:18']);
              unset( $rates['flat_rate:19']);
              if(WC()-&gt;cart-&gt;subtotal &lt; $minimum_thirty){
                  throw new Exception( 
                      sprintf( 'סכום ההזמנה הנוכחית שלך עומד על %s, מינימום הזמנה לפני משלוח הינו %s.' , 
                          wc_price( WC()-&gt;cart-&gt;subtotal ),
                          wc_price( $minimum_thirty )
                      )
                  );  
              }           
          }elseif(in_array($selected_city, $price_fifty)){
              unset( $rates['flat_rate:9']);
              unset( $rates['flat_rate:19']);
              if(WC()-&gt;cart-&gt;subtotal &lt; $minimum_fifty){
                  throw new Exception( 
                      sprintf( 'סכום ההזמנה הנוכחית שלך עומד על %s, מינימום הזמנה לפני משלוח הינו %s.' , 
                          wc_price( WC()-&gt;cart-&gt;subtotal ),
                          wc_price( $minimum_fifty )
                      )
                  );
              }
          }elseif(in_array($selected_city, $price_sixty)){
              unset( $rates['flat_rate:9']);
              unset( $rates['flat_rate:18']);
              if(WC()-&gt;cart-&gt;subtotal &lt; $minimum_sixty){
                  throw new Exception( 
                      sprintf( 'סכום ההזמנה הנוכחית שלך עומד על %s, מינימום הזמנה לפני משלוח הינו %s.' , 
                          wc_price( WC()-&gt;cart-&gt;subtotal ),
                          wc_price( $minimum_sixty )
                      )
                  );
              }
          }       
          return $rates;
      }   
  }
  </code></pre>
  <p>When I select a city field (dropdown custom list) I get the shipping cost I have made through the woocommerce settings but when I change it it does not update the rates.</p>
  <pre><code>add_filter( 'woocommerce_checkout_fields', 'city_dropdown_field' );
  function city_dropdown_field( $fields ) {
  
      $city_args = wp_parse_args( array(
          'type' =&gt; 'select',
          'options' =&gt; array(
              ''                  =&gt; '',
              'yavne'             =&gt; 'יבנה',
              'kfar-nagid'        =&gt; 'כפר הנגיד',
              'galiya'            =&gt; 'גאליה',
              'ben-zakai'         =&gt; 'בן זכאי',
              'beit-gamliel'      =&gt; 'בית גמליאל',
              'bnaya'             =&gt; 'בניה',
              'einot'             =&gt; 'עינות',
              'kfar-aviv'         =&gt; 'כפר אביב',
              'gan-shlomo'        =&gt; 'גן שלמה',
              'beit-oved'         =&gt; 'בית עובד',
              'aseret'            =&gt; 'עשרת',
              'givat-brener'      =&gt; 'גבעת ברנר',
              'irus'              =&gt; 'אירוס',
              'misgav-dov'        =&gt; 'משגב דב',
              'givton'            =&gt; 'גיבתון',
              'kerem-yavne'       =&gt; 'כרם יבנה',
              'beit-raban'        =&gt; 'בית רבן',
              'rehovot'           =&gt; 'רחובות',
              'beit-elezri'       =&gt; 'בית אלעזרי',
              'beit-hanan'        =&gt; 'בית חנן',
              'kvuzat-yavne'      =&gt; 'קבוצת יבנה',
              'kfar-bilu'         =&gt; 'כפר בילו',
              'bnei-darom'        =&gt; 'בני דרום',
              'nir-galim'         =&gt; 'ניר גלים',
              'kiryat-ekron'      =&gt; 'קרית עקרון',
              'gedera'            =&gt; 'גדרה',
              'nes-tziona'        =&gt; 'נס ציונה',
              'kanot'             =&gt; 'כנות',
              'netayim'           =&gt; 'נטעים',
              'gan-darom'         =&gt; 'גן דרום',
              'givatayim'         =&gt; 'גבעתיים',
              'ramat-gan'         =&gt; 'רמת גן',
              'tel-aviv-yafo'     =&gt; 'תל אביב - יפו',
              'bnei-brak'         =&gt; 'בני ברק',
              'ramat-hasharon'    =&gt; 'רמת השרון',
              'herzliya'          =&gt; 'הרצליה',
              'kfar-shmariyahu'   =&gt; 'כפר שמריהו',
              'rishpon'           =&gt; 'רישפון',
              'raanana'           =&gt; 'רעננה',
              'kfar-saba'         =&gt; 'כפר סבא',
              'bat-yam'           =&gt; 'בת ים',
              'hulon'             =&gt; 'חולון',
              'azur'              =&gt; 'אזור',
              'savion'            =&gt; 'סביון',
              'ganei-tikva'       =&gt; 'גני תקווה',
              'or-yehuda'         =&gt; 'אור יהודה',
              'kiryat-ono'        =&gt; 'קרית אונו',
              'yehud'             =&gt; 'יהוד',
              'petah-tikva'       =&gt; 'פתח תקווה',
              'rishon-letzion'    =&gt; 'ראשון לציון',
              'mishmar-hashiva'   =&gt; 'משמר השבעה',
              'gan-sorek'         =&gt; 'גן שורק',
              'beit-dagan'        =&gt; 'בית דגן',
              'ganot'             =&gt; 'גנות',
              'beit-hanan-irus'   =&gt; 'בית חנן אירוס',
              'hemed'             =&gt; 'חמד',
              'tsafria'           =&gt; 'צפריה',
              'beer-yaakov'       =&gt; 'באר יעקב',
              'netser-sireni'     =&gt; 'נצר סירני',
              'nir-tzvi'          =&gt; 'ניר צבי',
              'ramla'             =&gt; 'רמלה',
              'matsliax'          =&gt; 'מצליח',
              'clear'             =&gt; true 
          ),
      ), $fields['shipping']['shipping_city'] );
  
      $fields['shipping']['shipping_city'] = $city_args;
      $fields['billing']['billing_city'] = $city_args;
  
      return $fields;
  
  }
  </code></pre>
  <p>Tried using this jQuery but nothing does the work</p>
  <pre><code>add_action( 'wp_footer', 'checkout_shipping_city_refresh_display' );
  function checkout_shipping_city_refresh_display() {
      // On checkout
      if ( is_checkout() &amp;&amp; ! is_wc_endpoint_url() ) :
      ?&gt;&lt;script type=&quot;text/javascript&quot;&gt;
      jQuery( function($){
          // Shipping fias code change &amp; input events
          $(document.body).on( 'change', 'select[name=billing_city]', function() {
              console.log($(this).val());
          });
      });
      &lt;/script&gt;
      &lt;?php
      endif;
  }
  </code></pre>
  <p>Help is appreciated. :-)</p>