This is a Developer level doc. If you are unfamiliar with code/templates and resolving potential conflicts, select a WooExpert or Developer for assistance. We are unable to provide support for customizations under our Support Policy.
functions.php
file or via a plugin that allows custom functions to be added, such as the Code snippets plugin. Avoid adding custom code directly to your parent theme’s functions.php
file as this will be wiped entirely when you update the theme.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Change the default state and country on the checkout page | |
*/ | |
add_filter( 'default_checkout_billing_country', 'change_default_checkout_country' ); | |
add_filter( 'default_checkout_billing_state', 'change_default_checkout_state' ); | |
function change_default_checkout_country() { | |
return 'XX'; // country code | |
} | |
function change_default_checkout_state() { | |
return 'XX'; // state code | |
} |
default_checkout_billing_country
filter affects both existing and non-existing users. If you want to only change the default for non-existing users, then you can use this:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Change the default country on the checkout for non-existing users only | |
*/ | |
add_filter( 'default_checkout_billing_country', 'change_default_checkout_country', 10, 1 ); | |
function change_default_checkout_country( $country ) { | |
// If the user already exists, don't override country | |
if ( WC()->customer->get_is_paying_customer() ) { | |
return $country; | |
} | |
return 'DE'; // Override default to Germany (an example) | |
} |