Merge branch 'master' of github.com:hainatravel/information-system

hotfix/paypal-note
赵鹏 3 years ago
commit 6d7626b6f0

@ -709,7 +709,6 @@ class Information extends CI_Controller
$info_page_form_content = $this->load->view($template_path . '-info-page-form', false, true);
$information->ic_content = str_replace('<!--@INFO-PAGE-FORM@-->', $info_page_form_content, $information->ic_content);
} else {
$template = str_replace('<!--@PRODUCT-JS@-->', '<script src="https://data.chinahighlights.com/js/flatpickr.js"></script>', $template);
$inquiry_form_template = $this->load->view($template_path . '-inquiry-form', array('meta_product_code' => $meta_product_code), true);
$information->ic_content = str_replace('<!--@INQUIRY-FORM@-->', $inquiry_form_template, $information->ic_content);
@ -1274,7 +1273,6 @@ class Information extends CI_Controller
$addthis_widget = $this->load->view($template_path . '-add-this', false, true);
$template = str_replace('<!--@ADDTHIS-WIDGET@-->', $addthis_widget, $template);
} else {
$template = str_replace('<!--@PRODUCT-JS@-->', '<script src="https://data.asiahighlights.com/js/flatpickr.js"></script>', $template);
$inquiry_form_template = $this->load->view(
$template_path . '-inquiry-form',
array('meta_product_code' => $meta_product_code, 'information' => $information),

@ -60,6 +60,7 @@ class Index extends CI_Controller
and request_uri NOT like '%.png'
and request_uri NOT like '%.gif'
and request_uri NOT like '%.css'
and request_uri NOT like '%.webp'
and request_uri NOT like '%.js'
and request_uri NOT like '%.woff'
and request_uri NOT like '%.ttf'

@ -8,7 +8,10 @@
<?php foreach ($feedback_list as $index => $feedback) {?>
<td>
<div class="tour_feedback">
<div class="feedback_content"><strong><?php echo $feedback['title'] ?></strong><?php echo $feedback['content'] ?><a href="<?php echo $feedback['url'] ?>" target="_blank">More</a></div>
<div class="feedback_content">
<strong><?php echo $feedback['title'] ?></strong>
<p><?php echo $feedback['content'] ?></p>
<a href="<?php echo $feedback['url'] ?>" target="_blank">More</a></div>
<div class="customer_name"><?php echo $feedback['customer'] ?>, <?php echo $feedback['createdOn'] ?></div>
<img alt="" class="img-responsive" height="40" width="211" src="https://data.asiahighlights.com/pic/trustpilot-new-icon.png"></div>
</td>

@ -1,3 +1,4 @@
<script src="https://www.recaptcha.net/recaptcha/enterprise.js?render=6Lf828MhAAAAANNetijCXKwW5ARyhcJ-b1Hhslja"></script>
<div class="tmbottom">
<h3 style="text-align: center; font-size: 20px; line-height: 22px;">Book this trip now. Your 1:1 travel consultant will reply within 1 working day.</h3>
<form action="https://www.asiahighlights.com/orders/quick_inquiry_save" method="post" novalidate="" id='gp_form'>
@ -728,9 +729,24 @@
const submitFormBtn = el('submit_gp_form');
const gp_form = el('gp_form');
submitFormBtn.on('click', () => {
if (validateGPForm()) {
el('gp_form').submit();
if (typeof(grecaptcha) === "undefined") {
console.warn('grecaptcha is disabled.');
gp_form.submit();
} else {
grecaptcha.enterprise.ready(async () => {
const token = await grecaptcha.enterprise.execute('6Lf828MhAAAAANNetijCXKwW5ARyhcJ-b1Hhslja', {action: 'ADD_TO_CART'});
var el = document.createElement("input");
el.type = "hidden";
el.name = "__grecaptcha_token__";
el.value = token;
gp_form.appendChild(el);
gp_form.submit();
});
}
}
});

@ -1,9 +1,11 @@
<script src="https://www.recaptcha.net/recaptcha/enterprise.js?render=6Lf828MhAAAAANNetijCXKwW5ARyhcJ-b1Hhslja"></script>
<div class="tmbottom">
<h3 style="text-align: center; font-size: 20px; line-height: 22px;">Start planning your tailor-made tour now. Your 1:1 travel consultant will reply within 1 working day.</h3>
<form action="/orders/quick_inquiry_save" method="post" novalidate="" onsubmit="return validateQuickInquiryForm()">
<form action="/orders/quick_inquiry_save" method="post" novalidate="" id="info_page_form">
<textarea id="form_additionalrequirements" name="form_additionalrequirements" placeholder="Tell us your travel requirements here: anniversary, honeymoon, family trip, birthday travel, beach, food... (optional)" style="height:100px;"></textarea>
<input class="FullName" id="realname" name="name" placeholder="Your name *" required="" type="text" value="" />
<div id="realname_errmsg" style="display: none">
@ -599,7 +601,7 @@
</div>
<button class="sendButton" id="submit_booking_form_inquiry" name="booking_form_inquiry_list" type="submit">Inquire Now</button> <input name="cli_no" type="hidden" value="YDFW-AH"/>
<button class="sendButton" id="info_page_button" name="booking_form_inquiry_list" type="button">Inquire Now</button> <input name="cli_no" type="hidden" value="YDFW-AH"/>
<input name="ic_title" type="hidden" value="YDFW-AH" />
</form>
<h3 style="text-align: center; font-size: 20px; line-height: 22px;">For a quick conversation, simply reach us via WhatsApp:</h3>
@ -620,6 +622,30 @@ document.addEventListener('DOMContentLoaded', () => {
disableMobile: true,
minDate: "today"
});
var info_page_button = document.getElementById("info_page_button");
var info_page_form = document.getElementById("info_page_form");
info_page_button.addEventListener('click', function(event) {
var validateResult = validateQuickInquiryForm();
if (validateResult) {
if (typeof(grecaptcha) === "undefined") {
console.warn('grecaptcha is disabled.');
info_page_form.submit();
} else {
grecaptcha.enterprise.ready(async () => {
const token = await grecaptcha.enterprise.execute('6Lf828MhAAAAANNetijCXKwW5ARyhcJ-b1Hhslja', {action: 'ADD_TO_CART'});
var el = document.createElement("input");
el.type = "hidden";
el.name = "__grecaptcha_token__";
el.value = token;
info_page_form.appendChild(el);
info_page_form.submit();
});
}
}
});
});
function validateQuickInquiryForm() {

@ -1,8 +1,7 @@
<script src="https://www.recaptcha.net/recaptcha/enterprise.js?render=6Lf828MhAAAAANNetijCXKwW5ARyhcJ-b1Hhslja"></script>
<div class="tmbottom">
<h3 style="text-align: center; font-size: 20px; line-height: 22px;">Start planning your tailor-made tour now. Your 1:1 travel consultant will reply within 1 working day.</h3>
<form action="/orders/quick_inquiry_save" method="post" novalidate="" onsubmit="return validateQuickInquiryForm()">
<form action="/orders/quick_inquiry_save" method="post" novalidate="" id="quick_inquiry_form">
<textarea id="form_additionalrequirements" name="form_additionalrequirements" placeholder="Tell us your travel requirements here: anniversary, honeymoon, family trip, birthday travel, beach, food... (optional)"></textarea>
<input class="InquiryCalendar datepicker" id="starting_date" name="starting_date" placeholder="Starting date *" readonly="readonly" type="text" value="" />
<div id="starting_date_errmsg" style="display: none">
@ -599,7 +598,7 @@
</div>
<button class="sendButton" id="submit_booking_form_inquiry" name="booking_form_inquiry_list" type="submit">Inquire Now</button> <input name="cli_no" type="hidden" value="<?php echo $meta_product_code; ?>"/>
<button class="sendButton" id="quick_inquiry_button" name="quick_inquiry_button" type="button">Inquire Now</button> <input name="cli_no" type="hidden" value="<?php echo $meta_product_code; ?>"/>
<input name="itinerary" type="hidden" value="<?php echo $information->ic_title; ?>" />
</form>
<h3 style="text-align: center;
@ -610,3 +609,92 @@
Email: <span class="wechatred">contact@asiahighlights.com</span></div>
</div>
</div>
<script src="https://data.chinahighlights.com/js/flatpickr-4.6.1.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', () => {
flatpickr("#starting_date", {
dateFormat: "Y-m-d",
altInput: true,
altFormat: "F j, Y",
disableMobile: true,
minDate: "today"
});
flatpickr("#ending_date", {
dateFormat: "Y-m-d",
altInput: true,
altFormat: "F j, Y",
disableMobile: true,
minDate: "today"
});
var quick_inquiry_button = document.getElementById("quick_inquiry_button");
var quick_inquiry_form = document.getElementById("quick_inquiry_form");
quick_inquiry_button.addEventListener('click', function(event) {
var validateResult = validateQuickInquiryForm();
if (validateResult) {
if (typeof(grecaptcha) === "undefined") {
console.warn('grecaptcha is disabled.');
quick_inquiry_form.submit();
} else {
grecaptcha.enterprise.ready(async () => {
const token = await grecaptcha.enterprise.execute('6Lf828MhAAAAANNetijCXKwW5ARyhcJ-b1Hhslja', {action: 'ADD_TO_CART'});
var el = document.createElement("input");
el.type = "hidden";
el.name = "__grecaptcha_token__";
el.value = token;
quick_inquiry_form.appendChild(el);
quick_inquiry_form.submit();
});
}
}
});
});
function validateQuickInquiryForm() {
var result = true;
var realnameVal = document.getElementById("realname").value;
var emailVal = document.getElementById("email").value;
var startingDateVal = document.getElementById("starting_date").value;
var contactVal = document.getElementById("PhoneNo").value;
var realnameErrEl = document.getElementById("realname_errmsg");
var emailErrEl = document.getElementById("email_errmsg");
var emailVerifyErrEl = document.getElementById("email_verify_errmsg");
var startingDateErrEl = document.getElementById("starting_date_errmsg");
var contactErrEl = document.getElementById("contact_errmsg");
realnameErrEl.style.display = 'none';
emailErrEl.style.display = 'none';
emailVerifyErrEl.style.display = 'none';
startingDateErrEl.style.display = 'none';
contactErrEl.style.display = 'none';
if (realnameVal === '') {
realnameErrEl.style.display = '';
result = false;
}
if (emailVal === '') {
emailErrEl.style.display = '';
result = false;
} else {
var emailPattern = /^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/;
if (!emailPattern.test(emailVal)) {
emailVerifyErrEl.style.display = '';
result = false;
}
}
if (startingDateVal === '') {
startingDateErrEl.style.display = '';
result = false;
}
if (contactVal === '') {
contactErrEl.style.display = '';
result = false;
}
return result;
}
</script>

