${function(){
const expired_at = data?.subscription_info?.expired_at || '';
const title = data?.subscription_info?.subscribe_plan?.title || '';
let expireDate = expired_at.split(' ')[0].split('-');
expireDate = `${expireDate[1]}/${expireDate[2]}/${expireDate[0].replace('20','')}`;
const typeIsNum = data?.subscription_info?.subscribe_type == 'term_num';
let formattedDate = '';
if(expired_at){
const expireDateObj = new Date(expired_at);
const options = { day: '2-digit', month: 'long', year: 'numeric' };
formattedDate = expireDateObj.toLocaleDateString('en-US', options);
}
const isCancelShow = data?.subscription_info?.agreement_status != 'canceled';
return `
`
}()}
${title}
Your rights will expire in
${expireDate}
Cancel
Canceled
Why are you canceling?
Our feedback helps us improve. Please select the reason that best describes why you want to cancel
0/100
Cancel Subscription
Your subscription will be canceled on the last day of the billing cycle (April 10, 2025), and we will no longer charge you any fees. You can choose to renew at any time before that date.
Keep Subscription
Cancel Subscription
Are you sure you want to leave these shows you like?
yes
no
Subscription
${function(){
let list = data.subscribe_plans;
const line_items = data.line_items;
const marketActivities = data.market_activities;
if(marketActivities && marketActivities.length > 0){
const set = new Set();
marketActivities.forEach(item=> set.add(item.entitled_product_ids?.[0]));
list = list.filter(item=>!set.has(item.id));
}
list.forEach(ele=>{
ele.describe = ele.describe.replace('<p>','').replace('</p>','');
const item = line_items.find(a=>a.product_id == ele.id);
ele.discount_percent = (((+ele.price - +item?.final_line_price) / +ele.price)*100).toFixed(0);
ele.is_discount = ele.price !== item?.final_line_price;
let days = 0;
let market_text = '';
const hasFirstSubscribeInterval = ele.first_subscribe_interval_type && ele.first_subscribe_interval_count;
const interval_type = hasFirstSubscribeInterval ? ele.first_subscribe_interval_type : ele.interval_type;
const interval_count = Number(hasFirstSubscribeInterval ? ele.first_subscribe_interval_count : ele.interval_count);
const interval_config = {
day: { days: 1, label: 'Day' },
week: { days: 7, label: 'Week' },
month: { days: 30, label: 'Month' },
year: { days: 365, label: 'Year' },
};
const interval_info = interval_config[interval_type];
if (interval_info) {
days = interval_count * interval_info.days;
market_text = interval_count > 1
? `${ele.discount_percent}% off First ${interval_count} ${interval_info.label}`
: `${ele.discount_percent}% off First ${interval_info.label}`;
}
ele.market_text = market_text;
ele.first_cycle_days = (interval_config[ele.first_subscribe_interval_type]?.days || 0) * (ele.first_subscribe_interval_count || 0);
ele.cycle_days = (interval_config[ele.interval_type]?.days || 0) * (ele.interval_count || 0);
ele.discountRatio = Number(item?.discount_percent) > 0 ? "-" + item?.discount_percent + "%" : '';
ele.final_price = item?.final_line_price;
ele.perday = (Math.floor(ele.final_price *100 / days ) / 100).toFixed(2);
});
list = list.filter(item=> !!item.final_price);
const maxCount = Number("6") || 4;
list = list.slice(0,maxCount);
let defaultItemIndex = 0;
const defaultPosition = Number("2") || 2;
if(defaultPosition > 0 && list.length >= defaultPosition){
defaultItemIndex = defaultPosition - 1;
}
return `
${ele.is_discount ? `
`;
}()}
$${ele.final_price}
$${ele.perday}/day
${ele.title}
${ele.brief}
${ele.describe}
${ele.market_text}
`: ''}
Payment Methods
Payment successful. Enjoy your benefits!
3s close