<样式> .手风琴{ 背景色:#fff; 颜色:#444; 光标:指针; 填充:16px; 宽度:100%; 边界:无; 文本对齐:左; 大纲:无; 字体大小:18px; 过渡:0.4s; 边框:2px 实心#ddd; 边框半径:5px; 填充左:0; 边距顶部:20px; } .accordion:first-child { 边距顶部:0; } .appstle_accordian_line_1 { 宽度:18px; 边框底部:2px 实心 #ddd; } .appstle_accordian_line_2 { 弹性增长:1; 边框底部:2px 实心 #ddd; 右边距:10px; } .text-center { 文本对齐:居中!重要; } /* .accordion:hover { 背景色:#eee; } */ /* .accordion:after { 内容:'\002B'; 颜色:#777; 字体粗细:粗体; 浮动:对; 左边距:5px; } */ .accordion.active { 填充左:0; 边框颜色:#444; } .appstle_subscription_contract_detail_toggle_wrapper { 光标:指针; } .appstle_subscription_contract_detail_toggle_wrapper.active .appstle_contract_see_more { 显示:无; } .appstle_subscription_contract_detail_toggle_wrapper.active .appstle_contract_hide_more { 显示:阻止!重要; } .appstle_subscription_contract_detail_toggle_wrapper.active .lnr-chevron-right { 变换:旋转(90度); } .accordion div { 不透明度:0; } /* .accordion.active div { 不透明度:1; } */ .lnr-雪佛龙-右{ 过渡:全0.5s; } .accordion.active .lnr-雪佛龙-右{ 变换:旋转(90度); 颜色:#444 !重要; } 。控制板 { /* 填充:0 18px; */ 背景颜色:白色; 溢出:隐藏; } .appstle_myProduct { 可见性:隐藏; } .appstle_preloader { 宽度:60px; 高度:60px; 位置:绝对; 顶部:70px; 左:计算(50% - 15px); z-索引:98765; } .appstle_statusBadge { 显示:内联块; 填充:.25em .4em; 字体大小:75%; 字体粗细:700; 行高:1; 文本对齐:居中; 空白:nowrap; 垂直对齐:基线; 边界半径:.25rem; } .appstle_status_ACTIVE { 填充:5px 15px; 颜色:#fff; 背景颜色:#28a745; } .appstle_status_CANCELLED { 颜色:#fff; 背景颜色:#6c757d; } .appstle_status_QUEUED { 颜色:#fff; 背景颜色:#28a745; } .appstle_status_SKIPPED { 颜色:#fff; 背景颜色:#6c757d; } .appstle_sub-title { 字体大小:18px; 字体粗细:粗体; 文本转换:大写; 字母间距:.1em; 边距:8px!重要; } @media 屏幕和(最大宽度:1024px){ .appstle_sub-title { 字体大小:13px; } } .appstle_orderDate_CANCELLED { 显示:无; } .appstle_upcomingAcc_CANCELLED { 显示:无; } .appstle_cancelbtn_CANCELLED { 显示:无; } .appstle_orderFrequency_CANCELLED { 显示:无; } .hideSkipbtn_SKIPPED { 显示:无; } .appstle_skipShipmentFlag_false, .appstle_pauseResumeSubscriptionFlag_false, .appstle_changeNextOrderDateFlag_false, .appstle_changeOrderFrequencyFlag_false, .appstle_createAdditionalOrderFlag_false, .appstle_cancelSubscriptionFlag_false { 显示:无!重要; } .appstle_order-detail_cancel-button, .appstle_order-detail_update-button, .appstle_cancelButton, .appstle_deleteButton, .appstle_updateButton, .appstle_editButton, .appstle_skipOrderButton, .appstle_updatePaymentButton, .appstle_cencelSubscription, .appstle_show_add_products_button, .appstle_edit_shipping_cancel-按钮, .appstle_edit_shipping_update-button, .appstle_pause_subscription_button, .appstle_resume_subscription_button { 填充:6px 12px; 边界:无; 边框半径:4px; 白颜色; 背景颜色:#242222; 字体大小:12px; 边框:1px 实心 #242222; 边距:10px 0; } @media 屏幕和(最大宽度:1024px){ .appstle_order-detail_cancel-button, .appstle_order-detail_update-button, .appstle_cancelButton, .appstle_deleteButton, .appstle_updateButton, .appstle_editButton, .appstle_skipOrderButton, .appstle_updatePaymentButton, .appstle_cencelSubscription, .appstle_show_add_products_button, .appstle_hide_add_products_button, .apptle_product-search-button, .ppstle_pause_subscription_button, .appstle_resume_subscription_button { 字体大小:10px } } .appstle_buttonGroup { 显示:弹性; 边距顶部:15px; justify-content: flex-end; 对齐项目:居中; } .appstle_form_margin { 边距:8px; } .appstle_ml-10 { 左边距:10px; } .appstle_deleteButton { 背景颜色:白色; 边框:1px 实心 #eb3023; 颜色:#eb3023; } .appstle_edit_shipping_cancel-按钮, .appstle_order-detail_cancel-button, .appstle_cancelButton { 背景颜色:白色; 边框:1px 实心 #242222; 颜色:#242222; } .appstle_skipOrderButton:悬停, .appstle_skipOrderButton, .appstle_resume_subscription_button, .appstle_resume_subscription_button:悬停{ 背景颜色:#3ac47d !重要; 边框:1px 实心 #3ac47d !important; 颜色:#fff !重要; } .appstle_updatePaymentButton:悬停, .appstle_updatePaymentButton { 背景颜色:#3ac47d !重要; 边框:1px 实心 #3ac47d !important; 颜色:#fff !重要; } .appstle_show_add_products_button, .appstle_show_add_products_button:悬停{ 背景颜色:#545cd8!重要; 边框:1px 实心 #545cd8!important; } .appstle_cencelSubscription:悬停, .appstle_cencelSubscription, .appstle_pause_subscription_button, .appstle_pause_subscription_button:悬停{ 背景颜色:#d92550!重要; 边框:1px 实心 #d92550!important; } .appstle_form_group { 边距顶部:15px; } .appstle_form_group 选择,.appstle_form_group 输入 { 宽度:100%; } .appstle_product_search_wrapper { 边距:30px 0; 显示:弹性; 弹性方向:列; } .appstle_product-search-select { 弹性增长:1; } .appstle_delete_model_nobtn { 填充:5px 20px; 背景:#0d4f0d; 边界:无; 边框半径:8px; 颜色:#fff; 字体大小:12px; } .appstle_delete_model_yesbtn { 填充:5px 20px; 背景:#a13333; 边界:无; 边框半径:8px; 颜色:#fff; 字体大小:12px; } .appstle_order-detail-edit-button{ 填充:5px 15px; 边界:无; 边框半径:4px; 白颜色; 背景颜色:#242222; } .appstle_hide_add_products_button, .appstle_hide_add_products_button:悬停, .appstle_product-search-button { 填充:0 12px; 边界:无; 边框半径:4px; 白颜色; 背景色:#545cd8; 字体大小:12px; } .appstle_hide_add_products_button:活动, .appstle_hide_add_products_button:焦点, .appstle_hide_add_products_button, .appstle_hide_add_products_button:悬停{ 背景颜色:#d92550 !重要; } .select2-container, .select2-container--default { 弹性增长:1; } .appstle_input_error { 颜色:#eb3023; 字体大小:10px; 边距顶部:5px; } .appstle_order_detail_header { 填充:20px; 背景色:#eee; 边距顶部:34px; 显示:弹性; 字体粗细:粗体; 字体大小:20px; 底边距:10px; } .appstle_order_detail_row { 显示:弹性; 对齐内容:间隔; 填充:10px 0px; 对齐项目:居中; } .appstle_loadersmall { 边框:5px 实心 #f3f3f3; -webkit-animation:appstle_spin 1s 线性无限; 动画:appstle_spin 1s 线性无限; 边框顶部:5px 实心 #555; 边界半径:50%; 宽度:60px; 高度:60px; 边距:0 自动; } .appstle_loaderTiny { 边框:2px 实心 #f3f3f3; -webkit-animation:appstle_spin 1s 线性无限; 动画:appstle_spin 1s 线性无限; 边框顶部:2px 实心 #555; 边界半径:50%; 宽度:18px; 高度:18px; 边距:0 自动; } @keyframes apptle_spin_tiny { 0% { -webkit-transform:旋转(0度); -ms-transform:旋转(0度); 变换:旋转(0度); } 100% { -webkit-transform:旋转(360度); -ms-transform:旋转(360 度); 变换:旋转(360度); } } /* 模态(背景) */ .apptle_delete_modal { 文本对齐:居中; 显示:无; /* 默认隐藏 */ 位置:固定; /* 原地不动 */ z-索引:20; /* 坐在上面 */ 填充顶部:100px; /* 盒子的位置 */ 左:0; 顶部:0; 宽度:100%; /* 全屏宽度 */ 高度:100%; /* 全高 */ 溢出:自动; /* 根据需要启用滚动 */ 背景颜色:RGB(0,0,0); /* 后备颜色 */ 背景颜色:RGBA(0,0,0,0.4); /* 黑色不透明 */ } /* 模态内容 */ .appstle_delete_modal-content { 文本对齐:居中; 背景色:#fefefe; 保证金:自动; 填充:20px; 边框:1px 实心 #888; 位置:绝对; 顶部:50%; 左:50%; 变换:翻译(-50%,-50%); 背景颜色:白色; 填充:1rem 1.5rem; 宽度:27rem; 边界半径:0.5rem; } /* 关闭按钮 */ .appstle_model_close { 边距:1px; 颜色:#aaaaaa; 浮动:对; 字体大小:28px; 字体粗细:粗体; 文字对齐:右; 宽度:1.5rem; 行高:1.5rem; 文本对齐:居中; 光标:指针; 边界半径:0.25rem; 背景颜色:浅灰色; } .appstle_model_close:悬停, .appstle_model_close:focus { 颜色:#000; 文字装饰:无; 光标:指针; } @-webkit-keyframes apptle_spin { 0% { -webkit-transform:旋转(0度); -ms-transform:旋转(0度); 变换:旋转(0度); } 100% { -webkit-transform:旋转(360度); -ms-transform:旋转(360 度); 变换:旋转(360度); } } @keyframes apptle_spin { 0% { -webkit-transform:旋转(0度); -ms-transform:旋转(0度); 变换:旋转(0度); } 100% { -webkit-transform:旋转(360度); -ms-transform:旋转(360 度); 变换:旋转(360度); } } @media 屏幕和(最大宽度:767px){ .appstle_product_wrapper { 弹性方向:列; } } .appstle_product_wrapper { 显示:弹性; 边距顶部:16px; /* 背景颜色:#eeeeee; */ box-shadow: 0 0px 4px 0 rgb(0 0 0 / 15%); 填充:15px; 边框半径:5px; 对齐项目:居中; 边框:2px 实心#ddd; } .appstle_SKIPPED_status, .appstle_CANCELLED_status, .appstle_QUEUED_status, .appstle_ACTIVE_status, .appstle_PAUSED_status { 背景颜色:#3ac47d; 白颜色; 填充:3px 10px; 边框半径:4px; 字体大小:10px; 字母间距:0.3px; 左边距:5px; 行高:1; } .appstle_QUEUED_status, .appstle_PAUSED_status { 背景颜色:#f7b924!重要; } .appstle_SKIPPED_status, .appstle_CANCELLED_status { 背景颜色:#d92550!重要; } .appstle_edit_wrapper { 边距顶部:20px } .appstle_edit_wrapper 表单 { 显示:弹性; 对齐内容:间隔; } .appstle_edit_wrapper .appstle_form_group { 宽度:计算(50% - 10px); } .appstle_edit_total { 右边距:30px; 字体大小:21px; 字母间距:0.5px; } .appstle_subscription_image_wrapper { 显示:弹性; flex-wrap: 包裹; } .appstle_subscription_image_wrapper img { 弹性基础:46%; 保证金:2%; 显示:弹性; 对齐项目:居中; 对齐内容:居中; } .appstle_subscription_detail { padding-right: 30px; 最小高度:200px; } 。网格 {} .appstle_subscription_image_wrapper { 显示:弹性; flex-wrap: 包裹; } .appstle_subscription_image_wrapper img { 弹性基础:46%; 保证金:2%; 显示:弹性; 对齐项目:居中; 对齐内容:居中; } .appstle_subscription_detail { padding-right: 30px; 最小高度:200px; 显示:弹性; 弹性方向:列; } 。网格 {} .appstle_order_detail_row { 边距:0 8px 0px 8px; 填充:0; justify-content: flex-start; 最小高度:30px; } @media 屏幕和(最大宽度:1024px){ .appstle_order_detail_row { 最小高度:15px; } } .appstle_font_size { 字体大小:13px !重要; } @media 屏幕和(最大宽度:1024px){ .appstle_font_size { 字体大小:10px !重要; } } 跨度 {} .appstle_next_oder_date_wrapper { 显示:弹性; 对齐项目:居中; 弹性增长:1; } .appstle_ml-auto { 左边距:自动; } .appstle_ml-auto { 左边距:自动; } .appstle_mb-0 { 边距底部:0 !重要; } .appstle_order-detail-edit-button { 背景色:透明; 颜色:黑色; } .apptle_subscription_contract_title { 显示:弹性; 对齐项目:居中; /* margin-bottom: 6px !important; */ } @media 屏幕和(最大宽度:767px){ .appstle_subscription_payment_wrapper { 弹性方向:列; } } .appstle_subscription_payment_wrapper { 显示:弹性; 宽度:100%; 对齐项目:居中; 对齐内容:间隔; } @media 屏幕和(最大宽度:750 像素){ .appstle_subscription_contract_content_wrapper_mobile { 填充左:0; 填充右:0; } } .appstle_subscription_flex_override { 显示:弹性; } @media 屏幕和(最大宽度:750 像素){ .appstle_subscription_flex_override { 显示:弹性; 弹性方向:列; 填充左:0; 填充:0 18px; } } .appstle_address_item { 底边距:20px; } .appstle_address_item 输入 { 宽度:100%; } .appstle_address_header_title { 字体大小:28px; 文本对齐:左; align-self: flex-start; 底边距:10px; } .appstle_play_icon { 宽度:6px; 高度:6px; 边框顶部:4px 实心透明; 左边框:8px 实心 #fff; 边框底部:4px 实心透明; 位置:相对; 左:1px; } .appstle_pause_icon { 宽度:7px; 高度:7px; 右边框:3px 实心 #fff; 左边框:3px 实心 #fff; 显示:内联块; } <脚本>//
×
你确定你要删除 ?
`) } 函数 deletePopupConfirm(prepaidFlag) { // 获取模态 var appstleDeletePopupmodal = document.getElementById("appstle_popupModal"); jQuery('body').css('溢出', '隐藏') var appstleModalClose = document.getElementsByClassName("appstle_model_close")[0]; appstleDeletePopupmodal.style.display = "block"; // 当用户点击(x)时,关闭模态 appstleModalClose.onclick = function() { hideDeleteConfirmPopup() } jQuery('.appstle_delete_model_nobtn').on('click', function(){ hideDeleteConfirmPopup() }) // 当用户点击模态之外的任何地方时,关闭它 window.onclick = 函数(事件){ if (event.target == apptleDeletePopupmodal) { hideDeleteConfirmPopup() } } } 函数隐藏删除确认弹出(){ jQuery("#appstle_popupModal").remove(); appendDeletePopupBodyTag(); jQuery('body').css('overflow', 'unset') } 函数订阅初始化(){ jQuery("body").off(); if(jQuery('[id=appstle_popupModal]').length > 0) { jQuery("#appstle_popupModal").remove(); } appendDeletePopupBodyTag(); jQuery(".appstle_myProduct").empty(); if (customerId != undefined && shopName != undefined) { 让 subscriptionUrl = "https://subscription-admin.appstle.com/api/subscription-customers/" + customerId + "?shop=" + shopName 让 validContractIdUrl = "https://subscription-admin.appstle.com/api/subscription-customers/valid/" + customerId + "?shop=" + shopName subscriptionRender(subscriptionUrl, validContractIdUrl, shopName, customerId, null); } else if (token!=null){ 让 subscriptionUrl = "https://subscription-admin.appstle.com/api/subscription-customers/" + 令牌 + "?shop=" + shopName let validContractIdUrl = "https://subscription-admin.appstle.com/api/subscription-customers/valid/" + token + "?shop=" + shopName subscriptionRender(subscriptionUrl, validContractIdUrl, shopName, null, token); } 别的 { window.location.href = 'https://'+ shopName +'/account' } } 功能手风琴Toggle(ev){ // var acc = document.getElementsByClassName("accordion"); // 变量 i; ev.classList.toggle("active"); var 面板 = ev.nextElementSibling; $(面板).slideToggle() } 函数 toggleContractAccordian(el) { var selector = $(el).attr('data-accordian-selector') $(el).toggleClass("active"); $(选择器).slideToggle() } 函数 getDeviceType() { const ua = navigator.userAgent; if (/(tablet|ipad|playbook|silk)|(android(?!.*mobi))/i.test(ua)) { 返回“平板电脑”; } 如果 ( /Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)/.test( UA ) ){ 返回“移动”; } 返回“桌面”; }; 功能appstle_adjust_container_height(imageEl){ } 功能更新小计(选择器){ var productEl = jQuery('#' + 选择器); var variantSelectField = productEl.find('select'); var currencyCode = productEl.attr('data-currency-code'); var qty = productEl.find('input').val(); if(parseInt(qty) <= 0) { jQuery('#' + 选择器).find('.appstle_input_error').show(); 返回; } 别的 jQuery('#' + 选择器).find('.appstle_input_error').hide(); var selectedVariantPrice = variantSelectField.find('option[value="' + variantSelectField.val() + '"]').attr('data-variant-price'); productEl.find('.appstle_edit_total span').text(parseFloat(selectedVariantPrice) * parseInt(qty) + ' ' +currencyCode); } 功能隐藏添加产品搜索栏(el){ var currentElement = jQuery(el); currentElement.parent().parent().hide() currentElement.parent().parent().prev()。展示() } 功能 showAddProductsSearchBar(el) { var currentElement = jQuery(el); currentElement.hide(); currentElement.next().show(); } 函数subscriptionRender(subscriptionUrl, validContractIdUrl, shopName, customerId, token) { jQuery.ajax({ 异步:“真”, 类型:“获取”, 网址:订阅网址, 数据类型:“json”, 标题:{ 'Access-Control-Allow-Origin': '*', }, 成功:功能(结果,状态,xhr){ jQuery.ajax({ 异步:“真”, 类型:“获取”, 网址:validContractIdUrl, 数据类型:“json”, 标题:{ 'Access-Control-Allow-Origin': '*', }, 成功:功能(validContractId,状态,xhr){ renderPage(result, validContractId); }, 错误:函数(xhr,状态,错误){ console.log("结果:" + status + " " + error + " " + xhr.status + " " + xhr.statusText) } }); }, 错误:函数(xhr,状态,错误){ console.log("结果:" + status + " " + error + " " + xhr.status + " " + xhr.statusText) } }); } 函数 renderPage(result, validContractId) { if (result?.subscriptionContracts?.edges?.length > 0) { var subscriptionContractData = result.subscriptionContracts.edges.sort(function (a, b) { 如果(a.node.status b.node.status){ 返回 1; } // 名字必须相等 返回0; }); subscriptionContractData.forEach((subItem, index) => { var paymentData = subItem?.node?.customerPaymentMethod?.instrument; var paymentMethod = paymentData?.__typename; var contractId = subItem?.node?.id?.split('/')[4]; var frequencyIntervalTranslate = subItem?.node?.billingPolicy?.interval; if(frequencyIntervalTranslate == "WEEK") { frequencyIntervalTranslate = WeekText } 否则 if(frequencyIntervalTranslate == "DAY") { frequencyIntervalTranslate = DayText } else if(frequencyIntervalTranslate == "MONTH") { frequencyIntervalTranslate = MonthText } else if(frequencyIntervalTranslate == "YEAR") { frequencyIntervalTranslate = YearText } // 检查合约ID是否有效 if(validContractId?.length >0 && !validContractId?.includes(parseInt(contractId))) { 返回; } // 调用合约详情API //var detailContractData = contractDetailsFromContractId(contractId); jQuery.ajax({ 异步:假, 类型:“获取”, url: 'https://subscription-admin.appstle.com/api/subscription-contracts/contract-external/' + contractId + '?shop=' +shopName, 数据类型:“json”, 标题:{ 'Access-Control-Allow-Origin': '*', }, 成功:函数(extResult,状态,xhr){ if (paymentMethod === "CustomerCreditCard") { PaymentMethod = creditcartText } 让 isPrepaidplan = true; if(extResult?.billingPolicy?.intervalCount == extResult?.deliveryPolicy?.intervalCount) { isPrepaidplan = false; } if (subItem.node.lines?.edges?.length == 1) { subItem.node.lines?.edges?。forEach(contractItem => { if (contractItem?.node?.productId == null) { var 手风琴节 = '
' + '
' + '
' + '

' + subscriptionNoText + ' - #' + subItem.node.id.split('/')[4] + '

' + '
' + '

' + '
' + contractItem.node.title + '已被删除。
' + ' ' + '
' + '
' + '
' + ' ' + '
' + '
' + '
' + '
' jQuery('.appstle_myProduct').append(accordionSection); } 别的 { var 订阅列表 = '
' +'
' +'
' +'
' +'

' + subscriptionNoText + ' - #' + subItem.node.id。split('/')[4] + '

' +'
' +'
' +'
' +'
' +'
' +'
' +'
' +'
' +'

' +' ' + subItem.node.billingPolicy.intervalCount + ' ' + frequencyIntervalTranslate + ' ' + subscriptionNoText + '' +' ' + (subItem .node.status == "ACTIVE" ? activeBadgeText : (subItem.node.status === "CANCELLED" ? closedBadgeText : (subItem.node.status === "PAUSED" ? pauseBadgeText : "")) ) + '< /跨度>' +'

' +'' + ((subItem.node.status === "CANCELLED" || subItem.node.status === "PAUSED") ? '' : ('
' +'
' +' ' + nextOrderText + ': ' +'
' +' ' + (new Date(subItem.node.nextBillingDate).toDateString()) + '' +' ' +''+ ((changeNextOrderDateFlag == "true") ? ('') : '') + '' +'
' +'
' +' ' +'
')) + '' +'' + ((subItem.node.status === "CANCELLED") ? '' : ('
' +'
' +' ' + orderFrequencyText + ': ' +'
' +' ' + subItem.node.billingPolicy.intervalCount + ' ' + frequencyIntervalTranslate + '' +' ' +''+ ((subItem.node.状态 === "暂停") ? '' : ((changeOrderFrequencyFlag == "true") ? ('') : '')) + '' +'
' +'
' +' ' +'
' +' ' +' ' +'
' +'
' +' ' +' ' +'
' +'
' +' ' +' ' +'
' +'
' +' ' +' ' +'
' +'
' +' ' +' ' +'
' +'
' +' ' +' ' +'
' +'
' +' ' +' ' +'
' +'
' +' ' +' ' +'
' +'
' +' ' +' ' +'
' +'
' +' ' +' ' +' ' +' ' +'
' +' ' +' ' +'
' +'
' +'
' +'
' +' ' +'
' +'

' + paymentNotificationText + '

' +'
' + '' + (!(shopName == "powerhouse-brewing-company.myshopify.com" && isPrepaidplan) ? ('') : '') + '' + ' ' + '
' jQuery('.appstle_myProduct').append(subscriptionList); jQuery('.appstle_myProduct').append(accordionSection); subItem.node.lines?.edges?.forEach((contractItem, idx) => { if (contractItem?.node?.productId != null) { var subscribedProduct = '
' +' ' +'
' +' ' + contractItem.node?.title + ' - ' + contractItem?。 node?.variantTitle + '' +'
' +'
' +'
' +quantityLbl + ': ' + contractItem.node?.quantity + '
' +'
' + amountLbl + ': ' + contractItem.node?.lineDiscountedPrice?.amount + ' ' + contractItem.node? .lineDiscountedPrice?.currencyCode + '
' +'
' + nextOrderText + ': ' + (new Date(subItem?.node?.nextBillingDate)。toDateString()) + '
' +'
' +'
' +'
') if(isPrepaidplan) { 结果?.originOrder?.fulfillmentOrders?.edges?.map((orderItem) => { var即将到来的订单= '
' +'
' +'
' +'
' +'
' +'
' +'
' +' ' + nextOrderDateLbl + ': ' + (new Date(orderItem?.fulfillAt).toDateString()) + '' +' ' + (orderItem.状态==“跳过”? skipBadgeText : queueBadgeText) + '' +'
' +'
' +'
' +'
' +'
' +' ' + productLabelText + ':' +'
' +'
' +'
' +'
' +'
' +'' + (orderItem.status === 'SKIPPED' ? '' : '') + '' +'
' varcomingOrderOld = '
' + '
' + '
' + '
' + '
' + '
' + nextOrderDateLbl + ': ' + (新日期(orderItem.fulfillAt).toDateString()) + '
' + statusLbl + ': ' + ' ' + (orderItem.status == "SKIPPED" ? skipBadgeText : queueBadgeText) + '' + '

' + ' ' + '

' + '
' + '
' + '
' jQuery('#orderAcc_' + subItem.node?.id?.split('/')[4]).append(upcomingOrder); subItem.node.lines?.edges?.forEach(contractItem => { varcomingOrderImage = '
' varcomingOrderProductTitle = '
' + contractItem?.node?.title + (contractItem?.node?.variantTitle ? (' - ' + contractItem?.node?.variantTitle) : '') + (contractItem?.node?.quantity > 1 ? 'X' + contractItem?.node?.quantity + ' ' : '') + '
' jQuery('#orderImage_' + orderItem.id.split("/").pop()).append(upcomingOrderImage); jQuery('#orderTitle_' + orderItem.id.split("/").pop()).append(upcomingOrderProductTitle); 如果(contractItem.node?.variantTitle == null){ jQuery('.appstle_variantTitle_' + contractItem.node?.productId.split('/')[4]).hide(); } }); }) } // 即将到来的订单 API 在这里调用 if (subItem.node?.status == "ACTIVE" && !isPrepaidplan) { var即将到来的OrderUrl; 如果(客户 ID != 空){ comingOrderUrl = "https://subscription-admin.appstle.com/api/subscription-billing-attempts/top-orders?contractId=" + contractId + "&customerId=" + customerId + "&shop=" + shopName } 别的 { comingOrderUrl = "https://subscription-admin.appstle.com/api/subscription-billing-attempts/top-orders?contractId=" + contractId + "&customerUid=" + token + "&shop=" + shopName } jQuery.ajax({ 类型:“获取”, 网址:即将到来的订单网址, 数据类型:“json”, 标题:{ 'Access-Control-Allow-Origin': '*', }, 成功:功能(结果,状态,xhr){ 如果(结果?。长度> 0){ result.map((orderItem) => { var即将到来的订单= '
' +'
' +'
' +'
' +'
' +'
' +'
' +' ' + nextOrderDateLbl + ': ' + (new Date(orderItem?.billingDate).toDateString()) + '' +' ' + (orderItem.status == "SKIPPED" ? skipBadgeText : queueBadgeText) + ' ' +'
' +'
' +'
' +'
' +'
' +' ' + productLabelText + ':' +'
' +'
' +'
' +'
' +'
' +'' + (orderItem.status === 'SKIPPED' ? '' : '') + '' +'
' varcomingOrderOld = '
' + '
' + '
' + '
' + '
' + '
' + nextOrderDateLbl + ': ' + (新日期(orderItem.billingDate).toDateString()) + '
' + statusLbl + ': ' + ' ' + (orderItem.status == "SKIPPED" ? skipBadgeText : queueBadgeText) + '' + '

' + ' ' + '

' + '
' + '
' + '
' jQuery('#orderAcc_' + subItem.node?.id?.split('/')[4]).append(upcomingOrder); subItem.node.lines?.edges?.forEach(contractItem => { varcomingOrderImage = '
' varcomingOrderProductTitle = '
' + contractItem?.node?.title + (contractItem?.node?.variantTitle ? (' - ' + contractItem?.node?.variantTitle) : '') + (contractItem?.node?.quantity > 1 ? 'X' + contractItem?.node?.quantity + ' ' : '') + '
' jQuery('#orderImage_' + orderItem.id).append(upcomingOrderImage); jQuery('#orderTitle_' + orderItem.id).append(upcomingOrderProductTitle); 如果(contractItem.node?.variantTitle == null){ jQuery('.appstle_variantTitle_' + contractItem.node?.productId.split('/')[4]).hide(); } }); }) } }, 错误:函数(xhr,状态,错误){ console.log("结果:" + status + " " + error + " " + xhr.status + " " + xhr.statusText) } }) } } }); } 别的 { var 订阅列表 = '
' +'
' +'
' +'
' +'

' + subscriptionNoText + ' - #' + subItem.node.id.split('/')[4] + '

' +'
' +'
' +'
' +'
' +'
' +'
' +'
' +'
' +'

' +' ' + subItem.node?.billingPolicy?.intervalCount + ' ' + frequencyIntervalTranslate + ' ' + subscriptionNoText + '' +' ' + (subItem .node.status == "ACTIVE" ? activeBadgeText : (subItem.node.状态 ===“取消”? closedBadgeText : (subItem.node.status === "PAUSED" ? pauseBadgeText : "")) )+ '' +'

' +'' + ((subItem.node.status === "CANCELLED" || subItem.node.status === "PAUSED") ? '' : ('
' +'
' +' ' + nextOrderText + ': ' +'
' +' ' + (new Date(subItem.node?.nextBillingDate).toDateString()) + '' +' ' +''+ ((changeNextOrderDateFlag == "true") ? ('') : '') + '' +'
' +'
' +' ' +'
')) + '' +'' + ((subItem.node.status === "CANCELLED") ? '' : ('
' +'
' +' ' + orderFrequencyText + ': ' +'
' +' ' + subItem.node?.billingPolicy?。intervalCount + ' ' + frequencyIntervalTranslate + '' +' ' +''+ ((subItem.node.status === "PAUSED") ? '' : ((changeOrderFrequencyFlag == "true") ? ('') : '')) + '' +'
' +'
' +' ' +'
' +' ' +' ' +'
' +'
' +' ' +' ' +'
' +'
' +' ' +' ' +'
' +'
' +' ' +' ' +'
' +'
' +' ' +' ' +'
' +'
' +' ' +' ' +'
' +'
' +' ' +' ' +'
' +'
' +' ' +' ' +'
' +'
' +' ' +' ' +'
' +'
' +' ' +' ' +' ' +' ' +'
' +' ' +' ' +'
' +'
' +'
' +'
' +' ' +'
' +'

' + paymentNotificationText + '

' +'
' + '' + (!(shopName == "powerhouse-brewing-company.myshopify.com" && isPrepaidplan)? ('') : '') + '' + ' ' +'
' jQuery('.appstle_myProduct').append(subscriptionList); jQuery('.appstle_myProduct').append(accordionSection); subItem.node.lines?.edges?.forEach((contractItem, idx) => { if (contractItem?.node?.productId != null) { var subscribedProduct = '
' +' ' +'
' +' ' + contractItem.node.title + ' - ' + contractItem?.node?。变体标题 + '' +'
' +'
' +'
' +quantityLbl + ': ' + contractItem.node?.quantity + '
' +'
' + amountLbl + ': ' + contractItem.node?.lineDiscountedPrice?.amount + ' ' + contractItem.node? .lineDiscountedPrice?.currencyCode + '
' +'
' + nextOrderText + ': ' + (new Date(subItem.node?.nextBillingDate).toDateString()) + '' +'
' +'
' +'
') if(isPrepaidplan) { 结果?.originOrder?.fulfillmentOrders?.edges?.map((orderItem) => { var即将到来的订单= '
' +'
' +'
' +'
' +'
' +'
' +'
' +' ' + nextOrderDateLbl + ': ' + (new Date(orderItem?.fulfillAt).toDateString()) + '' +' ' + (orderItem.status ==“跳过”?skipBadgeText : queueBadgeText) + '' +'
' +'
' +'
' +'
' +'
' +' ' + productLabelText + ':' +'
' +'
' +'
' +'
' +'
' +'' + (orderItem.status === 'SKIPPED' ? '' : '') + '' +'
' varcomingOrderOld = '
' + '
' + '
' + '
' + '
' + '
' + nextOrderDateLbl + ': ' + (新日期(orderItem.fulfillAt).toDateString()) + '
' + statusLbl + ': ' + ' ' + (orderItem.status == "SKIPPED" ? skipBadgeText : queueBadgeText) + '' + '

' + ' ' + '

' + '
' + '
' + '
' jQuery('#orderAcc_' + subItem.node?.id?.split('/')[4]).append(upcomingOrder); subItem.node.lines?.edges?.forEach(contractItem => { varcomingOrderImage = '
' varcomingOrderProductTitle = '
' + contractItem?.node?.title + (contractItem?.node?.variantTitle ? (' - ' + contractItem?.node?.variantTitle) : '') + (contractItem?.node?.quantity > 1 ? 'X' + contractItem?.node?.quantity + ' ' : '') + '
' jQuery('#orderImage_' + orderItem.id.split("/").pop()).append(upcomingOrderImage); jQuery('#orderTitle_' + orderItem.id.split("/").pop()).append(upcomingOrderProductTitle); 如果(contractItem.node?.variantTitle == null){ jQuery('.appstle_variantTitle_' + contractItem.node?.productId.split('/')[4]).hide(); } }); }) } // 即将到来的订单 API 在这里调用 if (subItem.node?.status == "ACTIVE" && !isPrepaidplan) { var即将到来的OrderUrl; 如果(客户 ID != 空){ comingOrderUrl = "https://subscription-admin.appstle.com/api/subscription-billing-attempts/top-orders?contractId=" + contractId + "&customerId=" + customerId + "&shop=" + shopName } 别的 { comingOrderUrl = "https://subscription-admin.appstle.com/api/subscription-billing-attempts/top-orders?contractId=" + contractId + "&customerUid=" + token + "&shop=" + shopName } jQuery.ajax({ 类型:“获取”, 网址:即将到来的订单网址, 数据类型:“json”, 标题:{ 'Access-Control-Allow-Origin': '*', }, 成功:功能(结果,状态,xhr){ 如果(结果?。长度> 0){ result.map((orderItem) => { var即将到来的订单= '
' +'
' +'
' +'
' +'
' +'
' +'
' +' ' + nextOrderDateLbl + ': ' + (new Date(orderItem?.billingDate).toDateString()) + '' +' ' + (orderItem.status ==“跳过”?skipBadgeText : queueBadgeText) + '' +'
' +'
' +'
' +'
' +'
' +' ' + productLabelText + ':' +'
' +'
' +'
' +'
' +'
' +'' + (orderItem.status === 'SKIPPED' ? '' : '') + '' +'
' varcomingOrderOld = '
' + '
' + '
' + '
' + '
' + '
' + nextOrderDateLbl + ': ' + (新日期(orderItem?.billingDate).toDateString()) + '
' + statusLbl + ': ' + ' ' + (orderItem.status == "SKIPPED" ? skipBadgeText : queueBadgeText) + '' + '

' + ' ' + '

' + '
' + '
' + '
' jQuery('#orderAcc_' + subItem.node.id.split('/')[4]).append(upcomingOrder); subItem.node.lines?.edges?.forEach(contractItem => { if (contractItem.node?.productId != null) { varcomingOrderImage = '
' varcomingOrderProductTitle = '
' + contractItem?.node?.title + (contractItem?.node?.variantTitle ? (' - ' + contractItem?.node?.variantTitle) : '') + (contractItem?.node?.quantity > 1 ? 'X' + contractItem?.node?.quantity + ' ' : '') + '
' jQuery('#orderImage_' + orderItem?.id).append(upcomingOrderImage); jQuery('#orderTitle_' + orderItem?.id).append(upcomingOrderProductTitle); 如果(contractItem.node.variantTitle == null){ jQuery('.appstle_variantTitle_' + contractItem.node?.productId?.split('/')[4]).hide(); } } 别的 { var即将到来的OrderImage = '
' + '
' + ' ' + contractItem.node?.title + ' 已被删除' + '
' + '
' jQuery('#orderImage_' + orderItem.id).append(upcomingOrderImage) } }); }) } }, 错误:函数(xhr,状态,错误){ console.log("结果:" + status + " " + error + " " + xhr.status + " " + xhr.statusText) } }) } } }, 错误:函数(xhr,状态,错误){ console.log("结果:" + status + " " + error + " " + xhr.status + " " + xhr.statusText) } }); }); jQuery(".appstle_preloader").fadeOut(2000, function () { jQuery(".appstle_myProduct").fadeIn(1000); jQuery(".appstle_myProduct")。css('可见性','可见'); 如果(getDeviceType()!==“移动”){ jQuery('.appstle_single_item_contract').each(function(index, el) { var contractId = jQuery(el).attr('data-contract-id'); var imageHeight = jQuery('.appstle_subscription_contract_content_wrapper_' + contractId).height(); jQuery('.appstle_subscription_contract_image_wrapper_' + contractId).parent().css('height', imageHeight);}) } }); } 别的 { jQuery(".appstle_preloader").fadeOut(2000, function () { jQuery(".appstle_myProduct").append("

" + noSubscriptionMessage + "

").fadeIn(1000); jQuery(".appstle_myProduct").css('visibility', 'visible'); }); } attatchListener(); } 函数skipBillingOrder(id) { if (id != null && id != undefined) { jQuery('.appstle_skiporder_' + id).html('处理中...') jQuery.ajax({ 类型:“PUT”, url: "https://subscription-admin.appstle.com/api/subscription-billing-attempts/skip-order/" + id + "?shop=" + Shopify.shop, 数据类型:“json”, 标题:{ 'Access-Control-Allow-Origin': '*', }, 成功:功能(结果,状态,xhr){ window.location.reload(); }, 错误:函数(xhr,状态,错误){ console.log("结果:" + status + " " + error + " " + xhr.status + " " + xhr.statusText) } }); } 别的 { alert("找不到订单号") } } 功能更新付款详细信息(id){ if (id != null && id != undefined) { jQuery('.appstle_paymentBtnUpdate_' + id).html('处理中...'); jQuery.ajax({ 类型:“PUT”, url: "https://subscription-admin.appstle.com/api/subscription-contracts-update-payment-method?contractId=" + id + "&shop=" + Shopify.shop, 数据类型:“json”, 标题:{ 'Access-Control-Allow-Origin': '*', }, 成功:功能(结果,状态,xhr){ jQuery(".appstle_paymentSuccessMessage_" + id).show(); jQuery('.appstle_paymentBtnUpdate_' + id).html(successText); setTimeout(function() {jQuery('.appstle_paymentBtnUpdate_' + id).html(updatePaymentBtnText);},5000) }, 错误:函数(xhr,状态,错误){ console.log("结果:" + status + " " + error + " " + xhr.status + " " + xhr.statusText) jQuery(".appstle_paymentSuccessMessage_" + id).show(); jQuery('.appstle_paymentBtnUpdate_' + id).html(successText); setTimeout(function() {jQuery('.appstle_paymentBtnUpdate_' + id).html(updatePaymentBtnText);},5000) }, }); } 别的 { alert("未找到合约ID") } } 函数取消订阅(id){ if (id != null && id != undefined) { jQuery('.appstle_cancelBtnText_' + id).html('处理中...') jQuery.ajax({ 类型:“删除”, url: "https://subscription-admin.appstle.com/api/subscription-contracts/" + id + "?shop=" + Shopify.shop, 数据类型:“json”, 标题:{ 'Access-Control-Allow-Origin': '*', }, 成功:功能(结果,状态,xhr){ 订阅初始化(); }, 错误:函数(xhr,状态,错误){ console.log("结果:" + status + " " + error + " " + xhr.status + " " + xhr.statusText) } }); } 别的 { alert("未找到产品 ID") } } 函数 showFrequencyForm(contractId) { // jQuery("#orderFrequencyform_" + contractId).show(); jQuery(".appstle_orderFrequencyformDiv_" + contractId).slideDown(); jQuery('.editBtnFrequency_' + contractId).hide(); } 函数 showChangeOrderDateForm(contractId){ // jQuery("#orderDateform_" + contractId).show(); jQuery(".appstle_orderDateformDiv_" + contractId).slideDown(); jQuery('.editBtnOrderDate_' + contractId).hide(); } 函数 hideOrderDateForm(contractId){ // jQuery("#orderDateform_" + contractId).hide(); jQuery(".appstle_orderDateformDiv_" + contractId).slideUp(); jQuery('.editBtnOrderDate_' + contractId).show(); } 函数 hideFrequencyForm(contractId) { jQuery(".apptle_orderFrequencyformDiv_" + contractId).slideUp(); // jQuery("#orderFrequencyform_" + contractId).hide(); jQuery('.editBtnFrequency_' + contractId).show(); } 函数 updateOrderDate(contractId) { var nextBillingDate = document.forms["orderDateform_" + contractId].changeOrderDate.value; if (nextBillingDate != null && nextBillingDate != undefined) { // jQuery("#orderDateform_" + contractId).hide(); jQuery(".appstle_orderDateformDiv_" + contractId).slideUp(); jQuery("#orderDateloadingText_" + contractId).show(); jQuery.ajax({ 类型:“PUT”, url: "https://subscription-admin.appstle.com/api/subscription-contracts-update-billing-date?contractId=" + contractId + "&nextBillingDate=" + new Date(nextBillingDate).toISOString() + "&shop =" + Shopify.shop, 数据类型:“json”, 标题:{ 'Access-Control-Allow-Origin': '*', }, 成功:功能(结果,状态,xhr){ 订阅初始化() }, 错误:函数(xhr,状态,错误){ console.log("结果:" + status + " " + error + " " + xhr.status + " " + xhr.statusText) } }); // jQuery("#orderloadingText_"+contractId).hide(); } 别的 { alert("请提供频率计数或频率间隔") } } 函数 updateFrequency(contractId) { var frequencyCount = document.forms["orderFrequencyform_" + contractId]?.frequencyCount?.value; var frequencyInterval = document.forms["orderFrequencyform_" + contractId]?.frequencyInterval?.value; 如果(频率计数 <= 0) alert("频率计数必须大于1") if (frequencyCount != null && frequencyCount != undefined && frequencyCount >= 0 && frequencyInterval != null && frequencyInterval != undefined) { // jQuery("#orderFrequencyform_" + contractId).hide(); jQuery(".appstle_orderFrequencyformDiv_" + contractId).slideUp(); jQuery("#orderloadingText_" + contractId).show(); jQuery.ajax({ 类型:“PUT”, url: "https://subscription-admin.appstle.com/api/subscription-contracts-update-billing-interval?contractId=" + contractId + "&interval=" + frequencyInterval + "&intervalCount=" + frequencyCount + "&shop= " + Shopify.shop, 数据类型:“json”, 标题:{ 'Access-Control-Allow-Origin': '*', }, 成功:功能(结果,状态,xhr){ 订阅初始化(); }, 错误:函数(xhr,状态,错误){ console.log("结果:" + status + " " + error + " " + xhr.status + " " + xhr.statusText) } }); // jQuery("#orderloadingText_"+contractId).hide(); } 别的 { alert("请提供频率计数或频率间隔") } } 函数attatchListener() { jQuery('.appstle_product-search-button').on('click', function() { var contractId = jQuery(this).attr('data-contract-id'); var selectedProduct = jQuery('select[data-contract-id=' + contractId + ']'); 如果 (!selectedProduct.val()) { alert('请选择要添加的产品。') 返回; } jQuery(".appstle_myProduct").fadeOut(500, function () { jQuery(".appstle_preloader").fadeIn(250); }); var addLine_settings = { “异步”:真, “跨域”:真, "url": 'https://subscription-admin.appstle.com/api/subscription-contracts-add-line-item?contractId=' + contractId + '&price=' + selectedProduct.attr('data-variant-price ') + '&quantity=1&shop=' + shopName + '&variantId=' + selectedProduct.attr('data-variant-id'), "方法": "PUT", “标题”:{ “缓存控制”:“无缓存”, } } jQuery.ajax(addLine_settings).done(function (response) { 订阅初始化(); }) }) jQuery('.appstle_select_wrapper select').on('change', function() { var currentValue = jQuery(this).val(); var selectedVariantPrice = jQuery(this).find('option[value="' + currentValue + '"]').attr('data-variant-price'); var formid = jQuery(this).attr('data-edit'); jQuery('#' + formid).attr('data-price', selectedVariantPrice); }) jQuery('.appstle_editButton').on('click', function() { var formid = jQuery(this).attr('data-edit'); jQuery('#' + formid).find('.appstle_edit_wrapper')。滑下(); jQuery('#' + formid).find('.appstle_editDeleteGroup').hide(); jQuery('#' + formid).find('.appstle_buttonGroup').show(); }) jQuery('.appstle_cancelButton').on('click', function() { var formid = jQuery(this).attr('data-edit'); jQuery('#' + formid).find('.appstle_edit_wrapper').slideUp(); jQuery('#' + formid).find('.appstle_editDeleteGroup').show(); jQuery('#' + formid).find('.appstle_buttonGroup').hide(); }) jQuery('.appstle_deleteButton').on('click', function() { var formid = jQuery(this).attr('data-edit'); var lineId = jQuery('#' + formid).attr('data-line-id'); let prepaidPlanFlag = jQuery('#' + formid).attr('data-isPrepaid'); var contractId = jQuery('#' + formid).attr('data-contract-id'); var shop = jQuery('#' + formid).attr('data-shop'); deletePopupConfirm(prepaidPlanFlag); // 显示删除确认模型 // 点击确认代码将执行 jQuery('.appstle_delete_model_yesbtn').on('click', function() { hideDeleteConfirmPopup(); // 隐藏确认模型 jQuery(".appstle_myProduct").fadeOut(500, function () { jQuery(".appstle_preloader").fadeIn(250); }); 变量设置 = { “异步”:真, “跨域”:真, "url": 'https://subscription-admin.appstle.com/api/subscription-contracts-remove-line-item?contractId=' + contractId + '&lineId=' + lineId + '&shop=' + shop, "方法": "PUT", “标题”:{ “缓存控制”:“无缓存”, “邮递员令牌”:“06eaf057-9152-2ff9-616b-c8f3f319e47f” } } jQuery.ajax(settings).done(function (response) { 订阅初始化(); }); }) }) jQuery('.appstle_updateButton').on('click', function() { var formid = jQuery(this).attr('data-edit'); var lineId = jQuery('#' + formid).attr('data-line-id'); var contractId = jQuery('#' + formid).attr('data-contract-id'); var shop = jQuery('#' + formid).attr('data-shop'); var price = jQuery('#' + formid).attr('data-price'); var formData = jQuery('#' + formid + 'form').serialize(); var inputElementValue = jQuery('#' + formid).find('input')[0].value; 如果(验证编号(输入元素值)){ jQuery(".appstle_myProduct").fadeOut(500, function () { jQuery(".appstle_preloader").fadeIn(250); }); jQuery('#' + formid).find('.appstle_input_error').hide(); 变量设置 = { “异步”:真, “跨域”:真, "url": 'https://subscription-admin.appstle.com/api/subscription-contracts-update-line-item?contractId=' + contractId + '&price=' + price + '&lineId=' + lineId + ' &shop=' + 商店 + '&' + formData, "方法": "PUT", “标题”:{ “缓存控制”:“无缓存”, “邮递员令牌”:“06eaf057-9152-2ff9-616b-c8f3f319e47f” } } jQuery.ajax(settings).done(function (response) { 订阅初始化(); }); } 别的 { jQuery('#' + formid).find('.appstle_input_error').show(); } }); 添加变量(); addSelect2InHead(); addIconCssInHead(); } 函数 addVariant() { var elementsWithProductId = Array.prototype.slice.call(jQuery('[data-product-id]')) const addVariantItem = async() => { 如果(elementsWithProductId.length > 0){ var item = elementsWithProductId.shift(); 变量设置 = { “异步”:真, “跨域”:真, "url": 'https://subscription-admin.appstle.com/api/data/product?productId=' + jQuery(item).attr('data-product-id') + '&shop=' + shopName, "方法": "获取", “标题”:{ “缓存控制”:“无缓存”, “邮递员令牌”:“06eaf057-9152-2ff9-616b-c8f3f319e47f” } } jQuery.ajax(settings).done(function (response) { var变体=响应?.变体; jQuery(variants).each(function (index, variant) { var option = jQuery('