{"id":17372,"date":"2026-01-21T08:02:18","date_gmt":"2026-01-21T08:02:18","guid":{"rendered":"https:\/\/ondelivery.com.au\/index.php\/events\/"},"modified":"2026-01-21T08:02:18","modified_gmt":"2026-01-21T08:02:18","slug":"events","status":"publish","type":"page","link":"https:\/\/ondelivery.com.au\/index.php\/events\/","title":{"rendered":"Events"},"content":{"rendered":"<div class=\"woocommerce moi-events-wrapper\">\n    <link rel='stylesheet' id='moi-widgets-css' href='https:\/\/ondelivery.com.au\/wp-content\/plugins\/membersone-integration\/assets\/css\/moi-widgets.css?v=1.8.5.4' media='all' \/>\n    <link rel='stylesheet' id='moi-events-css' href='https:\/\/ondelivery.com.au\/wp-content\/plugins\/membersone-integration\/assets\/css\/moi-events.css?v=1.8.5.4' media='all' \/>\n    <link rel='stylesheet' id='fontawesome-css' href='https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css' integrity='sha512-iecdLmaskl7CVkqkXNQ\/ZH\/XLlvWZOJyj7Yy7tcenmpD1ypASozpmT\/E0iPtmFIB46ZmdtAc9eNBvH0H\/ZpiBw==' crossorigin='anonymous' media='all'\/>\n\n    \n<!-- Event Card Template -->\n<script id=\"moi-event-card-template\" type=\"text\/template\">\n<% _.each(events, function(event) {\n    var imageUrl = event.image_url || event.featured_image || '';\n    var moiEventsObj = window.moi_events || {};\n    var isSoldOut = event.is_sold_out || false;\n    var isMembersOnly = event.members_only || false;\n    var hasMultipleDates = event.has_multiple_dates || false;\n    var currencySymbol = moiEventsObj.currency_symbol || '$';\n    var i18n = moiEventsObj.i18n || {};\n\n    \/\/ Build SEO-friendly URL using slug if available, otherwise use ID\n    var eventUrl = '';\n    var eventsPageBaseUrl = moiEventsObj.events_page_base_url || '';\n    if (eventsPageBaseUrl && (event.slug || event.id)) {\n        \/\/ SEO-friendly URL: \/events\/event-slug\/ or \/events\/123\/\n        \/\/ Uses slug if available, otherwise uses ID\n        var eventIdentifier = event.slug || event.id;\n        eventUrl = eventsPageBaseUrl + eventIdentifier + '\/';\n    } else {\n        \/\/ Fallback to query parameter format\n        var detailUrl = moiEventsObj.detail_page_url || moiEventsObj.booking_page_url || moiEventsObj.events_page_url || '';\n        var separator = (detailUrl.indexOf('?') !== -1) ? '&' : '?';\n        eventUrl = detailUrl + separator + 'event_id=' + event.id;\n    }\n\n    var priceDisplay = '';\n    var hasPriceFrom = (event.price_from !== undefined);\n    if (hasPriceFrom) {\n        if (event.price_from !== null) {\n            priceDisplay = currencySymbol + parseFloat(event.price_from).toFixed(2);\n        }\n    }\n\n    var dateDisplay = event.next_session_date || event.start_date || '';\n\n    \/\/ Venue name with fallback for backwards compatibility\n    var venueName = event.venue_name || event.location_name || event.location || '';\n%>\n    <div class=\"moi-event-card-wrap moi-lg-<%-window.moiEventsColumns || 4 %> moi-md-6 moi-mb-4\">\n        <div class=\"moi-event-card <%-isSoldOut ? 'moi-event-card--sold-out' : '' %>\">\n            <div class=\"moi-event-card__image<%-!imageUrl ? ' moi-event-card__image--placeholder' : '' %>\">\n                <% if (imageUrl) { %>\n                <img decoding=\"async\" loading=\"lazy\" src=\"<%-imageUrl %>\" alt=\"<%-event.title %>\">\n                <% } else { %>\n                <div class=\"moi-event-card__placeholder\">\n                    <i class=\"fas fa-calendar-alt\"><\/i>\n                <\/div>\n                <% } %>\n                <%\n                    var registrationStatus = event.registration_status || 'open';\n                    var registrationOpensAt = event.registration_opens_at || null;\n\n                    \/\/ Helper function to format registration date\n                    var formatRegDate = function(isoString) {\n                        if (!isoString) return '';\n                        try {\n                            var date = new Date(isoString);\n                            var options = { month: 'short', day: 'numeric', year: 'numeric' };\n                            return date.toLocaleDateString('en-US', options);\n                        } catch (e) {\n                            return '';\n                        }\n                    };\n                %>\n                <% if (isSoldOut) { %>\n                <span class=\"moi-event-badge moi-event-badge--sold-out\"><%-i18n.sold_out || 'Sold Out' %><\/span>\n                <% } else if (registrationStatus === 'closed') { %>\n                <span class=\"moi-event-badge moi-event-badge--closed\"><%-i18n.registration_closed || 'Registration Closed' %><\/span>\n                <% } else if (registrationStatus === 'not_yet_open' && registrationOpensAt) { %>\n                <span class=\"moi-event-badge moi-event-badge--upcoming\"><%-(i18n.opens || 'Opens') + ' ' + formatRegDate(registrationOpensAt) %><\/span>\n                <% } else if (isMembersOnly) { %>\n                <span class=\"moi-event-badge moi-event-badge--members\"><%-i18n.members_only || 'Members Only' %><\/span>\n                <% } %>\n            <\/div>\n\n            <div class=\"moi-event-card__content\">\n                <% if (event.category_name) { %>\n                <div class=\"moi-event-card__category\"><%-event.category_name %><\/div>\n                <% } %>\n\n                <h3 class=\"moi-event-card__title\"><%-event.title %><\/h3>\n\n                <% if (dateDisplay) { %>\n                <div class=\"moi-event-card__date\">\n                    <i class=\"fas fa-calendar-alt\"><\/i>\n                    <span><%-dateDisplay %><\/span>\n                    <% if (hasMultipleDates) { %>\n                    <span class=\"moi-event-card__more-dates\">+ more dates<\/span>\n                    <% } %>\n                <\/div>\n                <% } %>\n\n                <% if (venueName) { %>\n                <div class=\"moi-event-card__location\">\n                    <i class=\"fas fa-map-marker-alt\"><\/i>\n                    <span><%-venueName %><\/span>\n                <\/div>\n                <% } %>\n\n                <% if (event.short_description) { %>\n                <div class=\"moi-event-card__description moi-max-lines-3\"><%-event.short_description %><\/div>\n                <% } %>\n            <\/div>\n\n            <div class=\"moi-event-card__footer\">\n                <% if (priceDisplay) { %>\n                <div class=\"moi-event-card__price\">\n                    <span class=\"moi-event-card__price-label\"><%-i18n.from || 'From' %><\/span>\n                    <span class=\"moi-event-card__price-amount\"><%-priceDisplay %><\/span>\n                <\/div>\n                <% } %>\n\n                <a href=\"<%-eventUrl %>\" class=\"moi-btn moi-custom-button <%-isSoldOut ? 'moi-disabled' : '' %>\">\n                    <%-i18n.view_event || 'View Event' %>\n                <\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n<% }); %>\n<\/script>\n\n<!-- Category Options Template -->\n<script id=\"moi-event-categories-template\" type=\"text\/template\">\n<option value=\"\">All Categories<\/option>\n<% _.each(categories, function(category) { %>\n<option value=\"<%-category.slug %>\"><%-category.name %><\/option>\n<% }); %>\n<\/script>\n\n<!-- Pagination Info Template -->\n<script id=\"moi-events-pagination-template\" type=\"text\/template\">\nPage <%-currentPage %> of <%-totalPages %>\n<\/script>\n\n    <h1 class=\"moi-events-title\">Upcoming Events<\/h1>\n\n    \n    <div id=\"moi-events-container\"\n         data-limit=\"12\"\n         data-columns=\"3\"\n         data-category=\"\"\n         data-show-filters=\"true\"\n         data-show-search=\"true\"\n         data-show-pagination=\"true\">\n\n                <div class=\"moi-events-header moi-mb-4\">\n            <div class=\"moi-row moi-justify-between moi-align-center\">\n                                <div class=\"moi-lg-4 moi-md-6\">\n                    <div class=\"moi-events-search\">\n                        <input type=\"text\"\n                               id=\"moi-events-search-input\"\n                               class=\"moi-input\"\n                               placeholder=\"Search events...\" \/>\n                        <i class=\"fas fa-search moi-events-search-icon\"><\/i>\n                    <\/div>\n                <\/div>\n                \n                                <div class=\"moi-lg-4 moi-md-6\">\n                    <select id=\"moi-events-category-filter\" class=\"moi-select\">\n                        <option value=\"\">All Categories<\/option>\n                    <\/select>\n                <\/div>\n                            <\/div>\n        <\/div>\n        \n        <div id=\"moi-events-loading\" class=\"moi-text-center moi-py-8\">\n            <div class=\"moi-loader\"><\/div>\n            <p>Loading events...<\/p>\n        <\/div>\n\n        <div id=\"moi-events-grid\" class=\"moi-events-grid moi-none\">\n            <!-- Events will be rendered here -->\n        <\/div>\n\n        <div id=\"moi-events-empty\" class=\"moi-events-empty moi-none\">\n            <div class=\"moi-events-empty__card\">\n                <div class=\"moi-events-empty__icon\">\ud83d\udcc5<\/div>\n                <h3 class=\"moi-events-empty__title\">No Events Scheduled<\/h3>\n                <p class=\"moi-events-empty__description\">\n                    There aren&#039;t any upcoming events right now. Check back soon for new events!                <\/p>\n            <\/div>\n        <\/div>\n\n        <div id=\"moi-events-error\" class=\"moi-events-error moi-none moi-text-center moi-py-8\">\n            <i class=\"fas fa-exclamation-circle moi-events-error-icon\"><\/i>\n            <p>Error loading events. Please try again.<\/p>\n            <button type=\"button\" class=\"moi-btn moi-custom-button\" id=\"moi-events-retry\">\n                Retry            <\/button>\n        <\/div>\n\n        \n                <div id=\"moi-events-pagination\" class=\"moi-events-pagination moi-none moi-mt-4 moi-text-center\">\n            <button type=\"button\" class=\"moi-btn moi-custom-button moi-events-prev\" disabled>\n                <i class=\"fas fa-chevron-left\"><\/i> Previous            <\/button>\n            <span class=\"moi-events-page-info\"><\/span>\n            <button type=\"button\" class=\"moi-btn moi-custom-button moi-events-next\">\n                Next <i class=\"fas fa-chevron-right\"><\/i>\n            <\/button>\n        <\/div>\n            <\/div>\n\n    \n    <div class=\"moi-branding moi-mt-4\">\n        Powered By Members One\n    <\/div>\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"Upcoming Events All Categories Loading events... \ud83d\udcc5 No Events Scheduled There aren&#039;t any upcoming events right now. Check back soon for new events! Error loading events. Please try again. Retry Previous Next Powered By Members [...]","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"close","ping_status":"close","template":"","meta":{"footnotes":""},"class_list":["post-17372","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ondelivery.com.au\/index.php\/wp-json\/wp\/v2\/pages\/17372","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ondelivery.com.au\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ondelivery.com.au\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ondelivery.com.au\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ondelivery.com.au\/index.php\/wp-json\/wp\/v2\/comments?post=17372"}],"version-history":[{"count":0,"href":"https:\/\/ondelivery.com.au\/index.php\/wp-json\/wp\/v2\/pages\/17372\/revisions"}],"wp:attachment":[{"href":"https:\/\/ondelivery.com.au\/index.php\/wp-json\/wp\/v2\/media?parent=17372"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}