1. ajax надо отправлять не сразу же, а лишь по сабмиту формы
2. ajax обработает location не так, как вам хочется. Он загрузит новую страницу внутрь div
Потому что это одно и то же правило. Срабатывает первое.
Для роутера что 'region', что 'city' - это просто имена переменных, в которые он запишет значение.
Я бы повесил триггер на referral_transaction при переходе в статус "approved", чтобы добавлялась запись в balance_transaction. И суммировал только balance_transaction.
Сравнение entity_id с 5 значениями, post_type - с 12-ю. Итого 60 сравнений на каждую запись! Оптимизатор в реальности сделает меньше сравнений, но все равно это очень неэффективно.
Надо детально разбираться в нюансах и менять бизнес-логику.