Last active
February 10, 2026 13:14
-
-
Save dpw1/d50b5943e425b9f5c31a65d734e5984f to your computer and use it in GitHub Desktop.
Block certain countries from accessing your Shopify store.
This file contains hidden or 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
| {% comment %} | |
| Country Blocker Section for Shopify | |
| Allows blocking users from specific countries using blocks | |
| HOW TO INSTALL: | |
| Step 1: creating the code | |
| Go to Online Store > Themes > Edit Theme | |
| In the Sections folder, right click and 'new file' | |
| Name it: country-blocker.liquid | |
| Paste this code in there. | |
| Click Save | |
| Step 2: adding it as a section | |
| Find the file:theme.liquid | |
| Find the </head> closing tag (you can press CTRL + F to search for it) | |
| Add this line right before it: | |
| {% section 'country-blocker' %} | |
| Click Save | |
| Step 3: Configure Settings | |
| Go to the customize page | |
| Find "Country Blocker" in the left sidebar, it should be above the Header section | |
| Click Add block to select countries to block. | |
| {% endcomment %} | |
| <div class="country-blocker-section" data-section-id="{{ section.id }}"> | |
| <script> | |
| (function() { | |
| const enabled = {{ section.settings.enabled | json }}; | |
| // Exit early if blocker is disabled | |
| if (!enabled) { | |
| return; | |
| } | |
| // Collect all blocked countries from blocks | |
| const blockedCountries = [ | |
| {%- for block in section.blocks -%} | |
| {%- if block.settings.country != blank -%} | |
| {{ block.settings.country | json }}{% unless forloop.last %},{% endunless %} | |
| {%- endif -%} | |
| {%- endfor -%} | |
| ]; | |
| const redirectUrl = {{ section.settings.redirect_url | json }}; | |
| const showWarning = {{ section.settings.show_warning | json }}; | |
| const warningMessage = {{ section.settings.warning_message | json }}; | |
| const detectionMethod = {{ section.settings.detection_method | json }}; | |
| const redirectDelay = {{ section.settings.redirect_delay | json }}; | |
| // Get final redirect URL (default to Google if not set) | |
| const finalRedirectUrl = redirectUrl || 'https://www.google.com'; | |
| // Function to get user's country using Shopify's country selector | |
| function getShopifyCountry() { | |
| // Try to get country from Shopify's localization object | |
| if (typeof Shopify !== 'undefined' && Shopify.country) { | |
| return Shopify.country; | |
| } | |
| // Fallback: try to get from window.Shopify.Checkout | |
| if (typeof window !== 'undefined' && window.Shopify && window.Shopify.checkout && window.Shopify.checkout.shipping_address) { | |
| return window.Shopify.checkout.shipping_address.country_code; | |
| } | |
| // Another fallback: check if country is in the URL or cookie | |
| const urlParams = new URLSearchParams(window.location.search); | |
| const countryParam = urlParams.get('country'); | |
| if (countryParam) { | |
| return countryParam.toUpperCase(); | |
| } | |
| return null; | |
| } | |
| // Function to detect country via IP geolocation (PRIMARY METHOD) | |
| // This is more reliable as users cannot easily change their IP location | |
| async function detectCountryViaIP() { | |
| // Try multiple IP geolocation services for reliability | |
| const services = [ | |
| { | |
| url: 'https://ipapi.co/json/', | |
| extractCountry: (data) => data.country_code | |
| }, | |
| { | |
| url: 'https://ipwho.is/', | |
| extractCountry: (data) => data.country_code | |
| }, | |
| { | |
| url: 'https://api.country.is/', | |
| extractCountry: (data) => data.country | |
| } | |
| ]; | |
| // Try each service until one works | |
| for (const service of services) { | |
| try { | |
| const response = await fetch(service.url); | |
| if (response.ok) { | |
| const data = await response.json(); | |
| const countryCode = service.extractCountry(data); | |
| if (countryCode) { | |
| console.log('Country detected via IP:', countryCode); | |
| // Store in sessionStorage to avoid repeated API calls | |
| sessionStorage.setItem('user_country_code', countryCode); | |
| return countryCode; | |
| } | |
| } | |
| } catch (error) { | |
| console.log(`Failed to detect country via ${service.url}`); | |
| continue; | |
| } | |
| } | |
| return null; | |
| } | |
| // Check if we already detected the country in this session | |
| function getCachedCountry() { | |
| return sessionStorage.getItem('user_country_code'); | |
| } | |
| // Function to check if country is blocked | |
| function isCountryBlocked(countryCode) { | |
| if (!countryCode || blockedCountries.length === 0) return false; | |
| return blockedCountries.some(blocked => | |
| blocked.trim().toUpperCase() === countryCode.toUpperCase() | |
| ); | |
| } | |
| // Function to show warning by replacing body content | |
| function showWarningByReplacingBody(message) { | |
| let countdownText = ''; | |
| let countdownTimer = null; | |
| // Create countdown text if auto-redirect is enabled | |
| if (redirectDelay > 0) { | |
| countdownText = `<p style="color: #999; font-size: 14px; margin-top: 20px;">Redirecting in <span id="countdown">${redirectDelay}</span> seconds...</p>`; | |
| } | |
| // Replace entire body content | |
| const bodyHTML = ` | |
| <div style=" | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| min-height: 100vh; | |
| background: #f5f5f5; | |
| padding: 20px; | |
| font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; | |
| "> | |
| <div style=" | |
| background: white; | |
| padding: 60px 40px; | |
| border-radius: 12px; | |
| max-width: 600px; | |
| width: 100%; | |
| box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1); | |
| text-align: center; | |
| "> | |
| <div style=" | |
| width: 80px; | |
| height: 80px; | |
| background: #fee; | |
| border-radius: 50%; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| margin: 0 auto 30px; | |
| "> | |
| <svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#e53e3e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> | |
| <circle cx="12" cy="12" r="10"></circle> | |
| <line x1="15" y1="9" x2="9" y2="15"></line> | |
| <line x1="9" y1="9" x2="15" y2="15"></line> | |
| </svg> | |
| </div> | |
| <h1 style=" | |
| margin: 0 0 20px; | |
| color: #1a202c; | |
| font-size: 28px; | |
| font-weight: 600; | |
| ">Access Restricted</h1> | |
| <p style=" | |
| color: #4a5568; | |
| line-height: 1.7; | |
| margin: 0 0 30px; | |
| font-size: 16px; | |
| ">${message}</p> | |
| ${countdownText} | |
| <button onclick="window.location.href='${finalRedirectUrl}'" style=" | |
| background: #2d3748; | |
| color: white; | |
| border: none; | |
| padding: 14px 40px; | |
| border-radius: 6px; | |
| cursor: pointer; | |
| font-size: 16px; | |
| font-weight: 500; | |
| transition: background 0.2s; | |
| " onmouseover="this.style.background='#1a202c'" onmouseout="this.style.background='#2d3748'"> | |
| Continue | |
| </button> | |
| </div> | |
| </div> | |
| `; | |
| document.querySelector('body').innerHTML = bodyHTML; | |
| // Start countdown if auto-redirect is enabled | |
| if (redirectDelay > 0) { | |
| let timeLeft = redirectDelay; | |
| const countdownElement = document.getElementById('countdown'); | |
| countdownTimer = setInterval(() => { | |
| timeLeft--; | |
| if (countdownElement) { | |
| countdownElement.textContent = timeLeft; | |
| } | |
| if (timeLeft <= 0) { | |
| clearInterval(countdownTimer); | |
| window.location.href = finalRedirectUrl; | |
| } | |
| }, 1000); | |
| } | |
| } | |
| // Main function to check and block | |
| async function checkAndBlockCountry() { | |
| let userCountry = null; | |
| if (detectionMethod === 'ip') { | |
| // IP-based detection (recommended) | |
| // First, check if we have a cached country from this session | |
| userCountry = getCachedCountry(); | |
| // If not cached, detect via IP | |
| if (!userCountry) { | |
| userCountry = await detectCountryViaIP(); | |
| } | |
| } else { | |
| // Shopify country selector detection | |
| userCountry = getShopifyCountry(); | |
| } | |
| // Check if country is blocked | |
| if (userCountry && isCountryBlocked(userCountry)) { | |
| if (showWarning) { | |
| // Show warning message by replacing body | |
| showWarningByReplacingBody(warningMessage); | |
| } else { | |
| // Redirect immediately | |
| window.location.href = finalRedirectUrl; | |
| } | |
| } | |
| } | |
| // Run the check when page loads | |
| if (document.readyState === 'loading') { | |
| document.addEventListener('DOMContentLoaded', checkAndBlockCountry); | |
| } else { | |
| checkAndBlockCountry(); | |
| } | |
| })(); | |
| </script> | |
| </div> | |
| {% schema %} | |
| { | |
| "name": "Country Blocker", | |
| "settings": [ | |
| { | |
| "type": "checkbox", | |
| "id": "enabled", | |
| "label": "Enable Country Blocker", | |
| "info": "Turn this on to activate country blocking", | |
| "default": true | |
| }, | |
| { | |
| "type": "paragraph", | |
| "content": "Add country blocks below to select which countries should be blocked from accessing your store." | |
| }, | |
| { | |
| "type": "header", | |
| "content": "Country Detection Method" | |
| }, | |
| { | |
| "type": "select", | |
| "id": "detection_method", | |
| "label": "Detection Method", | |
| "options": [ | |
| { | |
| "value": "ip", | |
| "label": "IP Address (Recommended)" | |
| }, | |
| { | |
| "value": "shopify", | |
| "label": "Shopify Country Selector" | |
| } | |
| ], | |
| "default": "ip" | |
| }, | |
| { | |
| "type": "paragraph", | |
| "content": "IP Address Detection: Detects where visitors are actually located based on their internet connection. This is more secure because users cannot bypass it by simply changing your store's country selector. However, free IP detection services have usage limits (typically a few thousand requests per day)." | |
| }, | |
| { | |
| "type": "paragraph", | |
| "content": "Shopify Country Selector: Uses the country customers choose in your store's country/currency picker. This is easy for customers to bypass - they can simply change the dropdown to access your store from anywhere." | |
| }, | |
| { | |
| "type": "header", | |
| "content": "Blocking Behavior" | |
| }, | |
| { | |
| "type": "checkbox", | |
| "id": "show_warning", | |
| "label": "Show Warning Message", | |
| "info": "If checked, shows a warning message. If unchecked, immediately redirects to the URL below.", | |
| "default": true | |
| }, | |
| { | |
| "type": "textarea", | |
| "id": "warning_message", | |
| "label": "Warning Message", | |
| "info": "Message to display to users from blocked countries", | |
| "default": "We're sorry, but our store is not available in your country at this time. Please contact us for more information." | |
| }, | |
| { | |
| "type": "range", | |
| "id": "redirect_delay", | |
| "min": 0, | |
| "max": 30, | |
| "step": 1, | |
| "unit": "sec", | |
| "label": "Auto-redirect after (seconds)", | |
| "info": "Automatically redirect blocked users after X seconds. Set to 0 to disable auto-redirect (users must click the button).", | |
| "default": 0 | |
| }, | |
| { | |
| "type": "url", | |
| "id": "redirect_url", | |
| "label": "Redirect URL", | |
| "info": "Where to send blocked users. If empty, redirects to Google.com" | |
| } | |
| ], | |
| "blocks": [ | |
| { | |
| "type": "country", | |
| "name": "Blocked Country", | |
| "settings": [ | |
| { | |
| "type": "select", | |
| "id": "country", | |
| "label": "Select Country to Block", | |
| "options": [ | |
| { "value": "", "label": "-- Select a country --" }, | |
| { "value": "AF", "label": "Afghanistan" }, | |
| { "value": "AX", "label": "Åland Islands" }, | |
| { "value": "AL", "label": "Albania" }, | |
| { "value": "DZ", "label": "Algeria" }, | |
| { "value": "AS", "label": "American Samoa" }, | |
| { "value": "AD", "label": "Andorra" }, | |
| { "value": "AO", "label": "Angola" }, | |
| { "value": "AI", "label": "Anguilla" }, | |
| { "value": "AQ", "label": "Antarctica" }, | |
| { "value": "AG", "label": "Antigua and Barbuda" }, | |
| { "value": "AR", "label": "Argentina" }, | |
| { "value": "AM", "label": "Armenia" }, | |
| { "value": "AW", "label": "Aruba" }, | |
| { "value": "AU", "label": "Australia" }, | |
| { "value": "AT", "label": "Austria" }, | |
| { "value": "AZ", "label": "Azerbaijan" }, | |
| { "value": "BS", "label": "Bahamas" }, | |
| { "value": "BH", "label": "Bahrain" }, | |
| { "value": "BD", "label": "Bangladesh" }, | |
| { "value": "BB", "label": "Barbados" }, | |
| { "value": "BY", "label": "Belarus" }, | |
| { "value": "BE", "label": "Belgium" }, | |
| { "value": "BZ", "label": "Belize" }, | |
| { "value": "BJ", "label": "Benin" }, | |
| { "value": "BM", "label": "Bermuda" }, | |
| { "value": "BT", "label": "Bhutan" }, | |
| { "value": "BO", "label": "Bolivia" }, | |
| { "value": "BQ", "label": "Bonaire, Sint Eustatius and Saba" }, | |
| { "value": "BA", "label": "Bosnia and Herzegovina" }, | |
| { "value": "BW", "label": "Botswana" }, | |
| { "value": "BV", "label": "Bouvet Island" }, | |
| { "value": "BR", "label": "Brazil" }, | |
| { "value": "IO", "label": "British Indian Ocean Territory" }, | |
| { "value": "BN", "label": "Brunei Darussalam" }, | |
| { "value": "BG", "label": "Bulgaria" }, | |
| { "value": "BF", "label": "Burkina Faso" }, | |
| { "value": "BI", "label": "Burundi" }, | |
| { "value": "CV", "label": "Cabo Verde" }, | |
| { "value": "KH", "label": "Cambodia" }, | |
| { "value": "CM", "label": "Cameroon" }, | |
| { "value": "CA", "label": "Canada" }, | |
| { "value": "KY", "label": "Cayman Islands" }, | |
| { "value": "CF", "label": "Central African Republic" }, | |
| { "value": "TD", "label": "Chad" }, | |
| { "value": "CL", "label": "Chile" }, | |
| { "value": "CN", "label": "China" }, | |
| { "value": "CX", "label": "Christmas Island" }, | |
| { "value": "CC", "label": "Cocos (Keeling) Islands" }, | |
| { "value": "CO", "label": "Colombia" }, | |
| { "value": "KM", "label": "Comoros" }, | |
| { "value": "CG", "label": "Congo" }, | |
| { "value": "CD", "label": "Congo, Democratic Republic of the" }, | |
| { "value": "CK", "label": "Cook Islands" }, | |
| { "value": "CR", "label": "Costa Rica" }, | |
| { "value": "CI", "label": "Côte d'Ivoire" }, | |
| { "value": "HR", "label": "Croatia" }, | |
| { "value": "CU", "label": "Cuba" }, | |
| { "value": "CW", "label": "Curaçao" }, | |
| { "value": "CY", "label": "Cyprus" }, | |
| { "value": "CZ", "label": "Czechia" }, | |
| { "value": "DK", "label": "Denmark" }, | |
| { "value": "DJ", "label": "Djibouti" }, | |
| { "value": "DM", "label": "Dominica" }, | |
| { "value": "DO", "label": "Dominican Republic" }, | |
| { "value": "EC", "label": "Ecuador" }, | |
| { "value": "EG", "label": "Egypt" }, | |
| { "value": "SV", "label": "El Salvador" }, | |
| { "value": "GQ", "label": "Equatorial Guinea" }, | |
| { "value": "ER", "label": "Eritrea" }, | |
| { "value": "EE", "label": "Estonia" }, | |
| { "value": "SZ", "label": "Eswatini" }, | |
| { "value": "ET", "label": "Ethiopia" }, | |
| { "value": "FK", "label": "Falkland Islands (Malvinas)" }, | |
| { "value": "FO", "label": "Faroe Islands" }, | |
| { "value": "FJ", "label": "Fiji" }, | |
| { "value": "FI", "label": "Finland" }, | |
| { "value": "FR", "label": "France" }, | |
| { "value": "GF", "label": "French Guiana" }, | |
| { "value": "PF", "label": "French Polynesia" }, | |
| { "value": "TF", "label": "French Southern Territories" }, | |
| { "value": "GA", "label": "Gabon" }, | |
| { "value": "GM", "label": "Gambia" }, | |
| { "value": "GE", "label": "Georgia" }, | |
| { "value": "DE", "label": "Germany" }, | |
| { "value": "GH", "label": "Ghana" }, | |
| { "value": "GI", "label": "Gibraltar" }, | |
| { "value": "GR", "label": "Greece" }, | |
| { "value": "GL", "label": "Greenland" }, | |
| { "value": "GD", "label": "Grenada" }, | |
| { "value": "GP", "label": "Guadeloupe" }, | |
| { "value": "GU", "label": "Guam" }, | |
| { "value": "GT", "label": "Guatemala" }, | |
| { "value": "GG", "label": "Guernsey" }, | |
| { "value": "GN", "label": "Guinea" }, | |
| { "value": "GW", "label": "Guinea-Bissau" }, | |
| { "value": "GY", "label": "Guyana" }, | |
| { "value": "HT", "label": "Haiti" }, | |
| { "value": "HM", "label": "Heard Island and McDonald Islands" }, | |
| { "value": "VA", "label": "Holy See" }, | |
| { "value": "HN", "label": "Honduras" }, | |
| { "value": "HK", "label": "Hong Kong" }, | |
| { "value": "HU", "label": "Hungary" }, | |
| { "value": "IS", "label": "Iceland" }, | |
| { "value": "IN", "label": "India" }, | |
| { "value": "ID", "label": "Indonesia" }, | |
| { "value": "IR", "label": "Iran" }, | |
| { "value": "IQ", "label": "Iraq" }, | |
| { "value": "IE", "label": "Ireland" }, | |
| { "value": "IM", "label": "Isle of Man" }, | |
| { "value": "IL", "label": "Israel" }, | |
| { "value": "IT", "label": "Italy" }, | |
| { "value": "JM", "label": "Jamaica" }, | |
| { "value": "JP", "label": "Japan" }, | |
| { "value": "JE", "label": "Jersey" }, | |
| { "value": "JO", "label": "Jordan" }, | |
| { "value": "KZ", "label": "Kazakhstan" }, | |
| { "value": "KE", "label": "Kenya" }, | |
| { "value": "KI", "label": "Kiribati" }, | |
| { "value": "KP", "label": "Korea (North)" }, | |
| { "value": "KR", "label": "Korea (South)" }, | |
| { "value": "KW", "label": "Kuwait" }, | |
| { "value": "KG", "label": "Kyrgyzstan" }, | |
| { "value": "LA", "label": "Lao People's Democratic Republic" }, | |
| { "value": "LV", "label": "Latvia" }, | |
| { "value": "LB", "label": "Lebanon" }, | |
| { "value": "LS", "label": "Lesotho" }, | |
| { "value": "LR", "label": "Liberia" }, | |
| { "value": "LY", "label": "Libya" }, | |
| { "value": "LI", "label": "Liechtenstein" }, | |
| { "value": "LT", "label": "Lithuania" }, | |
| { "value": "LU", "label": "Luxembourg" }, | |
| { "value": "MO", "label": "Macao" }, | |
| { "value": "MG", "label": "Madagascar" }, | |
| { "value": "MW", "label": "Malawi" }, | |
| { "value": "MY", "label": "Malaysia" }, | |
| { "value": "MV", "label": "Maldives" }, | |
| { "value": "ML", "label": "Mali" }, | |
| { "value": "MT", "label": "Malta" }, | |
| { "value": "MH", "label": "Marshall Islands" }, | |
| { "value": "MQ", "label": "Martinique" }, | |
| { "value": "MR", "label": "Mauritania" }, | |
| { "value": "MU", "label": "Mauritius" }, | |
| { "value": "YT", "label": "Mayotte" }, | |
| { "value": "MX", "label": "Mexico" }, | |
| { "value": "FM", "label": "Micronesia" }, | |
| { "value": "MD", "label": "Moldova" }, | |
| { "value": "MC", "label": "Monaco" }, | |
| { "value": "MN", "label": "Mongolia" }, | |
| { "value": "ME", "label": "Montenegro" }, | |
| { "value": "MS", "label": "Montserrat" }, | |
| { "value": "MA", "label": "Morocco" }, | |
| { "value": "MZ", "label": "Mozambique" }, | |
| { "value": "MM", "label": "Myanmar" }, | |
| { "value": "NA", "label": "Namibia" }, | |
| { "value": "NR", "label": "Nauru" }, | |
| { "value": "NP", "label": "Nepal" }, | |
| { "value": "NL", "label": "Netherlands" }, | |
| { "value": "NC", "label": "New Caledonia" }, | |
| { "value": "NZ", "label": "New Zealand" }, | |
| { "value": "NI", "label": "Nicaragua" }, | |
| { "value": "NE", "label": "Niger" }, | |
| { "value": "NG", "label": "Nigeria" }, | |
| { "value": "NU", "label": "Niue" }, | |
| { "value": "NF", "label": "Norfolk Island" }, | |
| { "value": "MK", "label": "North Macedonia" }, | |
| { "value": "MP", "label": "Northern Mariana Islands" }, | |
| { "value": "NO", "label": "Norway" }, | |
| { "value": "OM", "label": "Oman" }, | |
| { "value": "PK", "label": "Pakistan" }, | |
| { "value": "PW", "label": "Palau" }, | |
| { "value": "PS", "label": "Palestine, State of" }, | |
| { "value": "PA", "label": "Panama" }, | |
| { "value": "PG", "label": "Papua New Guinea" }, | |
| { "value": "PY", "label": "Paraguay" }, | |
| { "value": "PE", "label": "Peru" }, | |
| { "value": "PH", "label": "Philippines" }, | |
| { "value": "PN", "label": "Pitcairn" }, | |
| { "value": "PL", "label": "Poland" }, | |
| { "value": "PT", "label": "Portugal" }, | |
| { "value": "PR", "label": "Puerto Rico" }, | |
| { "value": "QA", "label": "Qatar" }, | |
| { "value": "RE", "label": "Réunion" }, | |
| { "value": "RO", "label": "Romania" }, | |
| { "value": "RU", "label": "Russian Federation" }, | |
| { "value": "RW", "label": "Rwanda" }, | |
| { "value": "BL", "label": "Saint Barthélemy" }, | |
| { "value": "SH", "label": "Saint Helena, Ascension and Tristan da Cunha" }, | |
| { "value": "KN", "label": "Saint Kitts and Nevis" }, | |
| { "value": "LC", "label": "Saint Lucia" }, | |
| { "value": "MF", "label": "Saint Martin (French part)" }, | |
| { "value": "PM", "label": "Saint Pierre and Miquelon" }, | |
| { "value": "VC", "label": "Saint Vincent and the Grenadines" }, | |
| { "value": "WS", "label": "Samoa" }, | |
| { "value": "SM", "label": "San Marino" }, | |
| { "value": "ST", "label": "Sao Tome and Principe" }, | |
| { "value": "SA", "label": "Saudi Arabia" }, | |
| { "value": "SN", "label": "Senegal" }, | |
| { "value": "RS", "label": "Serbia" }, | |
| { "value": "SC", "label": "Seychelles" }, | |
| { "value": "SL", "label": "Sierra Leone" }, | |
| { "value": "SG", "label": "Singapore" }, | |
| { "value": "SX", "label": "Sint Maarten (Dutch part)" }, | |
| { "value": "SK", "label": "Slovakia" }, | |
| { "value": "SI", "label": "Slovenia" }, | |
| { "value": "SB", "label": "Solomon Islands" }, | |
| { "value": "SO", "label": "Somalia" }, | |
| { "value": "ZA", "label": "South Africa" }, | |
| { "value": "GS", "label": "South Georgia and the South Sandwich Islands" }, | |
| { "value": "SS", "label": "South Sudan" }, | |
| { "value": "ES", "label": "Spain" }, | |
| { "value": "LK", "label": "Sri Lanka" }, | |
| { "value": "SD", "label": "Sudan" }, | |
| { "value": "SR", "label": "Suriname" }, | |
| { "value": "SJ", "label": "Svalbard and Jan Mayen" }, | |
| { "value": "SE", "label": "Sweden" }, | |
| { "value": "CH", "label": "Switzerland" }, | |
| { "value": "SY", "label": "Syrian Arab Republic" }, | |
| { "value": "TW", "label": "Taiwan" }, | |
| { "value": "TJ", "label": "Tajikistan" }, | |
| { "value": "TZ", "label": "Tanzania" }, | |
| { "value": "TH", "label": "Thailand" }, | |
| { "value": "TL", "label": "Timor-Leste" }, | |
| { "value": "TG", "label": "Togo" }, | |
| { "value": "TK", "label": "Tokelau" }, | |
| { "value": "TO", "label": "Tonga" }, | |
| { "value": "TT", "label": "Trinidad and Tobago" }, | |
| { "value": "TN", "label": "Tunisia" }, | |
| { "value": "TR", "label": "Turkey" }, | |
| { "value": "TM", "label": "Turkmenistan" }, | |
| { "value": "TC", "label": "Turks and Caicos Islands" }, | |
| { "value": "TV", "label": "Tuvalu" }, | |
| { "value": "UG", "label": "Uganda" }, | |
| { "value": "UA", "label": "Ukraine" }, | |
| { "value": "AE", "label": "United Arab Emirates" }, | |
| { "value": "GB", "label": "United Kingdom" }, | |
| { "value": "US", "label": "United States" }, | |
| { "value": "UM", "label": "United States Minor Outlying Islands" }, | |
| { "value": "UY", "label": "Uruguay" }, | |
| { "value": "UZ", "label": "Uzbekistan" }, | |
| { "value": "VU", "label": "Vanuatu" }, | |
| { "value": "VE", "label": "Venezuela" }, | |
| { "value": "VN", "label": "Vietnam" }, | |
| { "value": "VG", "label": "Virgin Islands (British)" }, | |
| { "value": "VI", "label": "Virgin Islands (U.S.)" }, | |
| { "value": "WF", "label": "Wallis and Futuna" }, | |
| { "value": "EH", "label": "Western Sahara" }, | |
| { "value": "YE", "label": "Yemen" }, | |
| { "value": "ZM", "label": "Zambia" }, | |
| { "value": "ZW", "label": "Zimbabwe" } | |
| ], | |
| "default": "" | |
| } | |
| ] | |
| } | |
| ], | |
| "presets": [ | |
| { | |
| "name": "Country Blocker", | |
| "blocks": [ | |
| { | |
| "type": "country", | |
| "settings": { | |
| "country": "BR" | |
| } | |
| }, | |
| { | |
| "type": "country", | |
| "settings": { | |
| "country": "NO" | |
| } | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| {% endschema %} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment