{"id":8973,"date":"2025-07-31T17:50:19","date_gmt":"2025-07-31T08:20:19","guid":{"rendered":"https:\/\/demo.members-one.com\/wine-online\/index.php\/clubs\/"},"modified":"2025-11-18T20:04:53","modified_gmt":"2025-11-18T09:34:53","slug":"clubs","status":"publish","type":"page","link":"https:\/\/demo.members-one.com\/wine-online\/index.php\/clubs\/","title":{"rendered":"Wine Clubs"},"content":{"rendered":"<script>\n    var moi_date_format = \"jS M Y\";\n    var moiWpTimeFormat = \"g:i a\";\n    var moi_wc_tax_enabled = true;\n    var moi_cart_prices_to_show = \"incl\"; \/\/ incl, excl\n    var moi_tax_totals_display = \"single\"; \/\/ itemized, single\n        var moi_tax_label = \"GST\";\n    var prices_suffix = (moi_cart_prices_to_show === 'incl') ? '(inc ' + moi_tax_label + ')' : '';\n\n    \/\/ Carrot promotional banners for JS-rendered sections\n    var moi_carrots = {\n        clubs_below_frequency: \"\",\n        clubs_below_products: \"\"    };\n<\/script>\n<div class=\"woocommerce alignwide moi-widget-container\">\n    <link rel='stylesheet' id='moi-widgets-css' href='https:\/\/demo.members-one.com\/wine-online\/wp-content\/plugins\/membersone-integration\/assets\/css\/moi-widgets.css?v=1.8.5.2' 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    <script id=\"club_rows\" type=\"text\/template\">\r\n    <%\r\n        let center_align = '';\r\n        if(typeof clubs == 'object' && clubs.length < 4 ){\r\n            center_align = 'moi-justify-center';\r\n        }\r\n    %>\r\n  <div class=\"moi-club-grid <%= center_align %>\">\r\n      <%\r\n      let currency_symbol= '&#36;';\r\n      let moi_selected_club= moiLocalStorage_getItem('moi_selected_club');\r\n      if(typeof(clubs) !== \"undefined\" && clubs.length > 0 ){\r\n      _.each(clubs, function(club, index){\r\n      let club_image = null;\r\n      <!--default club price-->\r\n      let club_price = (club.price === null ||  club.price === \"0\" ||  club.price === 0) ? \"\" : club.price;\r\n      let active_club_class =  '';\r\n      if(moi_selected_club == club.id){\r\n        active_club_class = 'is-selected';\r\n        update_club_data(club);\r\n      }\r\n\r\n      let club_schedule = JSON.stringify(club.schedule);\r\n      let teaser = club.teaser;\r\n      club.teaser = '';\r\n      club.description = club.description?.length > 0 ? 'Description on click Detail' : '';\r\n      let club_data = JSON.stringify(club);\r\n      club_data = club_data.replace(\/'\/g, '&#39;');\r\n      club_schedule = club_schedule.replace(\/'\/g, '&#39;');\r\n      if(club.show_image == 'Yes' && club.image_url !== null && club.image_url !== '' ){\r\n        club_image =  club.image_url;\r\n      }\r\n\r\n      \/\/ Extract frequency and discount from club data for meta display\r\n      let frequency_text = '';\r\n      if(club.schedule && club.schedule.type) {\r\n          if(club.schedule.type === 'monthly') {\r\n              frequency_text = 'Monthly Shipments';\r\n          } else if(club.schedule.type === 'weekly') {\r\n              frequency_text = 'Weekly Shipments';\r\n          } else if(club.schedule.type === 'specific_date') {\r\n              let shipments = 1;\r\n              if(club.schedule.selected_options) {\r\n                  try {\r\n                      let options = JSON.parse(club.schedule.selected_options);\r\n                      shipments = options.length;\r\n                  } catch(e) {\r\n                      shipments = club.schedule.minimum_shipment || 1;\r\n                  }\r\n              } else {\r\n                  shipments = club.schedule.minimum_shipment || 1;\r\n              }\r\n              frequency_text = shipments + ' Shipment' + (shipments > 1 ? 's' : '') + '\/Year';\r\n          } else if(club.schedule.type === 'custom') {\r\n              frequency_text = 'Custom Shipments';\r\n          }\r\n      }\r\n      let discount_text = club.discount ? club.discount + '% Off' : '';\r\n\r\n      %>\r\n\r\n      <article class=\"moi-club-card <%= active_club_class %>\" style=\"animation-delay: <%= (index * 0.05) %>s;\" onclick=\"this.querySelector('button').click()\">\r\n          <div class=\"moi-club-card__image\">\r\n              <% if(club_image != null){ %>\r\n                  <img decoding=\"async\" loading=\"lazy\" src=\"<%= club_image %>\" alt=\"<%= club.title %> club image\">\r\n              <% } else { %>\r\n                  <span class=\"moi-club-card__placeholder\">Club Image<\/span>\r\n              <% } %>\r\n              <% if(club.badge && club.badge !== 'null' && club.badge.trim() !== '') {\r\n                  let badgeStyle = '';\r\n                  if(club.badge_color && club.badge_color !== 'null') {\r\n                      badgeStyle = 'background-color: ' + club.badge_color + ';';\r\n                  }\r\n              %>\r\n                  <span class=\"moi-club-card__badge\" style=\"<%= badgeStyle %>\"><%= club.badge.replace(\/_\/g, ' ').toUpperCase() %><\/span>\r\n              <% } %>\r\n          <\/div>\r\n          <div class=\"moi-club-card__content\">\r\n              <h3 class=\"moi-club-card__title\"><%= club.title %><\/h3>\r\n              <% if(frequency_text || discount_text) { %>\r\n              <div class=\"moi-club-card__meta\">\r\n                  <% if(frequency_text) { %>\r\n                  <span class=\"moi-club-card__meta-item\">\r\n                      <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect width=\"18\" height=\"18\" x=\"3\" y=\"4\" rx=\"2\" ry=\"2\"\/><line x1=\"16\" x2=\"16\" y1=\"2\" y2=\"6\"\/><line x1=\"8\" x2=\"8\" y1=\"2\" y2=\"6\"\/><line x1=\"3\" x2=\"21\" y1=\"10\" y2=\"10\"\/><\/svg>\r\n                      <%= frequency_text %>\r\n                  <\/span>\r\n                  <% } %>\r\n                  <% if(discount_text) { %>\r\n                  <span class=\"moi-club-card__meta-item\">\r\n                      <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\"\/><\/svg>\r\n                      <%= discount_text %>\r\n                  <\/span>\r\n                  <% } %>\r\n              <\/div>\r\n              <% } %>\r\n              <div class=\"moi-club-card__description\"><%= teaser %><\/div>\r\n              <div class=\"moi-club-card__footer\">\r\n                  <button\r\n                          id=\"club_selector_btn_<%= club.id %>\"\r\n                          class=\"moi-btn moi-btn--primary moi-custom-button\"\r\n                          type=\"button\"\r\n                          data-id=\"<%= club.id %>\"\r\n                          data-club='<%= club_data %>'\r\n                          data-club_schedule='<%= club_schedule %>'\r\n                          data-disable_snapping='<%= club.disable_snapping %>'\r\n                          data-products_per_row='<%= club.products_per_row %>'\r\n                          onclick=\"event.stopPropagation(); moi_select_club(this)\">\r\n                          <span id=\"buttonText<%= club.id %>\">Select<\/span>\r\n                      <div class=\"moi-btn__spinner moi-none\" id=\"moi-spin-loader-<%= club.id %>\"><div class=\"spinner\"><div class=\"spinner-icon\"><\/div><\/div><\/div>\r\n                  <\/button>\r\n              <\/div>\r\n          <\/div>\r\n      <\/article>\r\n      <% });%>\r\n      <% } else { %>\r\n      <div class=\"woocommerce-info\">\r\n          No clubs available. Stay tuned!\r\n      <\/div>\r\n      <% } %>\r\n  <\/div>\r\n<\/script>\r\n<script id=\"club_products_rows\" type=\"text\/template\">\r\n    <%\r\n        let selected_club = get_selected_club();\r\n        let is_pack_mode = (selected_club && selected_club.pack_mode === 'Yes');\r\n        let grid_cols_class = is_pack_mode ? 'moi-products-grid--single' : '';\r\n        let section_title = is_pack_mode ? 'Select Your Pack' : 'Select Your Products';\r\n        let section_subtitle = is_pack_mode ? 'Choose the pack you\\'d like included in your shipment' : 'Choose the products you\\'d like included in your shipment';\r\n    %>\r\n    <div class=\"moi-section-header\">\r\n        <span class=\"moi-section-number\">2<\/span>\r\n        <h2 class=\"moi-section-title\"><%= section_title %><\/h2>\r\n        <% if (typeof moi_carrots !== 'undefined' && moi_carrots.clubs_below_products) { %>\r\n            <%= moi_carrots.clubs_below_products %>\r\n        <% } else { %>\r\n            <p class=\"moi-section-subtitle\"><%= section_subtitle %><\/p>\r\n        <% } %>\r\n    <\/div>\r\n    <div class=\"moi-products-grid <%= grid_cols_class %>\" id=\"moi_step_product\">\r\n    <%  if(typeof(products) !== \"undefined\" && products.length > 0   ){ %>\r\n        <%\r\n        let currency_symbol= '&#36;';\r\n\r\n        let selected_products = selected_club.selected_products;\r\n        let selection = selected_products.length;\r\n        let discount_type = selected_club.discount_type || 'percentage';\r\n        let products_per_row = selected_club.products_per_row;\r\n        <!--Iterate each Item -->\r\n        _.each(products, function(club_product){\r\n            let randomRowID = moiRandomString(12);\r\n            let num_of_products = 0;\r\n            let item_in_cart_qty = 0;\r\n            let is_selected = false;\r\n            let selected_product = moi_find_selected_product_by_id(selected_products, club_product);\r\n            if(club_product.qty_default === null){\r\n                club_product.qty_default = club_product.qty_min;\r\n            }\r\n            if(selected_product) {\r\n                is_selected = true;\r\n                item_in_cart_qty = selected_product.product_qty;\r\n            }\r\n\r\n            let show_price =  ( moi_cart_prices_to_show === 'excl' ) ?  club_product.price_excluding_tax : club_product.price_including_tax;\r\n            let discounted_price = moi_discount_price(show_price, selected_club.discount);\r\n            let has_discount = discounted_price != show_price;\r\n        %>\r\n        <article class=\"moi-product-item <%= is_selected ? 'is-selected' : '' %> <%= club_product.sold_out == 1 ? 'is-sold-out' : '' %>\"\r\n             id=\"<%= randomRowID %>\"\r\n             data-unique_id=\"<%= randomRowID %>\"\r\n             data-product_reference_id=\"<%= club_product.reference_id %>\"\r\n             data-product_id=\"<%= club_product.id %>\"\r\n             data-product_title=\"<%= club_product.title.replace(\/\"\/g, '&quot;').replace(\/'\/g, '&#39;') %>\"\r\n             data-product_qty=\"<%= item_in_cart_qty %>\"\r\n             data-product_price=\"<%= show_price %>\"\r\n             data-product_sale_price=\"<%= club_product.sale_price %>\"\r\n             data-product_price_including_tax=\"<%= club_product.price_including_tax %>\"\r\n             data-product_price_excluding_tax=\"<%= club_product.price_excluding_tax %>\"\r\n             data-product_qty_default=\"<%= club_product.qty_default %>\"\r\n             data-product_qty_min=\"<%= club_product.qty_min %>\"\r\n             data-product_qty_max=\"<%= club_product.qty_max %>\"\r\n             data-product_image=\"<%= club_product.img_url %>\">\r\n\r\n            <div class=\"moi-product-item__image\">\r\n                <img decoding=\"async\" loading=\"lazy\" onerror=\"javascript:product_img_error(this)\" src=\"<%= club_product.img_url %>\" alt=\"<%= club_product.title %>\">\r\n            <\/div>\r\n\r\n            <div class=\"moi-product-item__content\">\r\n                <%\r\n                    \/\/ Calculate savings for single product display\r\n                    let savings_amount = has_discount ? (show_price - parseFloat(discounted_price)).toFixed(2) : 0;\r\n                    let default_qty = club_product.qty_default || club_product.qty_min || 1;\r\n                    let initial_line_total = (default_qty * parseFloat(discounted_price)).toFixed(2);\r\n                %>\r\n\r\n                <% if(is_pack_mode && has_discount) { %>\r\n                <span class=\"moi-product-item__badge\">\r\n                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\"\/><\/svg>\r\n                    <%= selected_club.discount %>% Club Discount\r\n                <\/span>\r\n                <% } %>\r\n\r\n                <h4 class=\"moi-product-item__title\"><%= club_product.title %><\/h4>\r\n\r\n                <div class=\"moi-product-item__price\">\r\n                    <% if(has_discount) { %>\r\n                    <span class=\"moi-product-item__price-original\"><%= currency_symbol %><%= show_price?.toFixed(2) %><\/span>\r\n                    <% } %>\r\n                    <span class=\"moi-product-item__price-current <%= has_discount ? 'has-discount' : '' %>\"><%= currency_symbol %><%= discounted_price %><\/span>\r\n                <\/div>\r\n\r\n                <% if(is_pack_mode && has_discount) { %>\r\n                <p class=\"moi-product-item__savings\">You save <%= currency_symbol %><%= savings_amount %> per unit with your membership<\/p>\r\n                <% } %>\r\n\r\n                <% if((club_product.qty_min > 0 || club_product.qty_max > 0) && discount_type !== 'fixed' && !is_pack_mode) { %>\r\n                <div class=\"moi-product-item__constraints\">\r\n                    <% if(club_product.qty_min > 0) { %>\r\n                    <span class=\"moi-product-item__constraint\">\r\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\" ry=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg>\r\n                        Min: <%= club_product.qty_min %>\r\n                    <\/span>\r\n                    <% } %>\r\n                    <% if(club_product.qty_max > 0) { %>\r\n                    <span class=\"moi-product-item__constraint\">\r\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\" ry=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg>\r\n                        Max: <%= club_product.qty_max %>\r\n                    <\/span>\r\n                    <% } %>\r\n                <\/div>\r\n                <% } %>\r\n\r\n                <% if(discount_type !== 'fixed') { %>\r\n                <div class=\"moi-product-item__actions\">\r\n                    <% if(is_pack_mode && club_product.qty_min > 0) { %>\r\n                    <span class=\"moi-product-item__qty-label\">\r\n                        Qty\r\n                        <span class=\"moi-product-item__constraint\">Min: <%= club_product.qty_min %><\/span>\r\n                    <\/span>\r\n                    <% } %>\r\n\r\n                    <div class=\"moi-product-item__buttons\">\r\n                    <% if(club_product.sold_out == 1) { %>\r\n                        <span class=\"moi-product-item__sold-out\">Sold Out<\/span>\r\n                    <% } else if(item_in_cart_qty === 0) { %>\r\n                        <button type=\"button\"\r\n                                class=\"moi-btn moi-btn--primary moi-btn--add moi-custom-button\"\r\n                                data-targeted_input_name=\"product[<%= club_product.id %>][qty]\"\r\n                                data-action=\"add\"\r\n                                data-product_id=\"<%= club_product.id %>\"\r\n                                onclick=\"moi_add_product('<%= randomRowID %>')\">\r\n                            Add\r\n                        <\/button>\r\n                    <% } else { %>\r\n                        <div class=\"moi-quantity-control\">\r\n                            <button type=\"button\"\r\n                                    class=\"moi-quantity-control__btn\"\r\n                                    data-action=\"minus\"\r\n                                    onclick=\"moi_update_product_qty('<%= randomRowID %>', 'minus')\">\r\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg>\r\n                            <\/button>\r\n                            <span class=\"moi-quantity-control__value\"><%= item_in_cart_qty %><\/span>\r\n                            <button type=\"button\"\r\n                                    class=\"moi-quantity-control__btn\"\r\n                                    data-action=\"plus\"\r\n                                    onclick=\"moi_update_product_qty('<%= randomRowID %>', 'plus')\">\r\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg>\r\n                            <\/button>\r\n                        <\/div>\r\n                    <% } %>\r\n                    <\/div>\r\n\r\n                    <% if(is_pack_mode) { %>\r\n                    <div class=\"moi-product-item__line-total\" data-price=\"<%= discounted_price %>\">\r\n                        <div class=\"moi-product-item__line-total-label\">Price<\/div>\r\n                        <div class=\"moi-product-item__line-total-value\"><%= currency_symbol %><span class=\"line-total-amount\"><%= item_in_cart_qty > 0 ? (item_in_cart_qty * parseFloat(discounted_price)).toFixed(2) : initial_line_total %><\/span><\/div>\r\n                    <\/div>\r\n                    <% } %>\r\n                <\/div>\r\n                <% } %>\r\n            <\/div>\r\n        <\/article>\r\n        <% });<!--each end--> %>\r\n    <%}else{%>\r\n    <div class=\"woocommerce-info\">\r\n        No products available. Stay tuned!\r\n    <\/div>\r\n    <%}%>\r\n    <\/div>\r\n    <div id=\"moi_model_holder\"><\/div>\r\n<\/script>\r\n\r\n\r\n<script id=\"product_multi_button_script\" type=\"text\/template\">\r\n    <div class=\"moi-quantity-control\">\r\n        <button type=\"button\"\r\n                class=\"moi-quantity-control__btn\"\r\n                data-action=\"minus\"\r\n                onclick=\"moi_update_product_qty('<%= product_wrapper_id %>', 'minus')\">\r\n            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg>\r\n        <\/button>\r\n        <span class=\"moi-quantity-control__value\"><%= selected_product_qty %><\/span>\r\n        <button type=\"button\"\r\n                class=\"moi-quantity-control__btn\"\r\n                data-action=\"plus\"\r\n                onclick=\"moi_update_product_qty('<%= product_wrapper_id %>', 'plus')\">\r\n            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg>\r\n        <\/button>\r\n    <\/div>\r\n<\/script>\r\n\r\n<script id=\"schedule_monthly_script\" type=\"text\/template\">\r\n    <div class=\"moi-section-header\">\r\n        <span class=\"moi-section-number\">1<\/span>\r\n        <h2 class=\"moi-section-title\">Select Your Frequency<\/h2>\r\n        <% if (typeof moi_carrots !== 'undefined' && moi_carrots.clubs_below_frequency) { %>\r\n            <%= moi_carrots.clubs_below_frequency %>\r\n        <% } else { %>\r\n            <p class=\"moi-section-subtitle\">Choose how often you'd like to receive your selections<\/p>\r\n        <% } %>\r\n    <\/div>\r\n    <div class=\"moi-frequency-grid moi_selected_frequency\">\r\n        <%\r\n        const SELECTED_OPTIONS = JSON.parse(club_schedule.selected_options);\r\n        let active_schedule_class = '';\r\n\r\n        _.each(SELECTED_OPTIONS , function(option , index) {\r\n            active_schedule_class = (selected_schedule_options == option) ? 'is-selected' : '';\r\n        %>\r\n        <div class=\"moi-frequency-item <%= active_schedule_class %>\" onclick=\"set_selected_schedule_options(this, '<%= option %>')\">\r\n            <div class=\"moi-frequency-item__icon\">\r\n                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"\/><polyline points=\"3.27 6.96 12 12.01 20.73 6.96\"\/><line x1=\"12\" y1=\"22.08\" x2=\"12\" y2=\"12\"\/><\/svg>\r\n            <\/div>\r\n            <div class=\"moi-frequency-item__label\"><%= option %><\/div>\r\n            <div class=\"moi-frequency-item__desc\">\r\n                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect width=\"18\" height=\"18\" x=\"3\" y=\"4\" rx=\"2\" ry=\"2\"\/><line x1=\"16\" x2=\"16\" y1=\"2\" y2=\"6\"\/><line x1=\"8\" x2=\"8\" y1=\"2\" y2=\"6\"\/><line x1=\"3\" x2=\"21\" y1=\"10\" y2=\"10\"\/><\/svg>\r\n                Recurring Delivery\r\n            <\/div>\r\n        <\/div>\r\n        <% }) %>\r\n    <\/div>\r\n<\/script>\r\n<script>\r\n\r\n<\/script>\r\n<script>\r\n    <\/script>\r\n\r\n<script id=\"schedule_custom_script\" type=\"text\/template\">\r\n    <div class=\"moi-section-header\">\r\n        <span class=\"moi-section-number\">1<\/span>\r\n        <h2 class=\"moi-section-title\">Select Your <%= (club_schedule.type == 'custom')? 'Shipments' : 'Shipment' %><\/h2>\r\n        <% if (typeof moi_carrots !== 'undefined' && moi_carrots.clubs_below_frequency) { %>\r\n            <%= moi_carrots.clubs_below_frequency %>\r\n        <% } else { %>\r\n            <p class=\"moi-section-subtitle\">Choose when you'd like to receive your shipments<\/p>\r\n        <% } %>\r\n    <\/div>\r\n    <div class=\"moi-shipments-grid custom_date_picker_holder\">\r\n            <%\r\n            const date = new Date();\r\n            date.setDate(date.getDate() + parseInt(club_schedule.start_after) );\r\n            let shipment_date = \"\"\r\n            let haveDates = false;\r\n            let removeBtn = '';\r\n            let length = club_schedule.minimum_shipment\r\n             if (selected_schedule_options !== undefined\r\n                 && selected_schedule_options !== null\r\n                 && selected_schedule_options.length > 0  ){\r\n                <!-- Length overridden-->\r\n                length = selected_schedule_options.length\r\n                haveDates = true;\r\n            }\r\n\r\n\r\n            for(let shipment = 1; shipment <= length ; shipment++ ){\r\n                let val = '';\r\n                let active_schedule_class = '';\r\n\r\n                if(haveDates){\r\n                    val = selected_schedule_options[shipment-1];\r\n                    active_schedule_class = 'active';\r\n                 }\r\n\r\n\r\n                if(shipment > club_schedule.minimum_shipment){\r\n                    removeBtn = `<button type=\"button\" class=\"moi-shipment-card__remove\" onclick=\"removeMoiCustomDatePicker(this)\" aria-label=\"Remove shipment\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><\/button>`;\r\n                } else {\r\n                    removeBtn = '';\r\n                }\r\n\r\n                let shipmentText = shipment + (shipment % 10 == 1 && shipment % 100 != 11 ? \"st\" :\r\n                        (shipment % 10 == 2 && shipment % 100 != 12 ? \"nd\" :\r\n                        (shipment % 10 == 3 && shipment % 100 != 13 ? \"rd\" : \"th\")));\r\n\r\n            %>\r\n                <div class=\"moi-shipment-card <%= active_schedule_class %>\">\r\n                    <%= removeBtn %>\r\n                    <div class=\"moi-shipment-card__icon\">\r\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"\/><polyline points=\"3.27 6.96 12 12.01 20.73 6.96\"\/><line x1=\"12\" y1=\"22.08\" x2=\"12\" y2=\"12\"\/><\/svg>\r\n                    <\/div>\r\n                    <div class=\"moi-shipment-card__label\"><%= shipmentText %> Shipment<\/div>\r\n                    <div class=\"moi-shipment-card__date\" onclick=\"jQuery(this).find('input').focus()\">\r\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect width=\"18\" height=\"18\" x=\"3\" y=\"4\" rx=\"2\" ry=\"2\"\/><line x1=\"16\" x2=\"16\" y1=\"2\" y2=\"6\"\/><line x1=\"8\" x2=\"8\" y1=\"2\" y2=\"6\"\/><line x1=\"3\" x2=\"21\" y1=\"10\" y2=\"10\"\/><\/svg>\r\n                        <input\r\n                                id=\"custom_datetimepicker_<%= shipment%>\"\r\n                                type=\"text\" name=\"schedule[date]\"\r\n                                placeholder=\"Choose date\"\r\n                                class=\"custom_datetimepicker moi-shipment-card__input\"\r\n                                value=\"<%=val%>\"\r\n                                onchange=\"updateSelectedShipments()\"\r\n                                readonly\r\n                        >\r\n                    <\/div>\r\n                <\/div>\r\n            <%\r\n                jQuery(function(){\r\n                    let inputElement = document.getElementById('custom_datetimepicker_'+shipment);\r\n                    if (inputElement) {\r\n                        new AirDatepicker(inputElement, {\r\n                            locale: localeEn,\r\n                            dateFormat: convertWpToAirDatepickerFormat(moi_date_format),\r\n                            minDate: date,\r\n                            autoClose: true,\r\n                            onSelect: function({datepicker}) {\r\n                                datepicker.$el.dispatchEvent(new Event('change', { bubbles: true }));\r\n                            }\r\n                        });\r\n                    }\r\n                });\r\n            %>\r\n            <% } %>\r\n            <% if(club_schedule.type == 'custom' && club_schedule.minimum_shipment != club_schedule.maximum_shipment) { %>\r\n                <div class=\"moi-shipment-card moi-shipment-card--add\" id=\"moi_add_more_shipment\" onclick=\"moi_new_custom_date_picker(this, '<%= (club_schedule.start_after ) %>');\">\r\n                    <div class=\"moi-shipment-card__icon\">\r\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg>\r\n                    <\/div>\r\n                    <div class=\"moi-shipment-card__label\">Add Shipment<\/div>\r\n                <\/div>\r\n            <% } %>\r\n    <\/div>\r\n    <div class=\"moi-error-message moi-none schedule_custom_script_error\">Please select your shipment dates to continue.<\/div>\r\n    <!-- <div class=\"moi-lg-12 moi-md-12 moi-mt-5 moi-text-center\">\r\n        <div id=\"moi_schedule_wrapper_continue\">\r\n            <div class=\"moi-12 moi-mb-4\">\r\n                <button type=\"button\"\r\n                        class=\"woocommerce-Button button alt wp-element-button moi-frequency-continue-btn\"\r\n                        onclick=\"validate_frequency_options()\">Continue<\/button>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div> -->\r\n<\/script>\r\n<script id=\"schedule_specific_date_script\" type=\"text\/template\">\r\n    <div class=\"moi-section-header\">\r\n        <span class=\"moi-section-number\">1<\/span>\r\n        <h2 class=\"moi-section-title\">Your Scheduled Shipments<\/h2>\r\n        <% if (typeof moi_carrots !== 'undefined' && moi_carrots.clubs_below_frequency) { %>\r\n            <%= moi_carrots.clubs_below_frequency %>\r\n        <% } else { %>\r\n            <p class=\"moi-section-subtitle\">Pre-scheduled dates for your upcoming shipments<\/p>\r\n        <% } %>\r\n    <\/div>\r\n\r\n    <div class=\"moi-shipments-grid moi-schedule_specific_dates\">\r\n    <%\r\n            let active_schedule_class = '';\r\n            let shipment = 'Shipment';\r\n            let SELECTED_OPTIONS = JSON.parse(club_schedule.selected_options);\r\n            let haveDates = false;\r\n            let length = club_schedule.minimum_shipment;\r\n\r\n            if (selected_schedule_options !== undefined && selected_schedule_options !== null && selected_schedule_options.length > 0  ){\r\n                length = selected_schedule_options.length\r\n                haveDates = true;\r\n                SELECTED_OPTIONS = selected_schedule_options;\r\n            }\r\n\r\n            \/\/ Get club to check instant shipment status\r\n            let club = get_selected_club();\r\n            const INSTANT_SHIPMENT = club.schedule.allow_instant_shipment;\r\n            let instant_shipment_checked = (club.instant_shipment_consent === 'Yes' || INSTANT_SHIPMENT === 'Forced');\r\n\r\n            \/\/ Filter out instant shipment date from display (it's shown separately)\r\n            if (instant_shipment_checked && Array.isArray(SELECTED_OPTIONS) && SELECTED_OPTIONS.length > 0) {\r\n                SELECTED_OPTIONS = SELECTED_OPTIONS.slice(1);\r\n            }\r\n\r\n        _.each(SELECTED_OPTIONS , function(specific_date , index) {\r\n            let displayDate = specific_date['date'];\r\n            let shipmentIndex = index + 1;\r\n            let shipmentText = shipmentIndex + (shipmentIndex % 10 == 1 && shipmentIndex % 100 != 11 ? \"st\" :\r\n                (shipmentIndex % 10 == 2 && shipmentIndex % 100 != 12 ? \"nd\" :\r\n               (shipmentIndex % 10 == 3 && shipmentIndex % 100 != 13 ? \"rd\" : \"th\")));\r\n            let isDisabled = specific_date['status'] != true;\r\n    %>\r\n            <div class=\"moi-shipment-card <%= active_schedule_class %> <%= isDisabled ? 'is-disabled' : '' %>\"\r\n                 data-specific_date=\"specific_date\">\r\n                <div class=\"moi-shipment-card__icon\">\r\n                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"\/><polyline points=\"3.27 6.96 12 12.01 20.73 6.96\"\/><line x1=\"12\" y1=\"22.08\" x2=\"12\" y2=\"12\"\/><\/svg>\r\n                <\/div>\r\n                <div class=\"moi-shipment-card__label\"><%= shipmentText %> Shipment<\/div>\r\n                <div class=\"moi-shipment-card__date\">\r\n                    <% if(isDisabled) { %>\r\n                        <del><%= displayDate %><\/del>\r\n                    <% } else { %>\r\n                        <%= displayDate %>\r\n                    <% } %>\r\n                <\/div>\r\n            <\/div>\r\n            <% }) %>\r\n    <\/div>\r\n<\/script>\r\n\r\n<script id=\"overview_action_holder\" type=\"text\/template\">\r\n    <%\r\n        let validated =  moi_validate_cart();\r\n    %>\r\n    <div class=\"moi-sidebar__actions\">\r\n        <button type=\"button\" class=\"moi-btn moi-btn--primary moi-btn--lg moi-btn--block moi-custom-button\" onclick=\"moi_checkout_page()\" <%= (!validated) ? \"disabled\" : \"\" %>>\r\n            Continue\r\n        <\/button>\r\n        <button type=\"button\" class=\"moi-sidebar__clear-btn\" onclick=\"moi_discard()\">Clear Selection<\/button>\r\n    <\/div>\r\n<\/script>\r\n<script id=\"modal_overview_action_holder\" type=\"text\/template\">\r\n    <%\r\n        let validated =  moi_validate_cart();\r\n    %>\r\n    <table class=\"shop_table woocommerce-checkout-review-order-table\">\r\n        <tbody class=\"moi-border-none\" style=\"border-bottom: none !important;\">\r\n        <tr>\r\n            <td style=\"text-align: center;\"><div class=\"moi-modal-error\" id=\"moi-card-errors\" style=\"display: none;\"><\/div><\/td>\r\n            <td class=\"moi-text-right\">\r\n                <button  type=\"button\" id=\"modal_save_membership_btn\"\r\n                class=\"moi-btn moi-custom-button moi-btn-loading_modal\"\r\n                data-publish-key=\"\"\r\n                data-secret=\"\"\r\n                data-payment-method=\"\"\r\n                onclick=\"moi_modal_save_membership(null, null)\" <%= (!validated) ? \"disabled\" : \"\" %> style=\"position: relative; min-width: 160px;\" >\r\n                    <span id=\"buttonText-modal\" class=\"moi-btn-label\">Update Selections<\/span>\r\n                    <div class=\"moi-btn-spinner moi-d-none\" id=\"moi-spin-loader-modal\"><\/div>\r\n                <\/button>\r\n            <\/td> \r\n        <\/tr>\r\n        <\/tbody>\r\n    <\/table>\r\n<\/script>\r\n\r\n<script id=\"moi_cart_tax_description_script\" type=\"text\/template\">\r\n    <% if( moi_cart_prices_to_show === 'incl' ){\r\n    let currency_symbol= '&#36;';\r\n%>\r\n    <span><%= currency_symbol %> <%= data.total_tax %> (included in total) <\/span>\r\n<% }else{  %>\r\n    <span><%= currency_symbol %> <%= data.total_tax %>  <\/span>\r\n<% } %>\r\n<\/script>    <script id=\"overview_selected_club\" type=\"text\/template\">\n    <div id=\"club_view_modal\" class=\"moi-modal\">\n        <div class=\"moi-modal-dialog moi-modal-lg\">\n            <div class=\"moi-modal-content club_overview_details\" style=\"margin-bottom: 100px\">\n                <span class=\"moi-modal-close\" id=\"cluboverview-close\" onclick=club_overview_mdl_close()>&times;<\/span>\n                <div class=\"moi-modal-header\">\n                    <strong class=\"club_title_val\" style=\"display: inline-block\">Club Title<\/strong>\n                <\/div>\n                <div class=\"moi-modal-body\">\n                    <div class=\"club_img_val moi-form-group\"><\/div>\n                    <div class=\"club_description_val moi-form-group\"><\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n    <%\n\n    let $ = jQuery;\n    let currency_symbol= '&#36;';\n    let club = get_selected_club();\n    const club_id = club.id;\n    %>\n\n    <h3 class=\"moi-sidebar__title\"><%= club.title %><\/h3>\n    <% if (club.description && club.description.trim().length > 0) { %>\n    <a href=\"javascript:void(0)\" class=\"moi-sidebar__header-link\" data-id=\"<%= club.id %>\" onclick=\"load_club_preview(this)\">View Club Details<\/a>\n    <% } %>\n<\/script>\n<script id=\"overview_selected_products\" type=\"text\/template\">\n    <%\n    let $ = jQuery;\n    let currency_symbol= '&#36;';\n    let club = get_selected_club();\n    const club_id = club.id;\n    let product_rows = club.selected_products;\n    let total_products = product_rows.reduce((accumulator, current) => accumulator + current.product_qty, 0)\n    %>\n\n    <div class=\"moi-sidebar__section\">\n        <div class=\"moi-sidebar__section-title\">Selected Products<\/div>\n        <% let hasInvalidProducts = product_rows.some(function(p) { return p.is_invalid; }); %>\n        <% if (hasInvalidProducts) { %>\n        <div class=\"moi-sidebar__requirements is-not-met\" style=\"margin-bottom: 8px;\">\n            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg>\n            <span>Some products are no longer available in this club. Please remove them to save changes.<\/span>\n        <\/div>\n        <% } %>\n        <%\n        if (product_rows.length > 0){\n        _.each(product_rows, function(product_row){\n        let show_price = ( moi_cart_prices_to_show === 'excl' ) ? product_row.price_excluding_tax :\n        product_row.price_including_tax;\n        let discounted_price = moi_discount_price(show_price, club.discount);\n        let has_discount = discounted_price != show_price;\n        %>\n        <div class=\"moi-sidebar__product\">\n            <div class=\"moi-sidebar__product-image\">\n                <img decoding=\"async\" onerror=\"javascript:product_img_error(this)\" src=\"<%= product_row.product_image %>\" alt=\"<%= product_row.product_title %>\">\n            <\/div>\n            <div class=\"moi-sidebar__product-info\">\n                <div class=\"moi-sidebar__product-name\"><%= product_row.product_title %><\/div>\n                <% if (product_row.is_invalid) { %>\n                <div class=\"moi-sidebar__product-meta\">\n                    <span style=\"color: #d32f2f; font-size: 0.8em; font-weight: 500;\">No longer available<\/span>\n                <\/div>\n                <% } else { %>\n                <div class=\"moi-sidebar__product-meta\">\n                    <span><%= product_row.product_qty %> \u00d7<\/span>\n                    <% if(has_discount) { %>\n                    <span class=\"moi-sidebar__product-price-original\"><%= currency_symbol %><%= show_price?.toFixed(2) %><\/span>\n                    <% } %>\n                    <span class=\"moi-sidebar__product-price\"><%= currency_symbol %><%= discounted_price %><\/span>\n                <\/div>\n                <% } %>\n            <\/div>\n            <% if (product_row.is_invalid || (club.discount_type !== 'fixed' && product_row.product_qty_min <= 0)) { %>\n            <button type=\"button\" class=\"moi-sidebar__product-remove\" onclick=\"moi_remove_cart_item('<%= product_row.product_id %>')\" data-product-qty-min='<%= product_row.product_qty_min %>'>\n                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg>\n            <\/button>\n            <% } %>\n        <\/div>\n        <%\n        })\n        if (club.minimum_products > 0){\n        %>\n        <div class=\"moi-sidebar__requirements <%= total_products >= club.minimum_products ? 'is-met' : 'is-not-met' %>\">\n            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\n            <span>Minimum <%= club.minimum_products %> products required, <strong><%= total_products %><\/strong> selected.<\/span>\n        <\/div>\n        <% }\n        if (club.max_products !== null && club.max_products !== undefined && club.max_products > 0 && total_products >= club.max_products){\n        %>\n        <div class=\"moi-sidebar__requirements moi-sidebar__requirements--max is-at-max\">\n            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg>\n            <span>Maximum <%= club.max_products %> products \u2014 <strong>limit reached<\/strong><\/span>\n        <\/div>\n        <% }\n        } else { %>\n        <div class=\"moi-sidebar__empty\">\n            Please make your selection.\n        <\/div>\n        <% } %>\n    <\/div>\n<\/script>\n<script id=\"overview_schedule_monthly_script\" type=\"text\/template\">\n    <%\n    let $ = jQuery;\n\n    <!--Instant Shipment Allowed-->\n    const INSTANT_SHIPMENT = club.schedule.allow_instant_shipment;\n\n    let shipment_day_or_date = club.schedule.shipment_day_or_date;\n    const selected_schedule_options = club.selected_schedule_options;\n    let frequencyNumber = parseNumberFromFrequency(club.selected_schedule_options);\n    let abbreviation = '';\n    let ship_date_or_day_title;\n\n    let current_date = moment();\n\n    if(club.schedule.type === 'monthly') {\n    shipment_day_or_date = (shipment_day_or_date == null) ? current_date.date(): shipment_day_or_date;\n    abbreviation = nth(shipment_day_or_date);\n    ship_date_or_day_title = 'Shipment Date';\n    }else if(club.schedule.type === 'weekly') {\n    shipment_day_or_date = (shipment_day_or_date == null) ? current_date.format('dddd') : shipment_day_or_date;\n    ship_date_or_day_title = 'Shipment Day';\n    }\n\n    let instant_shipment_VAL;\n    let minimum_shipment = club.schedule.minimum_shipment\n    let next_shipment_date = club.next_shipment_date;\n    let nextShipmentDate;\n    let isEditMode = moiLocalStorage_getItem('moi_edit_case') === 'true';\n    if (isEditMode) {\n        let storedDate = moiLocalStorage_getItem('nextShipmentDate');\n        if (storedDate && storedDate !== 'No upcoming shipments') {\n            nextShipmentDate = storedDate;\n        } else {\n            nextShipmentDate = next_shipment_date;\n        }\n    } else {\n        nextShipmentDate = next_shipment_date || moiLocalStorage_getItem('nextShipmentDate');\n    }\n    let month_VAL = '';\n    let hideInstantShipmentUI = isEditMode;  \/\/ Hide instant shipment UI when editing\n    \/\/ In edit mode, never show instant shipment as checked (even for Forced clubs)\n    let instant_shipment_checked = hideInstantShipmentUI ? '' : ((club.instant_shipment_consent === 'Yes' || INSTANT_SHIPMENT === 'Forced') ? 'checked' : '');\n    let instant_shipment_disabled = (INSTANT_SHIPMENT === 'Forced') ? 'disabled' : '';\n\n\n    %>\n\n\n    <div class=\"moi-sidebar__schedule-section\">\n        <div class=\"moi-sidebar__section-title\">Frequency<\/div>\n        <div class=\"moi-sidebar__frequency-info\">\n            <i class=\"fas fa-sync-alt\"><\/i>\n            <% let optionVals = (selected_schedule_options || '').split('_'); %>\n            <% let lowerOptionVals = optionVals.map(val => val.toLowerCase()); %>\n            <span><%= total_cart_products %> Products <%= lowerOptionVals[0] %> <%= lowerOptionVals[1] %> <%= lowerOptionVals[2] %><\/span>\n        <\/div>\n        <% if((INSTANT_SHIPMENT === \"Yes\" || INSTANT_SHIPMENT === \"Forced\") && !hideInstantShipmentUI){ %>\n        <div class=\"moi-sidebar__instant-shipment\">\n            <span class=\"moi-sidebar__instant-shipment-label\">\n                Ship My Order Now\n                <div class=\"moi-tooltip\"><span class=\"moi-icons\"><i class=\"fa-solid fa-circle-question\"><\/i><\/span><span class=\"moi-tooltiptext\">Get your order shipped now without changing your regular schedule. You'll be charged at checkout.<\/span><\/div>\n            <\/span>\n            <label class=\"moi-toggle\">\n                <input onchange=\"set_instant_shipment(this)\" type=\"checkbox\" name=\"schedule[instant_shipment]\" value=\"Yes\" <%= (instant_shipment_checked) ? 'checked' : '' %> <%= (instant_shipment_disabled) ? 'disabled' : '' %>>\n                <span class=\"moi-toggle__slider\"><\/span>\n            <\/label>\n        <\/div>\n        <div class=\"moi-sidebar__instant-shipment-banner <%= instant_shipment_checked ? '' : 'moi-none' %>\">\n            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"9\" cy=\"21\" r=\"1\"\/><circle cx=\"20\" cy=\"21\" r=\"1\"\/><path d=\"M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6\"\/><\/svg>\n            <span>Your order will be processed today<\/span>\n        <\/div>\n        <% } %>\n        <div class=\"moi-sidebar__next-shipment\">\n            <span>Your Next Shipment<\/span>\n            <span class=\"moi-sidebar__next-shipment-date moi-overview-shipment-date\">\n                <% if(nextShipmentDate && nextShipmentDate !== '') { %>\n                    <%= nextShipmentDate %>\n                <% } %>\n            <\/span>\n        <\/div>\n    <\/div>\n<\/script>\n<script id=\"overview_schedule_cos_script\" type=\"text\/template\">\n    <%\n    let $ = jQuery;\n    const INSTANT_SHIPMENT = club.schedule.allow_instant_shipment;\n    let hideInstantShipmentUI = moiLocalStorage_getItem('moi_edit_case') === 'true';  \/\/ Hide instant shipment UI when editing\n    \/\/ In edit mode, never show instant shipment as checked (even for Forced clubs)\n    let instant_shipment_checked = hideInstantShipmentUI ? '' : ((club.instant_shipment_consent === 'Yes' || INSTANT_SHIPMENT === 'Forced') ? 'checked' : '');\n    let instant_shipment_disabled = (INSTANT_SHIPMENT === 'Forced') ? 'disabled' : '';\n    let minimum_shipment = club.schedule.minimum_shipment;\n    let repeat_yearly = club.schedule.repeat_yearly;\n\n    let selected_schedule_option = Array.isArray(club.selected_schedule_options) ? [...club.selected_schedule_options] : [];\n    \/\/ Only slice first date if instant shipment is checked AND not in edit mode\n    if (instant_shipment_checked === 'checked' && selected_schedule_option.length > 0) {\n        selected_schedule_option = selected_schedule_option.slice(1);\n    }\n\n    <!--Create Start After Date-->\n    let next_shipment_date = club.next_shipment_date;\n    let nextShipmentDate;\n    let isEditMode = moiLocalStorage_getItem('moi_edit_case') === 'true';\n    if (isEditMode) {\n        let storedDate = moiLocalStorage_getItem('nextShipmentDate');\n        if (storedDate && storedDate !== 'No upcoming shipments') {\n            nextShipmentDate = storedDate;\n        } else {\n            nextShipmentDate = next_shipment_date;\n        }\n    } else {\n        nextShipmentDate = next_shipment_date || moiLocalStorage_getItem('nextShipmentDate');\n    }\n    let selected_shipments = selected_schedule_option.length;\n    %>\n\n    <div class=\"moi-sidebar__schedule-section\">\n        <div class=\"moi-sidebar__section-title\"><%= (club.schedule.type == 'custom' || club.schedule.type == 'specific_date') ? 'Shipments': 'Shipment' %><\/div>\n        <% if(repeat_yearly == 'Yes') { %>\n        <div class=\"moi-sidebar__frequency-info\">\n            <i class=\"fas fa-sync-alt\"><\/i>\n            <span><%= selected_shipments %> Shipments repeated yearly<\/span>\n        <\/div>\n        <% } %>\n        <div class=\"moi-sidebar__shipment-dates\">\n            <% $.each(selected_schedule_option, function (index, option){\n            let status = (option['status']) ? option['status'] : false;\n            let shipment = (option['date']) ? option['date'] : option;\n            %>\n            <span class=\"moi-sidebar__shipment-date-tag\"><%= shipment %><\/span>\n            <% }) %>\n        <\/div>\n        <% if((INSTANT_SHIPMENT === \"Yes\" || INSTANT_SHIPMENT === \"Forced\") && !hideInstantShipmentUI){ %>\n        <div class=\"moi-sidebar__instant-shipment\">\n            <span class=\"moi-sidebar__instant-shipment-label\">\n                Ship My Order Now\n                <div class=\"moi-tooltip\"><span class=\"moi-icons\"><i class=\"fa-solid fa-circle-question\"><\/i><\/span><span class=\"moi-tooltiptext\">Get your order shipped now without changing your regular schedule. You'll be charged at checkout.<\/span><\/div>\n            <\/span>\n            <label class=\"moi-toggle\">\n                <input onchange=\"set_instant_shipment(this)\" type=\"checkbox\" name=\"schedule[instant_shipment]\" value=\"Yes\" <%= (instant_shipment_checked) ? 'checked' : '' %> <%= (instant_shipment_disabled) ? 'disabled' : '' %>>\n                <span class=\"moi-toggle__slider\"><\/span>\n            <\/label>\n        <\/div>\n        <div class=\"moi-sidebar__instant-shipment-banner <%= instant_shipment_checked ? '' : 'moi-none' %>\">\n            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"9\" cy=\"21\" r=\"1\"\/><circle cx=\"20\" cy=\"21\" r=\"1\"\/><path d=\"M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6\"\/><\/svg>\n            <span>Your order will be processed today<\/span>\n        <\/div>\n        <% } %>\n        <div class=\"moi-sidebar__next-shipment\">\n            <span>Your Next Shipment<\/span>\n            <span class=\"moi-sidebar__next-shipment-date moi-overview-shipment-date\">\n                <% if(nextShipmentDate && nextShipmentDate !== '') { %>\n                    <%= nextShipmentDate %>\n                <% } %>\n            <\/span>\n        <\/div>\n    <\/div>\n<\/script>\n\n<script id=\"overview_frequency_placeholder\" type=\"text\/template\">\n    <div class=\"moi-frequency-placeholder\">\n        <span class=\"moi-frequency-placeholder__text\">Please select your frequency.<\/span>\n        <div class=\"moi-frequency-placeholder__loader moi-none\">\n            <div class=\"spinner\"><div class=\"spinner-icon\"><\/div><\/div>\n        <\/div>\n    <\/div>\n<\/script>\n\n<script id=\"overview_calculations\" type=\"text\/template\">\n    <%\n    let $ = jQuery;\n    let currency_symbol= '&#36;';\n\n    let club = get_selected_club();\n    const club_id = club.id;\n\n    let sub_total = 0;\n    let selected_shipping_method = club.selected_shipping;\n    let shipping_group = club.shipping_method;\n    let shipping_method = '' ;\/\/club.shipping_method_label;\n    let shipping_cost = 0.00;\n\n    let cbObj = $('input#moi_self_pickup');\n    let cbObjIschecked = cbObj.is(\":checked\");\n    let pickupLocationSelected = $('input[name=\"pickup_location_id\"]:checked').length > 0;\n    if(cbObjIschecked && pickupLocationSelected){\n        shipping_method = 'Pickup';\n    }\n    else if (selected_shipping_method !== undefined && selected_shipping_method){\n        shipping_method = selected_shipping_method.method;\n        if(selected_shipping_method.cost){\n            shipping_cost = parseFloat(selected_shipping_method.cost);\n        }\n    }\n\n    let tax_total = 0;\n    let total_items = 0;\n    let vat = 0;\n\n    let product_rows = club.selected_products;\n    if (product_rows.length > 0){\n    _.each(product_rows, function(product_row){\n    sub_total += product_row.product_price * product_row.product_qty;\n    total_items += product_row.product_qty;\n    })\n    }\n\n    if(club.price > 0) {\n    sub_total = parseFloat(club.price);\n    }\n\n    let discount_saving = moi_calculate_discount(sub_total, club.discount);\n    let estimated_total = parseFloat((sub_total + shipping_cost) + vat);\n    let grand_total = parseFloat(estimated_total - discount_saving);\n\n    let total_tax = 0;\n    let items_tax = 0;\n    let shipping_tax = 0;\n    if(typeof(taxes) !== 'undefined' && taxes  == null) {\n    total_tax = taxes['total_tax'];\n    items_tax = taxes['items_tax'];\n    shipping_tax = taxes['shipping_tax'];\n    }\n    %>\n\n    <div class=\"moi-sidebar__section moi-sidebar__section--summary\">\n        <div class=\"moi-sidebar__section-title\">Summary<\/div>\n        <div class=\"moi-sidebar__summary-rows\">\n            <div class=\"moi-sidebar__summary-row\">\n                <span class=\"moi-sidebar__summary-label\">Subtotal (<%= total_items %>)<\/span>\n                <span class=\"moi-sidebar__summary-value\"><%= currency_symbol %><%= sub_total?.toFixed(2) %><\/span>\n            <\/div>\n            <% if(club.discount_type !== 'fixed') { %>\n            <div class=\"moi-sidebar__summary-row moi-sidebar__summary-row--discount\">\n                <span class=\"moi-sidebar__summary-label\">\n                    Club Discount <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8 8a2 2 0 0 0 2.828 0l7.172-7.172a2 2 0 0 0 0-2.828l-8-8zM7 9a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\"\/><\/svg> (<%= parseInt(club.discount) %>%)\n                <\/span>\n                <span class=\"moi-sidebar__summary-value\">-<%= currency_symbol %><%= discount_saving %><\/span>\n            <\/div>\n            <% } %>\n            <div class=\"moi-sidebar__summary-row\">\n                <span class=\"moi-sidebar__summary-label\">Shipping <%= shipping_method ? '('+shipping_method+')' : '' %><\/span>\n                <span class=\"moi-sidebar__summary-value\">\n                    <% if (shipping_group === 'ecommerce' && shipping_method === '') { %>\n                        <span class=\"mo-shipping-calculated-on-club\">Calculated On Checkout<\/span>\n                        <span class=\"mo-shipping-calculated-on-checkout\">Calculating..<\/span>\n                    <% } else { %>\n                        <%= currency_symbol %><%= shipping_cost?.toFixed(2) %>\n                    <% } %>\n                <\/span>\n            <\/div>\n            <div class=\"moi-sidebar__summary-row moi-tax-row moi-none\">\n                <span class=\"moi-sidebar__summary-label\">Tax<\/span>\n                <span class=\"moi-sidebar__summary-value\"><%= currency_symbol %><span class=\"moi_tax_val\"><%= total_tax %><\/span><\/span>\n            <\/div>\n            <div class=\"moi-sidebar__summary-row moi-sidebar__summary-row--total\">\n                <span class=\"moi-sidebar__summary-label\">Total<\/span>\n                <span class=\"moi-sidebar__summary-value\"><%= currency_symbol %><%= grand_total?.toFixed(2) %><span class=\"moi-price-suffix\"><%=prices_suffix%><\/span><\/span>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/script>\n    <div id=\"moi_membership_widget\" class=\"web contents\"><\/div>\n    <form name=\"checkout\" class=\"checkout woocommerce-checkout\" id=\"moi_save_membership_form\" action=\"\">\n        <!-- Club Selection (Full Width) -->\n        <div id=\"moi_clubs_wrap\" class=\"moi-none\">\n            <div id=\"moi-club-data\" class=\"moi-club-selection\">\n                <header class=\"moi-club-selection__header\">\n                    <h1 class=\"moi-club-selection__title\">Select Your Club<\/h1>\n                                            <p class=\"moi-club-selection__subtitle\">Join a club and enjoy exclusive member benefits, curated selections, and flexible shipping.<\/p>\n                                    <\/header>\n                <div id=\"moi_clubs_list\"><\/div>\n                            <\/div>\n        <\/div>\n\n        <!-- Two-column layout wrapper (Schedule + Products + Sidebar) -->\n        <div id=\"middle_wrapper\" class=\"moi-none\">\n            <div id=\"middle_wrapper_content\" class=\"moi-widget-layout moi-none\">\n                <!-- Main Content Area (Schedule + Products) -->\n                <div class=\"moi-widget-main\">\n                    <!-- Schedule Selection -->\n                    <div id=\"moi_schedule_wrapper\" class=\"moi-none\">\n                        <div id=\"moi-schedule-data\">\n                            <div id=\"moi_schedules_list\"><\/div>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Product Selection -->\n                    <div id=\"moi_cart_product_holder\">\n                        <!-- Product section header added by JS -->\n                    <\/div>\n                <\/div>\n\n                <!-- Sidebar -->\n                <aside class=\"moi-widget-sidebar\" id=\"moi_selections_overview_holder\">\n                    <div id=\"order_review\" class=\"woocommerce-checkout-review-order\">\n                        <div class=\"moi-sidebar__header\" id=\"moi_load_selected_club\">\n                            <!-- Club name rendered by JS into header -->\n                        <\/div>\n                        <div class=\"moi-sidebar__body\">\n                            <div id=\"moi_load_selected_products\"><\/div>\n                            <div id=\"moi_load_selected_schedule_options\"><\/div>\n                            <div id=\"moi_load_selected_calculations\"><\/div>\n                        <\/div>\n                        <div id=\"moi_load_action_btn_holder\"><\/div>\n                    <\/div>\n                    <div class=\"moi-branding\">\n                        Powered By Members One\n                    <\/div>\n                <\/aside>\n            <\/div>\n        <\/div>\n    <\/form>\n\n    <script src=\"https:\/\/demo.members-one.com\/wine-online\/wp-content\/plugins\/membersone-integration\/assets\/library\/moment\/moment-with-locales.js?v=1.8.5.2\"><\/script>\n    <script src=\"https:\/\/demo.members-one.com\/wine-online\/wp-content\/plugins\/membersone-integration\/assets\/js\/moi-create-membership.js?v=1.8.5.2\"><\/script>\n    <script src=\"https:\/\/demo.members-one.com\/wine-online\/wp-content\/plugins\/membersone-integration\/assets\/js\/moi-membership-common.js?v=1.8.5.2\"><\/script>\n<\/div>\n<br \/>\n","protected":false},"excerpt":{"rendered":"Select Your Club Join a club and enjoy exclusive member benefits, curated selections, and flexible shipping. Powered By Members One","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"close","ping_status":"close","template":"","meta":{"footnotes":""},"class_list":["post-8973","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/demo.members-one.com\/wine-online\/index.php\/wp-json\/wp\/v2\/pages\/8973","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demo.members-one.com\/wine-online\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/demo.members-one.com\/wine-online\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/demo.members-one.com\/wine-online\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/demo.members-one.com\/wine-online\/index.php\/wp-json\/wp\/v2\/comments?post=8973"}],"version-history":[{"count":2,"href":"https:\/\/demo.members-one.com\/wine-online\/index.php\/wp-json\/wp\/v2\/pages\/8973\/revisions"}],"predecessor-version":[{"id":8990,"href":"https:\/\/demo.members-one.com\/wine-online\/index.php\/wp-json\/wp\/v2\/pages\/8973\/revisions\/8990"}],"wp:attachment":[{"href":"https:\/\/demo.members-one.com\/wine-online\/index.php\/wp-json\/wp\/v2\/media?parent=8973"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}