91³Ô¹ÏÍø

Watch CBS News

Inside Aronimink Golf Club's final preparations for 108th PGA Championship

The PGA Championship is nearly a month from starting at Aronimink Golf Club in Delaware County. The birds are chirping, flowers are blooming and work is feverishly underway before all eyes of the golf world turn to Newtown Square.

"You blink — a new venue pops up here and there," PGA Championship Operations Manager Tyler Curtis said.

Crews are working on everything from the fan zone to the 50,000 square foot PGA Shops, and of course, the grandstands.

"We started this build from the gravel standpoint for back-of-house areas in November," Curtis said. "But the infrastructure that you see now started at the beginning of February."

While leaders acknowledge the snowy winter provided delays in the building process, things are still moving quickly.

"In the next, again, four weeks or so — really it's all about making sure the experience is going to be fine-tuned," 2026 PGA Championship Director Jackie Endsley said.

Leaders estimate some 200,000 people are expected to attend the PGA Championship.

"We're expecting about $125 million in economic impact," Endsley said, "boosting tourism and hospitality in and around Newtown Square, but also the Greater Philadelphia region."

Tickets for the championship rounds are sold out.

"Fans, if they still do want to come and attend, they can go on our secondary market on SeatGeek to purchase those tickets," Endsley said. "We do have some practice round tickets available yet."

For the thousands coming to watch, the team stresses there's really not a bad seat to view all the action.

"I think it'll feel pretty intimate out there," Jeff Kiddie, head golf professional at Aronimink, said. "Where you'll hear roars and cheers from a hole nearby that you'll be able to feel even if you're not on that hole."

The 108th PGA Championship runs from May 11-17. Catch all the action during the championship rounds on CBS News Philadelphia on May 16 and May 17.

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=296763317a51cab90faa73f1bb146d5c'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });