Close Menu

    Subscribe to Updates

    Get the latest creative news from FooBar about art, design and business.

    What's Hot

    MLBTR Live Chat

    August 23, 2026

    Fans Praise Anna Faris, Blame Chris Pratt For Son’s Beliefs

    August 23, 2026

    Hundreds gather for funeral of correctional officer Nicolae Serban

    August 23, 2026
    Facebook X (Twitter) Instagram
    Select Language
    Facebook X (Twitter) Instagram
    NEWS ON CLICK
    Subscribe
    Sunday, August 23
    • Home
      • United States
      • Canada
      • Spain
      • Mexico
    • Top Countries
      • Canada
      • Mexico
      • Spain
      • United States
    • Politics
    • Business
    • Entertainment
    • Fashion
    • Health
    • Science
    • Sports
    • Travel
    NEWS ON CLICK
    Home»Business & Economy»US Business & Economy»Jimmy John’s and Buffalo Wild Wings Open First Co-Branded Site
    US Business & Economy

    Jimmy John’s and Buffalo Wild Wings Open First Co-Branded Site

    News DeskBy News DeskAugust 14, 2026No Comments8 Mins Read
    Share Facebook Twitter Pinterest Copy Link LinkedIn Tumblr Email VKontakte Telegram
    Jimmy John's and Buffalo Wild Wings Open First Co-Branded Site
    Share
    Facebook Twitter Pinterest Email Copy Link




    Jimmy John’s and Buffalo Wild Wings Open First Co-Branded Site

























    Skip to main content

    Buffalo Wild Wings Go and Jimmy John’s are launching their first combined location together, in a Florida town built around game day.

    By

    Jon Small


    |


    edited by
    Dan Bova


    |


    Aug 14, 2026

    Opinions expressed by Entrepreneur contributors are their own.

    Would you like some wings with that sub? Buffalo Wild Wings Go and Jimmy John’s are opening a co-branded restaurant in Palmetto, Florida, on August 18, Nation’s Restaurant News reports. Both chains are owned by Inspire Brands, which also owns Dunkin’, Arby’s and Sonic.

    The company picked Palmetto on purpose, describing it as “a community built around game days,” including local high school football and Pittsburgh Pirates spring training. The restaurant will share an entrance and seating area, with each brand running its own kitchen. Jimmy John’s will keep its drive-thru.

    It’s part of a bigger co-branding trend. Inspire already runs Dunkin’/Jimmy John’s and Jimmy John’s/Baskin Robbins locations, and other chains are joining forces for the same strategy, including Dine Brands with Applebee’s and IHOP, and MTY Food Group with Papa Murphy’s and Famous Dave’s.


    Find your perfect franchise match

    ${reply?.comment_author}${reply?.eln_tier_label ? `${reply.eln_tier_label}` : ”}

    •
    ${reply?.comment_relative_time}

    ${reply?.comment_content?.trim()}

    `;
    }

    function createComment(comment, replies, isLastComment) {
    const commentListDiv = document.getElementById(PublicCommentSelectors.LIST);

    if (!commentListDiv) {
    return;
    }

    const borderClasses = isLastComment ? ” : ‘tw:border-b tw:border-slate-200’;

    const currentUser = window?.tp?.pianoId?.getUser() ?? null;
    const currentUserInitials = currentUser
    ? getInitials(`${currentUser?.firstName ?? ”} ${currentUser?.lastName ?? ”}`)
    : ”;

    const repliesHTML = replies.length ? `

    ${replies.map(buildReplyHTML).join(”)}

    ` : ”;

    const replyButtonHTML = allowsComments ? `

    ` : ”;

    const replyFormHTML = allowsComments ? `

    ` : ”;

    const commentDiv = `

    ${comment?.comment_author}${comment?.eln_tier_label ? “ : ”}

    •
    ${comment?.comment_relative_time}

    ${comment?.comment_content?.trim()}

    ${replyButtonHTML}

    ${repliesHTML}
    ${replyFormHTML}

    `;

    commentListDiv.innerHTML += commentDiv;
    }

    function displayComments() {
    // Empty out the comment list container before refreshing comments.
    const commentListDiv = document.getElementById(PublicCommentSelectors.LIST);
    commentListDiv.innerHTML = ”;

    const comments = state?.comments ?? [];

    if (!comments.length) {
    return;
    }

    // Build a threaded structure: separate top-level from replies.
    const repliesByParent = {};
    const topLevelComments = [];

    comments.forEach(comment => {
    if (comment.comment_parent === 0) {
    topLevelComments.push(comment);
    } else {
    const parentId = comment.comment_parent;
    if (!repliesByParent[parentId]) {
    repliesByParent[parentId] = [];
    }
    repliesByParent[parentId].push(comment);
    }
    });

    // Apply top-level sort order. Server returns DESC; reverse for oldest-first.
    if (state.sortOrder === ‘oldest’) {
    topLevelComments.reverse();
    }

    // Replies always show oldest first within a thread (server returns DESC, so reverse).
    Object.keys(repliesByParent).forEach(parentId => {
    repliesByParent[parentId].reverse();
    });

    topLevelComments.forEach((comment, index) => {
    const isLastComment = index === topLevelComments.length – 1;
    const replies = repliesByParent[comment.comment_ID] ?? [];
    createComment(comment, replies, isLastComment);
    });

    createCommentAvatars();
    }

    function updateCommentCount() {
    const countDiv = document.getElementById(PublicCommentSelectors.COMMENT_COUNT);
    const sortControls = document.getElementById(PublicCommentSelectors.SORT_CONTROLS);

    if (!countDiv) {
    return;
    }

    const count = state?.comments?.length ?? 0;

    // Do not display if there are no comments.
    if (count === 0) {
    return;
    }

    countDiv.innerHTML = `${count} Comment${count > 1 ? ‘s’ : ”}`;

    if (sortControls) {
    sortControls.classList.remove(‘tw:hidden’);
    sortControls.classList.add(‘tw:flex’);
    }
    }

    function displayLoader(show) {
    const loader = document.getElementById(PublicCommentSelectors.BUTTON_LOADER);
    const text = document.getElementById(PublicCommentSelectors.BUTTON_TEXT);

    if (!loader || !text) {
    return;
    }

    // Show or hide the loader.
    if (show) {
    loader.classList.remove(‘tw:hidden’);
    text.classList.add(‘tw:hidden’);
    } else {
    loader.classList.add(‘tw:hidden’);
    text.classList.remove(‘tw:hidden’);
    }
    }

    function displayError(error) {
    const errorDiv = document.getElementById(PublicCommentSelectors.ERROR);

    if (!errorDiv) {
    return;
    }

    if (error) {
    errorDiv.classList.add(‘tw:block’);
    errorDiv.classList.remove(‘tw:hidden’);
    errorDiv.textContent = `Comment submission error: ${error}`;
    } else {
    errorDiv.classList.remove(‘tw:block’);
    errorDiv.classList.add(‘tw:hidden’);
    errorDiv.textContent=””;
    }
    }

    function clearCommentInput() {
    const commentField = document.getElementById(PublicCommentSelectors.INPUT);

    if (!commentField) {
    return;
    }

    commentField.value=””;
    }

    function updateComments(comments = []) {
    state.comments = comments;
    displayComments();
    updateCommentCount();
    }

    function runCommentProcess(type) {
    if (type === ‘postComment’) {
    const comment = document.getElementById(PublicCommentSelectors.INPUT);

    if (!comment || !comment?.value) {
    return;
    }

    // Hide errors, show loader.
    displayError();
    displayLoader(true);
    }

    const data = {
    type,
    postId: 447516,
    };

    // Get a fresh nonce and either fetch comments or post comment.
    fetch(`${adminAjaxUrl}?action=ep_get_public_comment_nonce`, {
    method: ‘POST’,
    headers: {
    ‘Content-Type’: ‘application/json’,
    },
    body: JSON.stringify(data),
    })
    .then((r) => r.json())
    .then((response) => {
    // Handle errors.
    if (!response.success) {
    displayLoader(false);
    console.error(‘Error getting nonce: ‘, response?.data?.message);
    return;
    }

    const nonce = response?.data?.nonce;

    // Get comments.
    if (type === ‘getComments’) {
    getComments(nonce);
    return;
    }

    // Post comment.
    if (type === ‘postComment’) {
    postComment(nonce);
    }
    })
    .catch((e) => {
    displayLoader(false);
    console.error(`Error running comment process ${type}: `, e);
    });
    }

    function getComments(nonce) {
    const data = {
    nonce,
    postId: 447516,
    };

    // Fetch comments.
    fetch(`${adminAjaxUrl}?action=ep_get_public_comments`, {
    method: ‘POST’,
    headers: {
    ‘Content-Type’: ‘application/json’,
    },
    body: JSON.stringify(data),
    })
    .then((r) => r.json())
    .then((response) => {
    // Handle errors.
    if (!response.success) {
    displayLoader(false);
    console.error(‘Error getting comments: ‘, response?.data?.message);
    return;
    }

    updateComments(response?.data?.comments);
    displayLoader(false);
    })
    .catch((e) => {
    displayLoader(false);
    console.error(‘Error getting comments: ‘, e);
    });
    }

    function postComment(nonce) {
    const user = window?.tp?.pianoId?.getUser() ?? null;

    if (!user || !user?.uid) {
    console.error(‘Error posting comment: Unauthorized. Submission aborted.’);
    return;
    }

    const comment = document.getElementById(PublicCommentSelectors.INPUT);

    if (!comment || !comment?.value) {
    return;
    }

    const data = {
    nonce,
    comment: comment.value,
    commentParent: 0,
    postId: 447516,
    uid: user?.uid,
    };

    // Post the comment.
    fetch(`${adminAjaxUrl}?action=ep_create_public_comment`, {
    method: ‘POST’,
    headers: {
    ‘Content-Type’: ‘application/json’,
    },
    credentials: ‘include’,
    body: JSON.stringify(data),
    })
    .then((r) => r.json())
    .then((response) => {
    // Handle errors.
    if (!response.success) {
    displayLoader(false);
    displayError(response?.data?.message, true);
    console.error(‘Error posting comment: ‘, response?.data?.message);
    return;
    }

    // Handle success.
    clearCommentInput();
    runCommentProcess(‘getComments’);
    })
    .catch((e) => {
    displayLoader(false);
    displayError(e);
    console.error(‘Error posting comment: ‘, e);
    });
    }

    function toggleReplyForm(commentId) {
    // Close any other open reply forms.
    document.querySelectorAll(‘.ep-reply-form’).forEach(function(form) {
    if (form.dataset.parentId !== String(commentId)) {
    form.classList.add(‘tw:hidden’);
    }
    });

    // Toggle the targeted reply form.
    const targetForm = document.querySelector(‘.ep-reply-form[data-parent-id=”‘ + commentId + ‘”]’);

    if (targetForm) {
    targetForm.classList.toggle(‘tw:hidden’);

    if (!targetForm.classList.contains(‘tw:hidden’)) {
    targetForm.querySelector(‘.ep-reply-input’)?.focus();
    }
    }
    }

    function setReplyLoading(formEl, isLoading) {
    const btn = formEl.querySelector(‘.ep-reply-submit’);
    const btnText = formEl.querySelector(‘.ep-reply-button-text’);

    if (!btn || !btnText) {
    return;
    }

    if (isLoading) {
    btnText.textContent=”Posting…”;
    btn.disabled = true;
    } else {
    btnText.textContent=”Post Reply”;
    btn.disabled = false;
    }
    }

    function displayReplyError(formEl, error) {
    const errorDiv = formEl.querySelector(‘.ep-reply-error’);

    if (!errorDiv || !error) {
    return;
    }

    errorDiv.textContent=”Reply error: ” + error;
    errorDiv.classList.remove(‘tw:hidden’);
    errorDiv.classList.add(‘tw:block’);
    }

    function clearReplyError(formEl) {
    const errorDiv = formEl.querySelector(‘.ep-reply-error’);

    if (!errorDiv) {
    return;
    }

    errorDiv.textContent=””;
    errorDiv.classList.add(‘tw:hidden’);
    errorDiv.classList.remove(‘tw:block’);
    }

    function postReply(nonce, parentId, replyText, formEl) {
    const user = window?.tp?.pianoId?.getUser() ?? null;

    if (!user || !user?.uid) {
    setReplyLoading(formEl, false);
    return;
    }

    const data = {
    nonce,
    comment: replyText,
    commentParent: parentId,
    postId: 447516,
    uid: user?.uid,
    };

    fetch(`${adminAjaxUrl}?action=ep_create_public_comment`, {
    method: ‘POST’,
    headers: {
    ‘Content-Type’: ‘application/json’,
    },
    credentials: ‘include’,
    body: JSON.stringify(data),
    })
    .then((r) => r.json())
    .then((response) => {
    setReplyLoading(formEl, false);

    if (!response.success) {
    displayReplyError(formEl, response?.data?.message);
    console.error(‘Error posting reply: ‘, response?.data?.message);
    return;
    }

    formEl.querySelector(‘.ep-reply-input’).value=””;
    formEl.classList.add(‘tw:hidden’);
    runCommentProcess(‘getComments’);
    })
    .catch((e) => {
    setReplyLoading(formEl, false);
    displayReplyError(formEl, ‘Network error. Please try again.’);
    console.error(‘Error posting reply: ‘, e);
    });
    }

    function submitReply(parentId, formEl) {
    const input = formEl.querySelector(‘.ep-reply-input’);

    if (!input || !input.value.trim()) {
    return;
    }

    const user = window?.tp?.pianoId?.getUser() ?? null;

    if (!user || !user?.uid) {
    openLoginModal();
    return;
    }

    setReplyLoading(formEl, true);
    clearReplyError(formEl);

    const data = {
    type: ‘postComment’,
    postId: 447516,
    };

    fetch(`${adminAjaxUrl}?action=ep_get_public_comment_nonce`, {
    method: ‘POST’,
    headers: {
    ‘Content-Type’: ‘application/json’,
    },
    body: JSON.stringify(data),
    })
    .then((r) => r.json())
    .then((response) => {
    if (!response.success) {
    setReplyLoading(formEl, false);
    displayReplyError(formEl, response?.data?.message);
    return;
    }

    postReply(response?.data?.nonce, parseInt(parentId, 10), input.value.trim(), formEl);
    })
    .catch((e) => {
    setReplyLoading(formEl, false);
    displayReplyError(formEl, ‘Network error. Please try again.’);
    console.error(‘Error getting nonce for reply: ‘, e);
    });
    }

    function setupCommentListDelegation() {
    const commentListDiv = document.getElementById(PublicCommentSelectors.LIST);

    if (!commentListDiv) {
    return;
    }

    commentListDiv.addEventListener(‘click’, function(e) {
    // Reply button: toggle the inline reply form.
    const replyButton = e.target.closest(‘.’ + PublicCommentSelectors.REPLY_BUTTON);
    if (replyButton) {
    const commentId = replyButton.dataset.commentId;
    const user = window?.tp?.pianoId?.getUser() ?? null;

    if (!user) {
    openLoginModal();
    return;
    }

    toggleReplyForm(commentId);
    return;
    }

    // Reply cancel: hide the reply form.
    const replyCancel = e.target.closest(‘.ep-reply-cancel’);
    if (replyCancel) {
    const parentId = replyCancel.dataset.parentId;
    const form = document.querySelector(‘.ep-reply-form[data-parent-id=”‘ + parentId + ‘”]’);
    if (form) {
    form.classList.add(‘tw:hidden’);
    }
    return;
    }

    // Reply submit: post the reply.
    const replySubmit = e.target.closest(‘.ep-reply-submit’);
    if (replySubmit) {
    const parentId = replySubmit.dataset.parentId;
    const form = document.querySelector(‘.ep-reply-form[data-parent-id=”‘ + parentId + ‘”]’);
    if (form) {
    submitReply(parentId, form);
    }
    }
    });
    }

    function setupUserAvatar() {
    const usernameDiv = document.getElementById(PublicCommentSelectors.USERNAME);
    const userAvatar = document.getElementById(PublicCommentSelectors.USER_AVATAR);

    if (!usernameDiv || !userAvatar) {
    return;
    }

    const user = window?.tp?.pianoId?.getUser() ?? null;

    if (!user) {
    return;
    }

    const fullName = `${user?.firstName ?? ”} ${user?.lastName ?? ”}`;

    usernameDiv.innerHTML = fullName;
    userAvatar.innerHTML = getInitials(fullName);
    }

    function openLoginModal() {
    window?.tp?.pianoId?.show({ displayMode: ‘modal’, screen: ‘login’ });
    }

    function setupCommentSubmitButton() {
    const submitButton = document.getElementById(PublicCommentSelectors.SUBMIT);

    if (!submitButton || state.submitCommentButtonRegistered) {
    return;
    }

    // Register a single click handler that checks auth state at click time.
    submitButton.addEventListener(‘click’, function() {
    const user = window?.tp?.pianoId?.getUser() ?? null;

    if (!user) {
    openLoginModal();
    return;
    }

    runCommentProcess(‘postComment’);
    });

    state.submitCommentButtonRegistered = true;
    }

    function setSortOrder(order) {
    state.sortOrder = order;

    const newestBtn = document.getElementById(PublicCommentSelectors.SORT_NEWEST);
    const oldestBtn = document.getElementById(PublicCommentSelectors.SORT_OLDEST);

    if (newestBtn && oldestBtn) {
    const activeClasses = [‘tw:font-bold’, ‘tw:text-blue-800’];
    const inactiveClasses = [‘tw:font-normal’, ‘tw:text-slate-500’];

    if (order === ‘newest’) {
    newestBtn.classList.add(…activeClasses);
    newestBtn.classList.remove(…inactiveClasses);
    oldestBtn.classList.add(…inactiveClasses);
    oldestBtn.classList.remove(…activeClasses);
    } else {
    oldestBtn.classList.add(…activeClasses);
    oldestBtn.classList.remove(…inactiveClasses);
    newestBtn.classList.add(…inactiveClasses);
    newestBtn.classList.remove(…activeClasses);
    }
    }

    displayComments();
    }

    function setupSortControls() {
    const newestBtn = document.getElementById(PublicCommentSelectors.SORT_NEWEST);
    const oldestBtn = document.getElementById(PublicCommentSelectors.SORT_OLDEST);

    if (newestBtn) {
    newestBtn.addEventListener(‘click’, function() {
    setSortOrder(‘newest’);
    });
    }

    if (oldestBtn) {
    oldestBtn.addEventListener(‘click’, function() {
    setSortOrder(‘oldest’);
    });
    }
    }

    runCommentProcess(‘getComments’);
    listenForPianoLogin();
    setupCommentSubmitButton();
    setupCommentListDelegation();
    setupSortControls();
    });

    franchise Franchise 500 News & Trends Restaurant Business
    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email Telegram Copy Link
    News Desk
    • Website

    News Desk is the dedicated editorial force behind News On Click. Comprised of experienced journalists, writers, and editors, our team is united by a shared passion for delivering high-quality, credible news to a global audience.

    Related Posts

    US Business & Economy

    How to use AI to give yourself a head start at a new job

    August 23, 2026
    US Business & Economy

    Your UNO skills could be worth $50,000 thanks to Mattel’s new tournament

    August 23, 2026
    US Business & Economy

    These 2 tools make it easy to create standout visuals

    August 23, 2026
    US Business & Economy

    Nuclear power is China’s key for transitioning to a fully renewable grid design

    August 23, 2026
    US Business & Economy

    The art of asking questions in a world full of answers

    August 23, 2026
    US Business & Economy

    USA Fencing’s scrappy plan to make fencing a hit before the 2028 Olympics

    August 23, 2026
    Add A Comment
    Leave A Reply Cancel Reply

    Don't Miss

    MLBTR Live Chat

    News DeskAugust 23, 20260

    Click here to submit your questions and comments for tonight’s live baseball chat

    Fans Praise Anna Faris, Blame Chris Pratt For Son’s Beliefs

    August 23, 2026

    Hundreds gather for funeral of correctional officer Nicolae Serban

    August 23, 2026

    Pirates Notes: Rodriguez, O’Hearn, Griffin

    August 23, 2026
    Tech news by Newsonclick.com
    Top Posts

    Cal Quantrill sharp as Rangers slide past Angels

    August 23, 2026

    SOUND FIST: ALEX WARREN – RESCUER

    August 9, 2026

    ‘The Bachelorette’ Star’s Wife Slammed Mocking Severe Disorder

    August 9, 2026

    Timothée Chalamet Absent From Kylie Jenner’s Birthday Bash

    August 9, 2026
    Stay In Touch
    • Facebook
    • Twitter
    • Pinterest
    • Instagram
    • YouTube
    • Vimeo

    Subscribe to Updates

    Get the latest creative news from SmartMag about art & design.

    Editors Picks

    MLBTR Live Chat

    August 23, 2026

    Fans Praise Anna Faris, Blame Chris Pratt For Son’s Beliefs

    August 23, 2026

    Hundreds gather for funeral of correctional officer Nicolae Serban

    August 23, 2026

    Pirates Notes: Rodriguez, O’Hearn, Griffin

    August 23, 2026
    About Us

    NewsOnClick.com is your reliable source for timely and accurate news. We are committed to delivering unbiased reporting across politics, sports, entertainment, technology, and more. Our mission is to keep you informed with credible, fact-checked content you can trust.

    We're social. Connect with us:

    Facebook X (Twitter) Instagram Pinterest YouTube
    Latest Posts

    MLBTR Live Chat

    August 23, 2026

    Fans Praise Anna Faris, Blame Chris Pratt For Son’s Beliefs

    August 23, 2026

    Hundreds gather for funeral of correctional officer Nicolae Serban

    August 23, 2026

    Subscribe to Updates

    Get the latest creative news from FooBar about art, design and business.

    Facebook X (Twitter) Instagram Pinterest
    • About Us
    • Editorial Policy
    • Privacy Policy
    • Terms and Conditions
    • Disclaimer
    • Advertise
    • Contact Us
    © 2026 Newsonclick.com || Designed & Powered by ❤️ Trustmomentum.com.

    Type above and press Enter to search. Press Esc to cancel.