Checking for the country is quite simple as that is a text value:
select *
from orders
where info::jsonb -> 'countries' ? 'US'
Adding the condition for the integer value is a bit more complicated because the ? operator only works with strings. So you need to unnest the array:
select o.*
from orders o
where o.info::Jsonb -> 'countries' ? 'US'
and exists (select *
from json_array_elements_text(o.info -> 'interestedIn') as x(id)
where x.id in ('11','12'));
If you also might need to check for multiple country values, you can use the ?| operator:
select o.*
from orders o
where o.info::jsonb -> 'countries' ?| array['US', 'UK']
and exists (select *
from json_array_elements_text(o.info -> 'interestedIn') as x(id)
where x.id in ('11','12'));
Online example: https://rextester.com/GSDTOH43863
jsonbis preferred overjson