@ -1,5 +1,5 @@
<script src="https://www.recaptcha.net/recaptcha/enterprise.js?render=6Lf828MhAAAAANNetijCXKwW5ARyhcJ-b1Hhslja"></script>
<div class="tmbottom">
<h3 style="font-size: 24px; line-height: 22px;">Get Your 2022 Chiang Mai CAD Lantern Mass Release
Tickets Here!</h3>
<form id='ticket_form' action="https://www.asiahighlights.com/orders/lantern_save" method="post" >
@ -25,7 +25,7 @@
<label for="Premium">
Premium + Free Transfer
<div class="selectionMemo">
US$170
US$179
</div>
</label>
</div>
@ -60,7 +60,7 @@
</div>
</div>
<p>Children under 8 years old enter free; 8-year-olds and above are charged the same as adults. You can buy a ticket for your child under 8 if you would like her or him to enjoy the same provision.</p>
<div class="payonline_price">Total price: <strong id="totalPriceText">$170</strong></div>
<div class="payonline_price">Total price: <strong id="totalPriceText">$179</strong></div>
<p style="margin-top: 50px;"><strong>Please provide correct personal information for your ticket
booking. Double
check.</strong></p>
@ -676,12 +676,20 @@
</form>
</div>
<script>
function calcTotalPrice(ticketPrice, adultNumber) {
var totalPrice = ticketPrice*adultNumber;
if (adultNumber >= 10) {
totalPrice = totalPrice * 0.95;
}
return totalPrice.toFixed(2);
}
var adultNumberNode = document.getElementById("adultNumberValue");
var ticketTypeList = document.querySelectorAll("input[name='ticket_type']");
var totalPriceText = document.getElementById("totalPriceText");
var totalPriceHidden = document.getElementById("totalPriceHidden");
var adultNumberValue = parseInt(adultNumberNode.value);
var ticketPrice = 170;
var ticketPrice = 179;
totalPriceHidden.value = ticketPrice * adultNumberValue;
for (var i = 0; i < ticketTypeList.length; i++) {
var ticketTypeNode = ticketTypeList[i];
@ -689,13 +697,13 @@
var currentTarget = event.currentTarget;
var adultNumberValue = parseInt(adultNumberNode.value);
if (currentTarget.value === 'Premium + Free Transfer') {
ticketPrice = 170;
ticketPrice = 179;
} else if (currentTarget.value === 'Standard + Free Transfer') {
ticketPrice = 122;
} else if (currentTarget.value === 'VIP + Free Transfer') {
ticketPrice = 159;
}
totalPrice = ticketPrice*adultNumberValue;
var totalPrice = calcTotalPrice(ticketPrice, adultNumberValue);
totalPriceText.innerText = '$'+totalPrice;
totalPriceHidden.value = totalPrice;
});
@ -705,7 +713,7 @@
plusButton.addEventListener('click', function(event) {
var adultNumberValue = parseInt(adultNumberNode.value) + 1;
adultNumberNode.value = adultNumberValue;
totalPrice = ticketPrice*adultNumberValue;
var totalPrice = calcTotalPrice(ticketPrice, adultNumberValue);
totalPriceText.innerText = '$'+totalPrice;
totalPriceHidden.value = totalPrice;
});
@ -714,7 +722,7 @@
if (beforeValue > 1) {
var adultNumberValue = beforeValue - 1;
adultNumberNode.value = adultNumberValue;
totalPrice = ticketPrice*adultNumberValue;
var totalPrice = calcTotalPrice(ticketPrice, adultNumberValue);
totalPriceText.innerText = '$'+totalPrice;
totalPriceHidden.value = totalPrice;
}
@ -727,7 +735,20 @@
submit_ticket_button.addEventListener('click', function(event) {
var validateResult = validateTicketForm();
if (validateResult) {
if (typeof(grecaptcha) === "undefined") {
console.warn('grecaptcha is disabled.');
ticket_form.submit();
} else {
grecaptcha.enterprise.ready(async () => {
const token = await grecaptcha.enterprise.execute('6Lf828MhAAAAANNetijCXKwW5ARyhcJ-b1Hhslja', {action: 'ADD_TO_CART'});
var el = document.createElement("input");
el.type = "hidden";
el.name = "__grecaptcha_token__";
el.value = token;
ticket_form.appendChild(el);
ticket_form.submit();
});
}
}
});
function validateTicketForm() {

@ -1,5 +1,5 @@
<script src="https://www.recaptcha.net/recaptcha/enterprise.js?render=6Lf828MhAAAAANNetijCXKwW5ARyhcJ-b1Hhslja"></script>
<div class="tmbottom">
<h3 style="font-size: 24px; line-height: 22px;">Get Your 2022 Chiang Mai CAD Lantern Mass Release
Tickets Here!</h3>
<form id='ticket_form' action="https://www.asiahighlights.com/orders/lantern_save" method="post" >
@ -25,7 +25,7 @@
<label for="Premium">
Premium + Free Transfer
<div class="selectionMemo">
US$170
US$179
</div>
</label>
</div>
@ -60,7 +60,7 @@
</div>
</div>
<p>Children under 8 years old enter free; 8-year-olds and above are charged the same as adults. You can buy a ticket for your child under 8 if you would like her or him to enjoy the same provision.</p>
<div class="payonline_price">Total price: <strong id="totalPriceText">$170</strong></div>
<div class="payonline_price">Total price: <strong id="totalPriceText">$179</strong></div>
<p style="margin-top: 50px;"><strong>Please provide correct personal information for your ticket
booking. Double
check.</strong></p>
@ -675,12 +675,20 @@
</form>
</div>
<script>
function calcTotalPrice(ticketPrice, adultNumber) {
var totalPrice = ticketPrice*adultNumber;
if (adultNumber >= 10) {
totalPrice = totalPrice * 0.95;
}
return totalPrice.toFixed(2);
}
var adultNumberNode = document.getElementById("adultNumberValue");
var ticketTypeList = document.querySelectorAll("input[name='ticket_type']");
var totalPriceText = document.getElementById("totalPriceText");
var totalPriceHidden = document.getElementById("totalPriceHidden");
var adultNumberValue = parseInt(adultNumberNode.value);
var ticketPrice = 170;
var ticketPrice = 179;
totalPriceHidden.value = ticketPrice * adultNumberValue;
for (var i = 0; i < ticketTypeList.length; i++) {
var ticketTypeNode = ticketTypeList[i];
@ -688,13 +696,13 @@
var currentTarget = event.currentTarget;
var adultNumberValue = parseInt(adultNumberNode.value);
if (currentTarget.value === 'Premium + Free Transfer') {
ticketPrice = 170;
ticketPrice = 179;
} else if (currentTarget.value === 'Standard + Free Transfer') {
ticketPrice = 122;
} else if (currentTarget.value === 'VIP + Free Transfer') {
ticketPrice = 159;
}
totalPrice = ticketPrice*adultNumberValue;
var totalPrice = calcTotalPrice(ticketPrice, adultNumberValue);
totalPriceText.innerText = '$'+totalPrice;
totalPriceHidden.value = totalPrice;
});
@ -704,7 +712,7 @@
plusButton.addEventListener('click', function(event) {
var adultNumberValue = parseInt(adultNumberNode.value) + 1;
adultNumberNode.value = adultNumberValue;
totalPrice = ticketPrice*adultNumberValue;
var totalPrice = calcTotalPrice(ticketPrice, adultNumberValue);
totalPriceText.innerText = '$'+totalPrice;
totalPriceHidden.value = totalPrice;
});
@ -713,7 +721,7 @@
if (beforeValue > 1) {
var adultNumberValue = beforeValue - 1;
adultNumberNode.value = adultNumberValue;
totalPrice = ticketPrice*adultNumberValue;
var totalPrice = calcTotalPrice(ticketPrice, adultNumberValue);
totalPriceText.innerText = '$'+totalPrice;
totalPriceHidden.value = totalPrice;
}
@ -726,7 +734,20 @@
submit_ticket_button.addEventListener('click', function(event) {
var validateResult = validateTicketForm();
if (validateResult) {
if (typeof(grecaptcha) === "undefined") {
console.warn('grecaptcha is disabled.');
ticket_form.submit();
} else {
grecaptcha.enterprise.ready(async () => {
const token = await grecaptcha.enterprise.execute('6Lf828MhAAAAANNetijCXKwW5ARyhcJ-b1Hhslja', {action: 'ADD_TO_CART'});
var el = document.createElement("input");
el.type = "hidden";
el.name = "__grecaptcha_token__";
el.value = token;
ticket_form.appendChild(el);
ticket_form.submit();
});
}
}
});
function validateTicketForm() {

@ -1,11 +1,7 @@
<div class="tmbottom">
<p style="padding: 15px 15px 30px 15px;">Start planning your tailor-made tour now. Your 1:1 travel consultant will reply within 1 working day.</p>
<form action="https://www.chinahighlights.com/secureforms/qi_save" id="quick_inquiry_form" method="post"
name="quick_inquiry_form" novalidate="" onsubmit="return validateQuickInquiryForm()">
name="quick_inquiry_form" novalidate="">
<div class="InquiryBox">
<textarea id="form_additionalrequirements" name="form_additionalrequirements"
placeholder="Tell us your travel requirements here: anniversary, honeymoon, family trip, birthday travel, beach, food... (optional)"></textarea>
@ -14,15 +10,15 @@
<span class="form_required">*</span>
</span>
<input class="FullName" id="realname" name="realname" placeholder="Your name" type="text"/> <span
id="realname_errmsg" style="display: none"><span class="requiredArea">Please enter your name</span></span>
id="realname_errmsg" style="display: none"><span class="requiredArea">Please enter your name.</span></span>
</p>
<p>
<span class="inquiry_form_tag"><img src="https://data.chinahighlights.com/pic/input-email.png">
<span class="form_required">*</span></span>
<input class="EmailAddress" id="email" name="email" placeholder="Email" type="text"/>
<span id="email_errmsg" style="display: none"><span class="requiredArea">Please enter your email</span></span>
<span id="email_verify_errmsg" style="display: none"><span class="requiredArea">Please verify your email</span></span>
<span id="email_errmsg" style="display: none"><span class="requiredArea">Please enter your email.</span></span>
<span id="email_verify_errmsg" style="display: none"><span class="requiredArea">Please verify your email.</span></span>
</p>
<p>
<span class="inquiry_form_tag"><img src="https://data.chinahighlights.com/pic/top10/tour-calendar.png">
@ -30,7 +26,7 @@
<input class="InquiryCalendar" data-min-date="7" id="starting_date"
name="starting_date" placeholder="Starting date" readonly="readonly"
type="text"/><span id="starting_date_errmsg" style="display: none"><span
class="requiredArea">Please enter your starting date</span></span></p>
class="requiredArea">Please enter your starting date.</span></span></p>
<p>
<select name="country_code" class="country_code">
<option value="United States +1" style="font-weight: 600;">United States&nbsp; &nbsp;+1</option>
@ -583,52 +579,47 @@
<option value="Åland Islands +385">Åland Islands&nbsp; &nbsp;+358</option>
</select>
<input class="Inquiryphone" id="PhoneNo" name="PhoneNo"
placeholder="Phone number (We'll only call if you ask.)" type="tel"/></p>
placeholder="Phone number (We'll only call if you ask.)*" type="tel"/></p>
<span id="phone_errmsg" style="display: none"><span class="requiredArea">Please enter your phone number.</span></span>
<p style="font-size: 18px;color: #555;margin-top: -10px;margin-bottom: 5px;font-style: italic;padding-left: 0;line-height: 20px;text-align: left;font-weight: 300;">Having a phone number, especially with WeChat/WhatsApp capability will improve communication efficiency.</p>
<p style="margin-top: 0;margin-bottom: 10px;padding: 0;text-align: left;font-size: 20px;font-weight: 300;">I prefer to be contacted via:</p>
<div class="checkYes"><label for="WeChat"><input class="checkBorder" id="WeChat" name="WeChat" type="checkbox" value="contact via WeChat">WeChat</label></div>
<div class="checkYes"><label for="WhatsApp"><input class="checkBorder" id="WhatsApp" name="WhatsApp" type="checkbox" value="contact via WhatsApp">WhatsApp </label></div>
<div class="checkYes"><label for="Phone"><input class="checkBorder" id="Phone" name="Phone" type="checkbox" value="contact via Phone">Phone call</label></div>
<input type="hidden" name="nullemail">
<input name="cli_no" type="hidden" value="YDFW"><button class="sendButton" id="quick_inquiry_button" name="quick_inquiry_button" type="submit">Send My Inquiry</button>
<input name="cli_no" type="hidden" value="YDFW"><button class="sendButton" id="quick_inquiry_button" name="quick_inquiry_button" type="button">Send My Inquiry</button>
</div>
</form>
<div class="contactwechat">
<img alt="china highlights' wechat code" height="100px"
src="https://data.chinahighlights.com/image/forms/inquiry-form-code-2022.png"
src="https://data.chinahighlights.com/image/forms/ch-contact-form-wechat-qr-code.png"
width="100px"/>
<div class="wechatinfo">Quickly inquire about this tour via our WeChat: <span class="wechatred">chinahighlightstour</span>
</div>
</div>
</div>
<script src="https://www.recaptcha.net/recaptcha/enterprise.js?render=6Lf828MhAAAAANNetijCXKwW5ARyhcJ-b1Hhslja"></script>
<script src="https://data.chinahighlights.com/js/flatpickr-4.6.1.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', () => {
flatpickr("#starting_date", {
dateFormat: "Y-m-d",
altInput: true,
altFormat: "F j, Y",
disableMobile: true,
minDate: "today"
});
});
function validateQuickInquiryForm() {
var result = true;
var realnameVal = document.getElementById("realname").value;
var emailVal = document.getElementById("email").value;
var startingDateVal = document.getElementById("starting_date").value;
var phoneVal = document.getElementById("PhoneNo").value;
var startingDateErrEl = document.getElementById("starting_date_errmsg");
var realnameErrEl = document.getElementById("realname_errmsg");
var emailErrEl = document.getElementById("email_errmsg");
var emailVerifyErrEl = document.getElementById("email_verify_errmsg");
var phoneErrEl = document.getElementById("phone_errmsg");
if (realnameErrEl) realnameErrEl.style.display = 'none';
if (emailErrEl) emailErrEl.style.display = 'none';
if (emailVerifyErrEl) emailVerifyErrEl.style.display = 'none';
if (startingDateErrEl) startingDateErrEl.style.display = 'none';
if (phoneErrEl) phoneErrEl.style.display = 'none';
if (realnameVal === '') {
realnameErrEl.style.display = '';
@ -648,7 +639,43 @@ function validateQuickInquiryForm() {
startingDateErrEl.style.display = '';
result = false;
}
if (phoneVal === '') {
phoneErrEl.style.display = '';
result = false;
}
return result;
}
document.addEventListener('DOMContentLoaded', () => {
flatpickr("#starting_date", {
dateFormat: "Y-m-d",
altInput: true,
altFormat: "F j, Y",
disableMobile: true,
minDate: "today"
});
var quick_inquiry_form = document.getElementById('quick_inquiry_form');
var quick_inquiry_button = document.getElementById('quick_inquiry_button');
quick_inquiry_button.addEventListener('click', function(evt) {
if (validateQuickInquiryForm()) {
if (typeof(grecaptcha) === "undefined") {
console.warn('grecaptcha is disabled.');
quick_inquiry_form.submit();
} else {
grecaptcha.enterprise.ready(async () => {
const token = await grecaptcha.enterprise.execute('6Lf828MhAAAAANNetijCXKwW5ARyhcJ-b1Hhslja', {action: 'ADD_TO_CART'});
var el = document.createElement("input");
el.type = "hidden";
el.name = "__grecaptcha_token__";
el.value = token;
quick_inquiry_form.appendChild(el);
quick_inquiry_form.submit();
});
}
}
});
});
</script>

@ -1,11 +1,7 @@
<div class="tmbottom">
<p style="padding: 15px 15px 30px 15px;">Start planning your tailor-made tour now. Your 1:1 travel consultant will reply within 1 working day.</p>
<form action="https://www.chinahighlights.com/secureforms/qi_save" id="quick_inquiry_form" method="post"
name="quick_inquiry_form" novalidate="" onsubmit="return validateQuickInquiryForm()">
name="quick_inquiry_form" novalidate="">
<div class="InquiryBox">
<textarea id="form_additionalrequirements" name="form_additionalrequirements"
placeholder="Tell us your travel requirements here: anniversary, honeymoon, family trip, birthday travel, beach, food... (optional)"></textarea>
@ -13,16 +9,16 @@
<span class="inquiry_form_tag"><img src="https://data.chinahighlights.com/pic/input-name.png">
<span class="form_required">*</span>
</span>
<input class="FullName" id="realname" name="realname" placeholder="Your name" type="text"/> <span
id="realname_errmsg" style="display: none"><span class="requiredArea">Please enter your name</span></span>
<input class="FullName" id="realname" name="realname" placeholder="Your name" type="text"/>
<span id="realname_errmsg" style="display: none"><span class="requiredArea">Please enter your name.</span></span>
</p>
<p>
<span class="inquiry_form_tag"><img src="https://data.chinahighlights.com/pic/input-email.png">
<span class="form_required">*</span></span>
<input class="EmailAddress" id="email" name="email" placeholder="Email" type="text"/>
<span id="email_errmsg" style="display: none"><span class="requiredArea">Please enter your email</span></span>
<span id="email_verify_errmsg" style="display: none"><span class="requiredArea">Please verify your email</span></span>
<span id="email_errmsg" style="display: none"><span class="requiredArea">Please enter your email.</span></span>
<span id="email_verify_errmsg" style="display: none"><span class="requiredArea">Please verify your email.</span></span>
</p>
<p>
<span class="inquiry_form_tag"><img src="https://data.chinahighlights.com/pic/top10/tour-calendar.png">
@ -30,7 +26,7 @@
<input class="InquiryCalendar" data-min-date="7" id="starting_date"
name="starting_date" placeholder="Starting date" readonly="readonly"
type="text"/><span id="starting_date_errmsg" style="display: none"><span
class="requiredArea">Please enter your starting date</span></span></p>
class="requiredArea">Please enter your starting date.</span></span></p>
<p>
<select name="country_code" class="country_code">
<option value="United States +1" style="font-weight: 600;">United States&nbsp; &nbsp;+1</option>
@ -583,7 +579,8 @@
<option value="Åland Islands +385">Åland Islands&nbsp; &nbsp;+358</option>
</select>
<input class="Inquiryphone" id="PhoneNo" name="PhoneNo"
placeholder="Phone number (We'll only call if you ask.)" type="tel"/></p>
placeholder="Phone number (We'll only call if you ask.)*" type="tel"/></p>
<span id="phone_errmsg" style="display: none"><span class="requiredArea">Please enter your phone number.</span></span>
<p style="font-size: 18px;color: #555;margin-top: -10px;margin-bottom: 5px;font-style: italic;padding-left: 0;line-height: 20px;text-align: left;font-weight: 300;">Having a phone number, especially with WeChat/WhatsApp capability will improve communication efficiency.</p>
<p style="margin-top: 0;margin-bottom: 10px;padding: 0;text-align: left;font-size: 20px;font-weight: 300;">I prefer to be contacted via:</p>
<div class="checkYes"> <label for="WeChat"><input class="checkBorder" id="WeChat" name="WeChat" type="checkbox" value="contact via WeChat">WeChat</label></div>
@ -591,17 +588,95 @@
<div class="checkYes"><label for="Phone"><input class="checkBorder" id="Phone" name="Phone" type="checkbox" value="contact via Phone">Phone call</label></div>
<input type="hidden" name="nullemail">
<input name="cli_no" type="hidden" value="<?php echo $meta_product_code; ?>"/>
<button class="sendButton" id="quick_inquiry_button" name="quick_inquiry_button" type="submit">Send My
<button class="sendButton" id="quick_inquiry_button" name="quick_inquiry_button" type="button">Send My
Inquiry</button>
</div>
</form>
<div class="contactwechat">
<img alt="china highlights' wechat code" height="100px"
src="https://data.chinahighlights.com/image/forms/inquiry-form-code-2022.png"
src="https://data.chinahighlights.com/image/forms/ch-contact-form-wechat-qr-code.png"
width="100px"/>
<div class="wechatinfo">Quickly inquire about this tour via our WeChat: <span class="wechatred">chinahighlightstour</span>
</div>
</div>
</div>
<script src="https://www.recaptcha.net/recaptcha/enterprise.js?render=6Lf828MhAAAAANNetijCXKwW5ARyhcJ-b1Hhslja"></script>
<script src="https://data.chinahighlights.com/js/flatpickr-4.6.1.min.js"></script>
<script>
function validateQuickInquiryForm() {
var result = true;
var realnameVal = document.getElementById("realname").value;
var emailVal = document.getElementById("email").value;
var startingDateVal = document.getElementById("starting_date").value;
var phoneVal = document.getElementById("PhoneNo").value;
var startingDateErrEl = document.getElementById("starting_date_errmsg");
var realnameErrEl = document.getElementById("realname_errmsg");
var emailErrEl = document.getElementById("email_errmsg");
var emailVerifyErrEl = document.getElementById("email_verify_errmsg");
var phoneErrEl = document.getElementById("phone_errmsg");
if (realnameErrEl) realnameErrEl.style.display = 'none';
if (emailErrEl) emailErrEl.style.display = 'none';
if (emailVerifyErrEl) emailVerifyErrEl.style.display = 'none';
if (startingDateErrEl) startingDateErrEl.style.display = 'none';
if (phoneErrEl) phoneErrEl.style.display = 'none';
if (realnameVal === '') {
realnameErrEl.style.display = '';
result = false;
}
if (emailVal === '') {
emailErrEl.style.display = '';
result = false;
} else {
var emailPattern = /^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/;
if (!emailPattern.test(emailVal) && emailVerifyErrEl) {
emailVerifyErrEl.style.display = '';
result = false;
}
}
if (startingDateVal === '') {
startingDateErrEl.style.display = '';
result = false;
}
if (phoneVal === '') {
phoneErrEl.style.display = '';
result = false;
}
return result;
}
document.addEventListener('DOMContentLoaded', () => {
flatpickr("#starting_date", {
dateFormat: "Y-m-d",
altInput: true,
altFormat: "F j, Y",
disableMobile: true,
minDate: "today"
});
var quick_inquiry_form = document.getElementById('quick_inquiry_form');
var quick_inquiry_button = document.getElementById('quick_inquiry_button');
quick_inquiry_button.addEventListener('click', function(evt) {
if (validateQuickInquiryForm()) {
if (typeof(grecaptcha) === "undefined") {
console.warn('grecaptcha is disabled.');
quick_inquiry_form.submit();
} else {
grecaptcha.enterprise.ready(async () => {
const token = await grecaptcha.enterprise.execute('6Lf828MhAAAAANNetijCXKwW5ARyhcJ-b1Hhslja', {action: 'ADD_TO_CART'});
var el = document.createElement("input");
el.type = "hidden";
el.name = "__grecaptcha_token__";
el.value = token;
quick_inquiry_form.appendChild(el);
quick_inquiry_form.submit();
});
}
}
});
});
</script>

@ -47,10 +47,7 @@
<!--PC头部导航-->
<header class="headerbar" id="header">
<nav>
<a href="/" class="p_toplogo"> <img
src="https://data.chinahighlights.com/pic/logo/china-highlights-top-navigation-logo.png" width="154"
height="83" alt="chinahighlights logo" class="chinahighlightslogo img-responsive"></a>
<a href="/" class="p_toplogo"> <img src="https://data.chinahighlights.com/pic/logo/china-highlights-top-navigation-logo.png" width="154" height="83" alt="chinahighlights logo" class="chinahighlightslogo img-responsive"></a>
<ul class="pctopnavi">
<li class="dropdown"><a href="/tour/" class="p_topnavilink" id="china_tours_2021">China Tours</a>
<div class="chinatourspc dropdown-content">
@ -231,7 +228,6 @@
</tbody>
</table>
</div>
</div>
<div class="footerbox">
<div class="list_content">
@ -304,12 +300,12 @@ Corporate Number: 914503003486045699
</ul>
<ul class="withBorder">
<li><a href="https://www.asiahighlights.com/" target="_blank">Asia</a></li>
<li><a href="/api/h.php?hl=de" target="_blank">Deutsch</a></li>
<li><a href="/api/h.php?hl=fr" target="_blank">Français</a></li>
<li><a href="/api/h.php?hl=es" target="_blank">Español</a></li>
<li><a href="/api/h.php?hl=it" target="_blank">Italiano</a></li>
<li><a href="/api/h.php?hl=ru" target="_blank">Русский</a></li>
<li><a href="/api/h.php?hl=ja" target="_blank">日本語</a></li>
<li><a href="https://www.chinarundreisen.com/" target="_blank">Deutsch</a></li>
<li><a href="https://www.voyageschine.com/" target="_blank">Français</a></li>
<li><a href="https://www.viaje-a-china.com/" target="_blank">Español</a></li>
<li><a href="https://www.viaggio-in-cina.it/" target="_blank">Italiano</a></li>
<li><a href="https://www.chinahighlights.ru/" target="_blank">Русский</a></li>
<li><a href="https://www.arachina.com/" target="_blank">日本語</a></li>
</ul>
</div>
<div class="bottommembers">

@ -22,14 +22,14 @@
<!--@MAIN-CSS@-->
<!--@ADDON-CSS@-->
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-5VT6KGSG67"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-31694-22"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-5VT6KGSG67');
gtag('config', 'UA-31694-22');
</script>
</head>

@ -16,16 +16,17 @@
<!--@MAIN-CSS@-->
<!--@ADDON-CSS@-->
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-5VT6KGSG67"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-31694-22"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-5VT6KGSG67');
gtag('config', 'UA-31694-22');
</script>
</head>
<body>

Loading…
Cancel
Save