From c9dc9705a511189887ad0670d00735767bf292ff Mon Sep 17 00:00:00 2001 From: rustdesk Date: Sat, 25 Oct 2025 16:31:43 +0800 Subject: [PATCH] pass query params to checkout --- v3/src/pages/ar/pricing.astro | 12 +++++++++++- v3/src/pages/de/pricing.astro | 12 +++++++++++- v3/src/pages/es/pricing.astro | 12 +++++++++++- v3/src/pages/fr/pricing.astro | 12 +++++++++++- v3/src/pages/it/pricing.astro | 12 +++++++++++- v3/src/pages/ja/pricing.astro | 12 +++++++++++- v3/src/pages/ko/pricing.astro | 12 +++++++++++- v3/src/pages/pricing.astro | 13 ++++++++++++- v3/src/pages/pt/pricing.astro | 14 +++++++++++++- v3/src/pages/zh-cn/pricing.astro | 17 ++++++++++++++++- v3/src/pages/zh-tw/pricing.astro | 12 +++++++++++- 11 files changed, 129 insertions(+), 11 deletions(-) diff --git a/v3/src/pages/ar/pricing.astro b/v3/src/pages/ar/pricing.astro index 5fe7e5f1..b7d53717 100644 --- a/v3/src/pages/ar/pricing.astro +++ b/v3/src/pages/ar/pricing.astro @@ -35,7 +35,17 @@ const metadata = { cancelButtonText: 'لا', }).then((result) => { if (result.isConfirmed) { - window.open(redirectUrl, '_blank'); + try { + const url = new URL(redirectUrl); + const pageParams = new URLSearchParams(window.location.search); + pageParams.forEach((value, key) => { + if (!url.searchParams.has(key)) url.searchParams.append(key, value); + }); + window.open(url.toString(), '_blank'); + } catch (e) { + const qs = window.location.search ? (redirectUrl.includes('?') ? '&' : '?') + window.location.search.slice(1) : ''; + window.open(redirectUrl + qs, '_blank'); + } } }); } diff --git a/v3/src/pages/de/pricing.astro b/v3/src/pages/de/pricing.astro index 1548efc3..057afea3 100644 --- a/v3/src/pages/de/pricing.astro +++ b/v3/src/pages/de/pricing.astro @@ -35,7 +35,17 @@ const metadata = { cancelButtonText: 'Nein', }).then((result) => { if (result.isConfirmed) { - window.open(redirectUrl, '_blank'); + try { + const url = new URL(redirectUrl); + const pageParams = new URLSearchParams(window.location.search); + pageParams.forEach((value, key) => { + if (!url.searchParams.has(key)) url.searchParams.append(key, value); + }); + window.open(url.toString(), '_blank'); + } catch (e) { + const qs = window.location.search ? (redirectUrl.includes('?') ? '&' : '?') + window.location.search.slice(1) : ''; + window.open(redirectUrl + qs, '_blank'); + } } }); } diff --git a/v3/src/pages/es/pricing.astro b/v3/src/pages/es/pricing.astro index 41e3f0f2..5664136e 100644 --- a/v3/src/pages/es/pricing.astro +++ b/v3/src/pages/es/pricing.astro @@ -35,7 +35,17 @@ const metadata = { cancelButtonText: 'No', }).then((result) => { if (result.isConfirmed) { - window.open(redirectUrl, '_blank'); + try { + const url = new URL(redirectUrl); + const pageParams = new URLSearchParams(window.location.search); + pageParams.forEach((value, key) => { + if (!url.searchParams.has(key)) url.searchParams.append(key, value); + }); + window.open(url.toString(), '_blank'); + } catch (e) { + const qs = window.location.search ? (redirectUrl.includes('?') ? '&' : '?') + window.location.search.slice(1) : ''; + window.open(redirectUrl + qs, '_blank'); + } } }); } diff --git a/v3/src/pages/fr/pricing.astro b/v3/src/pages/fr/pricing.astro index 66aab9eb..0b169b54 100644 --- a/v3/src/pages/fr/pricing.astro +++ b/v3/src/pages/fr/pricing.astro @@ -35,7 +35,17 @@ const metadata = { cancelButtonText: 'Non', }).then((result) => { if (result.isConfirmed) { - window.open(redirectUrl, '_blank'); + try { + const url = new URL(redirectUrl); + const pageParams = new URLSearchParams(window.location.search); + pageParams.forEach((value, key) => { + if (!url.searchParams.has(key)) url.searchParams.append(key, value); + }); + window.open(url.toString(), '_blank'); + } catch (e) { + const qs = window.location.search ? (redirectUrl.includes('?') ? '&' : '?') + window.location.search.slice(1) : ''; + window.open(redirectUrl + qs, '_blank'); + } } }); } diff --git a/v3/src/pages/it/pricing.astro b/v3/src/pages/it/pricing.astro index 3db6eeb2..6b098a1f 100644 --- a/v3/src/pages/it/pricing.astro +++ b/v3/src/pages/it/pricing.astro @@ -35,7 +35,17 @@ const metadata = { cancelButtonText: 'No', }).then((result) => { if (result.isConfirmed) { - window.open(redirectUrl, '_blank'); + try { + const url = new URL(redirectUrl); + const pageParams = new URLSearchParams(window.location.search); + pageParams.forEach((value, key) => { + if (!url.searchParams.has(key)) url.searchParams.append(key, value); + }); + window.open(url.toString(), '_blank'); + } catch (e) { + const qs = window.location.search ? (redirectUrl.includes('?') ? '&' : '?') + window.location.search.slice(1) : ''; + window.open(redirectUrl + qs, '_blank'); + } } }); } diff --git a/v3/src/pages/ja/pricing.astro b/v3/src/pages/ja/pricing.astro index f396c1f0..6a041efd 100644 --- a/v3/src/pages/ja/pricing.astro +++ b/v3/src/pages/ja/pricing.astro @@ -35,7 +35,17 @@ const metadata = { cancelButtonText: 'いいえ', }).then((result) => { if (result.isConfirmed) { - window.open(redirectUrl, '_blank'); + try { + const url = new URL(redirectUrl); + const pageParams = new URLSearchParams(window.location.search); + pageParams.forEach((value, key) => { + if (!url.searchParams.has(key)) url.searchParams.append(key, value); + }); + window.open(url.toString(), '_blank'); + } catch (e) { + const qs = window.location.search ? (redirectUrl.includes('?') ? '&' : '?') + window.location.search.slice(1) : ''; + window.open(redirectUrl + qs, '_blank'); + } } }); } diff --git a/v3/src/pages/ko/pricing.astro b/v3/src/pages/ko/pricing.astro index f645a269..e5cac6e2 100644 --- a/v3/src/pages/ko/pricing.astro +++ b/v3/src/pages/ko/pricing.astro @@ -35,7 +35,17 @@ const metadata = { cancelButtonText: '아니오', }).then((result) => { if (result.isConfirmed) { - window.open(redirectUrl, '_blank'); + try { + const url = new URL(redirectUrl); + const pageParams = new URLSearchParams(window.location.search); + pageParams.forEach((value, key) => { + if (!url.searchParams.has(key)) url.searchParams.append(key, value); + }); + window.open(url.toString(), '_blank'); + } catch (e) { + const qs = window.location.search ? (redirectUrl.includes('?') ? '&' : '?') + window.location.search.slice(1) : ''; + window.open(redirectUrl + qs, '_blank'); + } } }); } diff --git a/v3/src/pages/pricing.astro b/v3/src/pages/pricing.astro index 2ef42fcf..9fd29979 100644 --- a/v3/src/pages/pricing.astro +++ b/v3/src/pages/pricing.astro @@ -35,7 +35,18 @@ const metadata = { cancelButtonText: 'No', }).then((result) => { if (result.isConfirmed) { - window.open(redirectUrl, '_blank'); + try { + const url = new URL(redirectUrl); + const pageParams = new URLSearchParams(window.location.search); + pageParams.forEach((value, key) => { + if (!url.searchParams.has(key)) url.searchParams.append(key, value); + }); + window.open(url.toString(), '_blank'); + } catch (e) { + // Fallback if URL API fails for any reason + const qs = window.location.search ? (redirectUrl.includes('?') ? '&' : '?') + window.location.search.slice(1) : ''; + window.open(redirectUrl + qs, '_blank'); + } } }); } diff --git a/v3/src/pages/pt/pricing.astro b/v3/src/pages/pt/pricing.astro index 80d59d84..a15e45fe 100644 --- a/v3/src/pages/pt/pricing.astro +++ b/v3/src/pages/pt/pricing.astro @@ -35,7 +35,19 @@ const metadata = { cancelButtonText: 'Não', }).then((result) => { if (result.isConfirmed) { - window.open(redirectUrl, '_blank'); + try { + const url = new URL(redirectUrl); + const pageParams = new URLSearchParams(window.location.search); + pageParams.forEach((value, key) => { + if (!url.searchParams.has(key)) url.searchParams.append(key, value); + }); + window.open(url.toString(), '_blank'); + } catch (e) { + const qs = window.location.search + ? (redirectUrl.includes('?') ? '&' : '?') + window.location.search.slice(1) + : ''; + window.open(redirectUrl + qs, '_blank'); + } } }); } diff --git a/v3/src/pages/zh-cn/pricing.astro b/v3/src/pages/zh-cn/pricing.astro index 262d4d09..270e4068 100644 --- a/v3/src/pages/zh-cn/pricing.astro +++ b/v3/src/pages/zh-cn/pricing.astro @@ -37,7 +37,22 @@ const metadata = { cancelButtonText: '否', }).then((result) => { if (result.isConfirmed) { - window.open(redirectUrl + '¤cy=cny', '_blank'); + try { + const url = new URL(redirectUrl); + // Ensure currency=cny for zh-cn + if (!url.searchParams.has('currency')) url.searchParams.set('currency', 'cny'); + const pageParams = new URLSearchParams(window.location.search); + pageParams.forEach((value, key) => { + if (!url.searchParams.has(key)) url.searchParams.append(key, value); + }); + window.open(url.toString(), '_blank'); + } catch (e) { + const qs = window.location.search + ? (redirectUrl.includes('?') ? '&' : '?') + window.location.search.slice(1) + : ''; + const sep = (redirectUrl + qs).includes('?') ? '&' : '?'; + window.open(redirectUrl + qs + sep + 'currency=cny', '_blank'); + } } }); } diff --git a/v3/src/pages/zh-tw/pricing.astro b/v3/src/pages/zh-tw/pricing.astro index ab9ffded..fb4a4ccb 100644 --- a/v3/src/pages/zh-tw/pricing.astro +++ b/v3/src/pages/zh-tw/pricing.astro @@ -35,7 +35,17 @@ const metadata = { cancelButtonText: '否', }).then((result) => { if (result.isConfirmed) { - window.open(redirectUrl, '_blank'); + try { + const url = new URL(redirectUrl); + const pageParams = new URLSearchParams(window.location.search); + pageParams.forEach((value, key) => { + if (!url.searchParams.has(key)) url.searchParams.append(key, value); + }); + window.open(url.toString(), '_blank'); + } catch (e) { + const qs = window.location.search ? (redirectUrl.includes('?') ? '&' : '?') + window.location.search.slice(1) : ''; + window.open(redirectUrl + qs, '_blank'); + } } }); }