Spanish soccer’s LaLiga has cleared a major hurdle in its bid to stage a game in the US, after the Spanish Football Federation (RFEF) approved a request for Barcelona and Villarreal to play their December fixture in Miami.
The RFEF gave the go-ahead on 11th August for the match to be played at the Hard Rock Stadium in Miami Gardens. European governing body Uefa will now be asked to initiate the procedures for global governing body Fifa to grant authorisation for the fixture change.
If approved, it would be the first time a European soccer top-flight league game has taken place in the US.
The Athletic had reported that LaLiga had held preliminary discussions to relocate the fixture, which is currently due to take place at Villarreal’s Estadio de la Ceramica, and hold it at Hard Rock Stadium.
The Barca versus Villarreal clash is scheduled for the weekend of 20 th to 21 st December. However, the National Football League’s ( NFL ) Miami Dolphins are due to play a game on 21 st December, meaning the actual date of the LaLiga match may be moved.
Any competitive fixture being staged abroad requires approval from each domestic federation – in this case the RFEF and the United States Soccer Federation (USSF) – alongside each of the relevant continental-wide confederations (Uefa and Concacaf ).
An agreement would also need to be reached on how LaLiga shares the proceeds and profits from any game played overseas across the division, ensuring that the benefits extend beyond just the participating teams.
LaLiga president Javier Tebas has been open about taking LaLiga games to the US, saying it would strengthen the league’s position in the North American market – its second biggest outside of Spain.
Barca president Joan Laporta also recently said that the club is “open” and “available” to play a league match in the States.
LaLiga had hoped to take an official game between Barca and Atletico Madrid to Miami last December. Plans were also made to stage a LaLiga match between Barca and Girona in Miami in January 2019, but the proposal was scrapped amid opposition from the RFEF and players’ union (AFE).
Since then, relations between LaLiga and RFEF have improved. The possibility of playing domestic league games abroad has also increased after a legal settlement involving Fifa and the Relevent Sports agency in April 2024 .
As part of the settlement with Relevent, which wants to bring games form major European soccer competitions to the US, Fifa will now consider changing a longstanding policy that prevents national league matches from being held in another country.
Hard Rock Stadium in Miami was one of 12 different venues used for this summer’s revamped Fifa Club World Cup. LaLiga was represented at the tournament by Atletico and Real. However, Los Blancos have reportedly expressed internal opposition to taking a league game to the States.
LaLiga is not the only major European soccer league exploring an overseas matchup. In May , it was reported that Italy’s Serie A was interested in staging a league game in the Australian city of Perth as early as the 2025/26 season.
The Premier League , meanwhile, said early this year that it had no plans to play competitive fixtures overseas.
Get access to richer content, exclusive reports, unparalleled business intelligence, and community benefits to help you navigate the next frontier of sport and make more informed decisions with a SportsPro+ Premium membership. Discover more here .
Already a member? Log in here \r\n\r\n \r\n \r\n This content is only available for SportsPro+ paying members. \r\n Enjoy unrestricted access to the ultimate sports business hub today.\u00a0 \r\n Find out more \r\n\r\n \r\n \r\n This content is only available for SportsPro+ Essential members. \r\n You can upgrade your access here \r\n Find out more \r\n\r\n "},"wk_auth_migrated_users":false,"wk_content_key_prefix":"","wk_auth_allow_empty_pass":false,"wk_auth_migrated_users_text":" We have upgraded our membership system \r\nPlease check your mailbox for a secure link to sign in and set up a new password. \r\nIf you have any questions or need help, please email info@wallkit.com ","skip_lorem":false,"parse_scripts":true,"inline_modals_selector":"#wk-inline-popup-modal","wk_modal_after_sign_in":"account-settings","wk_my_account_page_url":null}}; let wkTranslations = window["wallkitTranslations"] || {"sign_in":"Sign in","my_account":"My Account"}; !function (t, e, c, n) { var s = e.createElement(c); s.async = 1, s.src = 'https://scripts.claspo.io/scripts/' + n + '.js'; var r = e.scripts[0]; r.parentNode.insertBefore(s, r); var f = function () { f.c(arguments); }; f.q = []; f.c = function () { f.q.push(arguments); }; t['claspo'] = t['claspo'] || f; }(window, document, 'script', '2F3E461D433C48E8B7053833272B0D8D'); claspo('init'); // Hide the theme-injected logo on the Sign In form (client request). // The theme (wallkit.min.js) prepends this on "wk-event-modals-ready"; hide it here. (function () { var style = document.createElement('style'); style.textContent = '#auth-modal-content .wk-form-login .wk-form-header .wk-form-header__logo{display:none!important}'; (document.head || document.documentElement).appendChild(style); })(); // NOTE: This file now handles ONLY base registration (no purchase/checkout flow). // Soft diagnostics: log when page navigates away to detect unexpected reloads function _wkGetPopupState() { var hasWk = !!window.wk; var isOpened = false; var currentFrame = null; try { if (hasWk && window.wk.popup) { if (typeof window.wk.popup.isOpened === 'function') isOpened = window.wk.popup.isOpened(); if (window.wk.popup.modalFrame && typeof window.wk.popup.modalFrame.currentFrameName !== 'undefined') { currentFrame = window.wk.popup.modalFrame.currentFrameName; } } } catch (_) {} return { hasWk: hasWk, isOpened: isOpened, currentFrame: currentFrame, lastRoute: window._wkLastRoute, pendingSub: window._wkPendingSubscriptionId }; } function _wkLogNavEvent(type) { try { var state = _wkGetPopupState(); console.log('[WK-Glue:Diag] nav-event', { type: type, visibility: (document && document.visibilityState), state: state }); } catch (_) {} } function _wkBindOverlayCloseBlocker() { try { if (window.__wkOverlayCloseBlockerBound) return; window.__wkOverlayCloseBlockerBound = true; document.addEventListener('click', (event) => { try { const target = event && event.target; if (!target) return; const isOverlayClick = (target.id === 'wk-modal-wrapper') || (target.classList && target.classList.contains('wallkit-modal-wrapper')); if (!isOverlayClick) return; const frameName = window.wk?.popup?.modalFrame?.currentFrameName; if (frameName === 'second-step-signup') { event.stopImmediatePropagation(); } } catch (_) {} }, true); } catch (_) {} } try { window.addEventListener('pagehide', function(){ _wkLogNavEvent('pagehide'); }, true); } catch(_) {} try { window.addEventListener('beforeunload', function(){ _wkLogNavEvent('beforeunload'); }, true); } catch(_) {} try { window.addEventListener('visibilitychange', function(){ if (document && document.visibilityState === 'hidden') _wkLogNavEvent('visibilitychange-hidden'); }, true); } catch(_) {} const addSignUpButton = () => { const footer = document.querySelector('.wk-form-login .wk-form__sub-footer'); if (footer && !footer.querySelector('.wk-form__footer-sign-up')) { footer.insertAdjacentHTML( 'afterbegin', ' Sign Up ' ); } }; // (Removed checkout opener helpers) // Logo intentionally not added to the Sign Up form (client request). // The original implementation is kept below (commented) in case it needs to be restored. const addSignupHeaderLogo = () => {}; // const addSignupHeaderLogo = () => { // const header = document.querySelector('.wk-form-signup .wk-form-header'); // if (header && !header.querySelector('.wk-form-header__logo')) { // header.insertAdjacentHTML( // 'afterbegin', // ' ' // ); // } // }; const addSignupHeaderTitle = () => { const header = document.querySelector('.wk-form-signup .wk-form-header'); if (!header) return; addSignupHeaderLogo(); if (!header.querySelector('h3.wk-form-header__title.step')) { const logo = header.querySelector('.wk-form-header__logo'); if (logo) { logo.insertAdjacentHTML('afterend', ' Step 1 '); } else { header.insertAdjacentHTML('afterbegin', ' Step 1 '); } } }; const addForgotHeaderLogo = () => { const header = document.querySelector('.wk-form-forgot-password .wk-form-header'); if (header && !header.querySelector('.wk-form-header__logo')) { header.insertAdjacentHTML( 'afterbegin', ' ' ); } }; const hideLoginFooterParagraph = () => { const nodes = document.querySelectorAll('.wk-form-login .wk-form-footer p.mt-3'); nodes.forEach((el) => { el.style.display = 'none'; }); }; //Show second step signup function openSecondStepSignup() { let tries = 0; const maxTries = 20; const tryInterval = setInterval(() => { tries++; const popup = window.wk && window.wk.popup; if (!popup) { if (tries >= maxTries) { clearInterval(tryInterval); } return; } try { if (typeof popup.isOpened === 'function' && !popup.isOpened()) { if (typeof popup.open === 'function') { popup.open('second-step-signup'); } } else { if (typeof popup.route === 'function') { popup.route('second-step-signup'); } else if (typeof window.wk.modal === 'function') { window.wk.modal('second-step-signup'); } else if (typeof popup.open === 'function') { popup.open('second-step-signup'); } } clearInterval(tryInterval); } catch (e) { if (tries >= maxTries) { clearInterval(tryInterval); } } }, 100); } // Top-level redirect helper reused by login and post-registration flows function checkAndRedirect() { const body = document.querySelector('body'); if (!body) return; const statusUser = body.getAttribute('data-wk-call-status-user'); const statusPlans = body.getAttribute('data-wk-call-status-plans'); console.log('Checking redirect conditions:', { statusUser, statusPlans }); // Do NOT redirect on membership page; let page-level flow handle UI/modals try { const isMembership = (window.location && window.location.pathname && window.location.pathname.indexOf('/membership') !== -1); if (isMembership) { console.log('[WK-Glue] On membership page: skip redirects after login'); updateMyAccountLink(); return; } } catch(_) {} if (statusUser === 'authorized') { if (statusPlans === 'sp-plus-free' || statusPlans === 'expired') { console.log('Redirecting to /account/my-sportspro'); window.location.href = '/account/my-sportspro'; } else if (statusPlans === 'essential') { console.log('Redirecting to /account/my-sportspro-plus-ca'); window.location.href = '/account/my-sportspro-plus-ca'; } else if (statusPlans === 'executive' || statusPlans === 'sp-community' || statusPlans === 'sp-plus-premium-sportspro-access-free' || statusPlans === 'student' ) { console.log('Redirecting to /account/my-sportspro-plus-bi'); window.location.href = '/account/my-sportspro-plus-bi'; } else { console.log('No redirect conditions met:', { statusUser, statusPlans }); updateMyAccountLink(); } } else { console.log('User not authorized, no redirect performed:', { statusUser, statusPlans }); updateMyAccountLink(); } } function updateMyAccountLink() { const body = document.querySelector('body'); if (!body) return; try { console.log('[updateMyAccountLink] called'); } catch(e) {} const links = document.querySelectorAll('.nav-login-register a.wk–sign-in'); if (!links || links.length === 0) { try { console.log('[updateMyAccountLink] link not found'); } catch(e) {} return; } const statusUser = body.getAttribute('data-wk-call-status-user'); const statusPlans = body.getAttribute('data-wk-call-status-plans'); try { console.log('[updateMyAccountLink] attributes:', { statusUser, statusPlans }); } catch(e) {} updateMyAccountLink.__tries = (updateMyAccountLink.__tries || 0); if (!statusUser || (statusUser === 'authorized' && !statusPlans)) { if (updateMyAccountLink.__tries { linkEl.textContent = label; try { linkEl.innerText = label; } catch(e) {} try { console.log(`[updateMyAccountLink] label applied to link #${idx+1}`); } catch(e) {} }); const bodyObserver = new MutationObserver((mutations) => { mutations.forEach((mutation) => { if (mutation.type === 'attributes' && ['data-wk-call-status-user', 'data-wk-call-status-plans'].includes(mutation.attributeName)) { try { console.log('[updateMyAccountLink] attribute changed:', mutation.attributeName, '=>', body.getAttribute(mutation.attributeName)); } catch(e) {} updateMyAccountLink(); } }); }); bodyObserver.observe(body, { attributes: true, attributeFilter: ['data-wk-call-status-user', 'data-wk-call-status-plans'] }); try { console.log('[updateMyAccountLink] observer started (15s)'); } catch(e) {} setTimeout(() => { bodyObserver.disconnect(); try { console.log('[updateMyAccountLink] observer disconnected'); } catch(e) {} }, 5000); } (function() { if (document.body.classList.contains('tax-sectors')) { if (typeof wallkitPostData === 'undefined' || (Array.isArray(wallkitPostData) && wallkitPostData.length === 0)) { var bodyClass = document.body.className; var match = bodyClass.match(/term-(\d+)/); if (match) { var termId = match[1]; // Searching h2.elementor-heading-title var heading = document.querySelector('.elementor-element-567f31e h2.elementor-heading-title'); var title = heading ? heading.innerText.trim() : null; console.log("🔍 Check title:", title ? title : "❌Not found title!"); if (!title) { console.warn("⚠️ Element .elementor-element-567f31e h2.elementor-heading-title not found."); return; } wallkitPostData = { data: { id: termId, title: title, type: 'tax_sectors_media_child' }, config: { check_post: true, show_blur: true } }; console.log("✅ WallkitPostData patched:", wallkitPostData); } } } })(); window.addEventListener('DOMContentLoaded', (event) => { addSignUpButton(); addSignupHeaderLogo(); addSignupHeaderTitle(); addForgotHeaderLogo(); appendPremiumGate(); _wkBindOverlayCloseBlocker(); // Mark that user explicitly started base registration via account-settings or paywall CTA click (works site-wide) try { const baseRegSelectorVariants = [ '.nav-login-register wk–sign-in', // en-dash variant '.nav-login-register .wk–sign-in', // hyphen variant '.wk–sign-up', // en-dash paywall CTA (Become a Member) '.wk-sign-up', // hyphen paywall CTA '.wk–plans', // en-dash paywall CTA (Find out more) '.wk-plans' // hyphen paywall CTA ]; document.addEventListener('click', (e) => { try { const target = e.target; if (!target) return; const el = target.closest ? target.closest(baseRegSelectorVariants.join(',')) : null; if (el) { window.__wkBaseRegClickAt = Date.now(); window.__wkBaseRegClick = true; console.log('[WK-Glue] Base registration click detected (account-settings/paywall)'); } } catch(_) {} }, true); } catch(_) {} // Intercept a click on the login button: if the user is authorized, redirect as planned; otherwise, leave the button alone. try { document.addEventListener('click', (e) => { try { const target = e.target; if (!target || !target.closest) return; const link = target.closest('.nav-login-register a.wk–sign-in'); if (!link) return; const body = document.querySelector('body'); if (!body) return; const statusUser = body.getAttribute('data-wk-call-status-user'); const statusPlans = body.getAttribute('data-wk-call-status-plans'); if (statusUser === 'authorized') { e.preventDefault(); e.stopPropagation(); if (statusPlans === 'sp-plus-free' || statusPlans === 'expired') { console.log('Redirecting to /account/my-sportspro'); window.location.href = '/account/my-sportspro'; } else if (statusPlans === 'essential') { console.log('Redirecting to /account/my-sportspro-plus-ca'); window.location.href = '/account/my-sportspro-plus-ca'; } else if ( statusPlans === 'executive' || statusPlans === 'sp-community' || statusPlans === 'sp-plus-premium-sportspro-access-free' || statusPlans === 'student' ) { console.log('Redirecting to /account/my-sportspro-plus-bi'); window.location.href = '/account/my-sportspro-plus-bi'; } else { console.log('No redirect conditions met:', { statusUser, statusPlans }); updateMyAccountLink(); } } // If it's a guest, we do nothing, let the button open the modal/execute the default } catch(_) {} }, true); } catch(_) {} window.wk = window.wk || []; window.wk.push(['ready', (params) => { console.log('wk ready'); _wkBindOverlayCloseBlocker(); insertPaywallContent(); // insertWirePaywallContent(); addSignUpButton(); addSignupHeaderLogo(); addSignupHeaderTitle(); addForgotHeaderLogo(); hideLoginFooterParagraph(); updateMyAccountLink(); appendPremiumGate(); // (Purchase buttons binding removed) window.wk.on('success-auth', function ({register}) { updateMyAccountLink(); console.log('success-auth event triggered, register:', register); // insertWirePaywallContent(); // Suppress only if checkout is already opened (to avoid routing away from checkout) if (window._wkCheckoutOpened) { try { console.log('[WK-Glue] success-auth suppressed (checkout already opened)'); } catch(_) {} let properties = {}; if (register) { properties.wk_register = register; } gaSendEvent('wk-auth-success', properties, true); return; } let properties = {}; // Open Step 2 only if user explicitly clicked account-settings (site-wide) let wantStep2 = false; try { const clicked = !!window.__wkBaseRegClick; const ts = window.__wkBaseRegClickAt || 0; // consider valid if click happened within last 10 minutes wantStep2 = clicked && (Date.now() - ts { mutations.forEach((mutation) => { if (mutation.type === 'attributes' && ['data-wk-call-status-user', 'data-wk-call-status-plans'].includes(mutation.attributeName)) { console.log(`${mutation.attributeName} changed:`, body.getAttribute(mutation.attributeName)); checkAndRedirect(); } }); }); observer.observe(body, { attributes: true, attributeFilter: ['data-wk-call-status-user', 'data-wk-call-status-plans'] }); // Disable observer after 5 seconds setTimeout(() => { observer.disconnect(); console.log('Stopped observing attributes for redirect after 2 seconds'); }, 2000); } else { // Registration success: do NOT redirect here, just refresh UI labels console.log('Registration success: skip redirect after registration'); updateMyAccountLink(); } gaSendEvent('wk-auth-success', properties, true); }); window.wk.on('wk-event-logout', () => { gaSendEvent('wk-logout', {}); }); window.wk.on('wk-event-transaction', (data) => { let transaction = data.transactions[0]; gaSendEvent('wk-transaction', { 'wk_transaction_status': transaction.status, 'wk_transaction_value': parseFloat((transaction.amount/100).toFixed(2)), 'wk_transaction_currency': transaction.currency, 'wk_transaction_pricing_id': transaction.purchases[0].item_id }); }); window.wk.on('check-access', (data) => { console.log('wk check-access'); gaSendEvent('wk-check-access', { 'wk_access_level': data.access_level, 'wk_access_allow': data.allow, 'wk_access_reason': data.reason }, true); // insertWirePaywallContent(); }); //Claspo popup window.wk.on("check-user-access", function (access) { if (access) { return; } wkShowClaspoPopup(); }); }]); }); function gaSendEvent(event, properties = {}, pageData = false) { console.log('gaSendEvent'); if(!event) return; properties.wk_page_url = window.location.href; if(window.wk.authentication.isAuthenticated()) { properties.wk_user_id = window.wk.sdk.methods.user.id; } if(pageData && wallkitPostData) { properties.wk_content_type = wallkitPostData.data.type; if(wallkitPostData.data.taxonomies) { let taxKeys = Object.keys(wallkitPostData.data.taxonomies); taxKeys.forEach((tax) => { if(!wallkitPostData.data.taxonomies[tax].items) return; let term = wallkitPostData.data.taxonomies[tax].items.map((term) => { return term.name; }); properties[`wk_content_taxonomies_${tax}`] = term.join(','); }); } } //If using gtm // gtagPush("event", event, { // ...properties // }); //If using gtag if(typeof gtag === 'function') { gtag("event", event, { ...properties }); } } function gtagPush(){ let dataLayer = window.dataLayer || []; dataLayer.push(arguments); } // (Removed purchase buttons and popup customizations) function appendPremiumGate() { const bodyTag = document.querySelector('body'); const gateTerms = ['premium', 'premium-commercial-guide-formula-e', 'premium-commercial-guide-formula-one', 'premium-commercial-guide-indycar', 'premium-commercial-guide-ipl', 'premium-commercial-guide-mlb', 'premium-commercial-guide-mls', 'premium-commercial-guide-motogp', 'premium-commercial-guide-nascar', 'premium-commercial-guide-nba', 'premium-commercial-guide-nfl', 'premium-commercial-guide-nhl', 'premium-commercial-guide-nwsl', 'premium-commercial-guide-premier-league', 'premium-commercial-guide-premier-league-wnba', 'premium-commercial-guide']; const essentialTerms = ['standard', 'standard-commercial-guide-mlb', 'standard-commercial-guide-nba', 'standard-commercial-guide-motogp', 'standard-commercial-guide-indycar', 'standard-commercial-guide-nwsl', 'standard-commercial-guide', 'standard-commercial-guide-premier-league', 'standard-commercial-guide-premier-league-wnba', 'standard-commercial-guide-nascar', 'standard-commercial-guide-nfl', 'standard-commercial-guide-nhl', 'standard-commercial-guide-mls', 'standard-commercial-guide-formula-e']; const essentialCategoryTerms = ['member-exclusives']; try { try { console.log('[appendPremiumGate] called'); console.log('[appendPremiumGate] globals', { hasWallkitPostData: typeof wallkitPostData !== 'undefined', hasWallkitSettings: typeof wallkitSettings !== 'undefined', hasPaywall: typeof wallkitSettings !== 'undefined' && !!(wallkitSettings.config && wallkitSettings.config.paywall) }); } catch (_) {} const articleGateTerms = wallkitPostData.data?.taxonomies['wallkit-gate']?.items.map((term) => { return term.slug }) || []; const articleCategoryTerms = wallkitPostData.data?.taxonomies['category']?.items.map((term) => { return term.slug }) || []; const isPremiumGate = articleGateTerms.some(t => gateTerms.includes(t)); const isEssentialGate = articleGateTerms.some(t => essentialTerms.includes(t)) || articleCategoryTerms.some(t => essentialCategoryTerms.includes(t)); try { console.log('[appendPremiumGate] articleGateTerms:', articleGateTerms); console.log('[appendPremiumGate] isPremiumGate:', isPremiumGate); } catch(_) {} if(isPremiumGate) { try { console.log('[appendPremiumGate] applying premium gate UI'); } catch(_) {} bodyTag.classList.add('premium-gate'); wallkitSettings.config.paywall.content = ` This content is only available for SportsPro+ Executive members. Enjoy unlimited access to SportsPro's platforms, including richer content, exclusive business intelligence and community benefits by becoming a SportsPro+ member today. Find out more This content is only available for SportsPro+ Executive & Essential members. Enjoy unlimited access to SportsPro's platforms, including richer content, exclusive business intelligence and community benefits by becoming a SportsPro+ member today. Find out more This content is only available for SportsPro+ Executive members. You can upgrade your access here Find out more `; } else if (isEssentialGate) { bodyTag.classList.add('essential-gate'); } } catch (error) { try { console.warn('[appendPremiumGate] error:', error); } catch(_) {} } } function insertPaywallContent() { // console.log('insertPaywallContent called'); const body = document.querySelector('body'); function checkAndInsert() { // console.log('Checking attributes...'); const hasAccess = body.getAttribute('data-wk-call-user-has-access'); const hasTaxSectors = body.classList.contains('tax-sectors'); // console.log('data-wk-call-user-has-access:', hasAccess); // console.log('has tax-sectors:', hasTaxSectors); if (hasAccess === 'false' && hasTaxSectors) { // console.log('Conditions met, searching for target container'); const targetContainer = document.querySelector( '.elementor-section .elementor-container .elementor-col-66 .elementor-widget-wrap .elementor-section' ); // console.log('targetContainer:', targetContainer); if (targetContainer) { // console.log('Inserting paywall content'); const tempDiv = document.createElement('div'); tempDiv.innerHTML = ` Register for a free SportsPro account to access this content. Or why not sign up to become a SportsPro+ member and enjoy unlimited access to SportsPro's platforms, including richer content, exclusive business intelligence and community benefits? Discover more about our membership options below: Become a Member Already a member? Log in here
Loading comments…