Menu Close

WooCommerce: Refresh Checkout Upon Any Input Field Change

default

You may be aware that the WooCommerce Checkout page “order review” section reloads/refreshes every time there is a change of address – in this way shipping, taxes and optional fees are properly recalculated and customers are returned with the correct total.

But in case you add custom checkout fields that may cause a difference in pricing, or you want to keep the checkout UX consistent, or you have some other kinds of logic, it may be useful to refresh the order review section after a change on any checkout field. Enjoy!

With the snippet below, I can even let first and last name fields update the WooCommerce Checkout Order Review! You can add as many fields as you like, including custom Billing / Shipping / Account / Order fields.

PHP Snippet: Let Every Billing / Shipping / Account / Order Form Fields Update the WooCommerce Checkout Order Review

/**
 * @snippet       Refresh Checkout Upon Input Field Change
 * @how-to        Get CustomizeWoo.com FREE
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 7
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */

add_filter( 'woocommerce_checkout_fields', 'bbloomer_checkout_fields_trigger_refresh', 9999 );
 
function bbloomer_checkout_fields_trigger_refresh( $fields ) {
   $fields['billing']['billing_company']['class'][] = 'update_totals_on_change';
   
   // ADD AS MANY FIELDS AS YOU LIKE, SAME FORMAT, SEE LIST BELOW
   // E.G. $fields['account']['account_password']['class'][] = 'update_totals_on_change';

   return $fields;
}

Billing Fields

  • billing_first_name
  • billing_last_name
  • billing_company
  • billing_address_1
  • billing_address_2
  • billing_city
  • billing_postcode
  • billing_country
  • billing_state
  • billing_email
  • billing_phone
  • …any custom billing field ID

Shipping Fields

  • shipping_first_name
  • shipping_last_name
  • shipping_company
  • shipping_address_1
  • shipping_address_2
  • shipping_city
  • shipping_postcode
  • shipping_country
  • shipping_state
  • …any custom shipping field ID

Account Fields

  • account_username
  • account_password
  • account_password-2
  • …any custom account field ID

Order Fields

  • order_comments
  • …any custom order field ID
View Source
Posted in WooCommerce Tips