Ой, случайно раньше написания полного ответа отправил. В общем, на вордпрессе недавно делал, суть простая, проверяем в PHP значение куки вот так и записываем в какую-то переменную подходящее значение на основе значения куки. Ничего сложного.
$default_phone = get_theme_mod('phone_default');
$moscow_phone = get_theme_mod('phone_moscow');
$spb_phone = get_theme_mod('phone_spb');
$voronezh_phone = get_theme_mod('phone_voronezh');
$user_region = in_array('uLocation', $_COOKIE) ? $_COOKIE['uLocation'] : null;
$active_phone = null;
if ($user_region) {
if ($user_region === 'Москва' && $moscow_phone) $active_phone = $moscow_phone;
else if ($user_region === 'Санкт-Петербург' && $spb_phone) $active_phone = $spb_phone;
else if ($user_region === 'Воронежская' && $voronezh_phone) $active_phone = $voronezh_phone;
else $active_phone = $default_phone;
} else {
$active_phone = $default_phone;
}
В плане скрипта который создает куку, у меня пара проверок, по IP была проверка города и установка региона с помощью DDATA, в вашем случае, как я понял, всё проще, но суть такая, записываете куку, но не забывайте о проверках, что она уже установлена, чтобы не грузить лишний раз. В примере ниже просто ставится кука по имени/значению + expires для даты чтобы раз в неделю сбрасывалась. Можете обойтись и без этого. Вот:
const cookieName = 'uLocation';
const addCookie = (cookieVal) =>
document.cookie = `${cookieName}=${cookieVal.trim()}; expires=${new Date(new Date().getTime() + 3600 * 1000 * 24 * 7).toUTCString()}`;