Lo que hice finalmente es agregar ciudades como si fueran países, luego puedo cobrar gasto de envío separado por cada ciudad
Código PHP:
Ver originalfunction add_my_country( $country ) {
$country["C1"] = 'Ciudad 1';
$country["C2"] = 'Ciudad 2';
return $country;
}
add_filter( 'woocommerce_countries', 'add_my_country', 10, 1 );