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

webht/payment
YCC 2 years ago
commit 64b4dae2e3

1
.gitignore vendored

@ -9,6 +9,7 @@
/kcfinder/cache/* /kcfinder/cache/*
*/cache/* */cache/*
/author/document/* /author/document/*
*/settlement_files/*
*/statement_files/* */statement_files/*
*/paypal_activities/* */paypal_activities/*
/author/document/* /author/document/*

@ -392,11 +392,17 @@ $config['site'] = array(
'cht' => array('site_code' => 'cht', 'site_id' => 14, 'site_lgc' => '1', 'site_url' => 'https://www.chinahighlights.com', 'site_image_url' => 'https://images.chinahighlights.com', 'site_authors' => array('zzy', 'spt', 'yl', 'gavin', 'sw', 'zl', 'wbl', 'yqw', 'lf', 'zhm', 'pkl'), 'site_user' => ',ycc,lmr, zyh,J,shw,B,zzy,WJJ,Tony,pcf,zxy,wst,wz,v,S,yyg,yxd,wj,sw,yl,hx,spt,wmr,zl,syt,gavin,zm,htc,yqw,bhn,lmj,wbl,yqw,LYY,zhm,si'), 'cht' => array('site_code' => 'cht', 'site_id' => 14, 'site_lgc' => '1', 'site_url' => 'https://www.chinahighlights.com', 'site_image_url' => 'https://images.chinahighlights.com', 'site_authors' => array('zzy', 'spt', 'yl', 'gavin', 'sw', 'zl', 'wbl', 'yqw', 'lf', 'zhm', 'pkl'), 'site_user' => ',ycc,lmr, zyh,J,shw,B,zzy,WJJ,Tony,pcf,zxy,wst,wz,v,S,yyg,yxd,wj,sw,yl,hx,spt,wmr,zl,syt,gavin,zm,htc,yqw,bhn,lmj,wbl,yqw,LYY,zhm,si'),
'ch' => array('site_code' => 'ch', 'site_id' => 14, 'site_lgc' => '1', 'site_url' => 'https://www.chinahighlights.com', 'site_image_url' => 'https://images.chinahighlights.com', 'site_authors' => array('TDJ', 'ycc'), 'site_user' => ',ycc,'), 'ch' => array('site_code' => 'ch', 'site_id' => 14, 'site_lgc' => '1', 'site_url' => 'https://www.chinahighlights.com', 'site_image_url' => 'https://images.chinahighlights.com', 'site_authors' => array('TDJ', 'ycc'), 'site_user' => ',ycc,'),
'gm' => array('site_code' => 'gm', 'site_id' => 22, 'site_lgc' => '4', 'site_url' => 'https://www.chinarundreisen.com', 'site_image_url' => '//bilder.chinarundreisen.com', 'site_authors' => array('DX', 'X', 'K', 'Lan', 'lmr', 'zyh', 'ZYHL', 'TDJ'), 'site_user' => ',ycc,lmr,B,zyh,DX,X,K,htc,zm,bhn,Lan,Tony,zyh,J,v,ZYHL,TDJ,LYY,shw,'), 'gm' => array('site_code' => 'gm', 'site_id' => 22, 'site_lgc' => '4', 'site_url' => 'https://www.chinarundreisen.com', 'site_image_url' => '//bilder.chinarundreisen.com', 'site_authors' => array('DX', 'X', 'K', 'Lan', 'lmr', 'zyh', 'ZYHL', 'TDJ'), 'site_user' => ',ycc,lmr,B,zyh,DX,X,K,htc,zm,bhn,Lan,Tony,zyh,J,v,ZYHL,TDJ,LYY,shw,'),
'gh_gm' => array('site_code' => 'gh_gm', 'site_id' => 178, 'site_lgc' => '4', 'site_url' => 'https://www.globalhighlights.de', 'site_image_url' => '//www.globalhighlights.de', 'site_authors' => array('DX', 'X', 'K', 'Lan', 'lmr', 'zyh', 'ZYHL', 'TDJ'), 'site_user' => ',ycc,lmr,B,zyh,DX,X,K,htc,zm,bhn,Lan,Tony,zyh,J,v,ZYHL,TDJ,LYY,shw,'),
'vc' => array('site_code' => 'vc', 'site_id' => 30, 'site_lgc' => '5', 'site_url' => 'https://www.voyageschine.com', 'site_image_url' => '//images.voyageschine.com', 'site_authors' => array('JE', 'kq', 'lya', 'lyz', 'zyh'), 'site_user' => ',ycc,lmr, zyh,JE,htc,kq,lya,bhn,Tony,zyh,B,J,lyz,LYY,'), 'vc' => array('site_code' => 'vc', 'site_id' => 30, 'site_lgc' => '5', 'site_url' => 'https://www.voyageschine.com', 'site_image_url' => '//images.voyageschine.com', 'site_authors' => array('JE', 'kq', 'lya', 'lyz', 'zyh'), 'site_user' => ',ycc,lmr, zyh,JE,htc,kq,lya,bhn,Tony,zyh,B,J,lyz,LYY,'),
'gh_vc' => array('site_code' => 'gh_vc', 'site_id' => 180, 'site_lgc' => '5', 'site_url' => 'https://www.globalhighlights.fr', 'site_image_url' => '//www.globalhighlights.fr', 'site_authors' => array('JE', 'kq', 'lya', 'lyz', 'zyh'), 'site_user' => ',ycc,lmr, zyh,JE,htc,kq,lya,bhn,Tony,zyh,B,J,lyz,LYY,'),
'jp' => array('site_code' => 'jp', 'site_id' => 88, 'site_lgc' => '3', 'site_url' => 'https://www.arachina.com', 'site_image_url' => '//images.arachina.com', 'site_authors' => array('hql', 'LLM', 'SHX', 'lmr', 'zyh', 'zb'), 'site_user' => ',ycc,lmr, zyh,hql,LLM,SHX,htc,zpl,Tony,zyh,J,B,zb,LYY,'), 'jp' => array('site_code' => 'jp', 'site_id' => 88, 'site_lgc' => '3', 'site_url' => 'https://www.arachina.com', 'site_image_url' => '//images.arachina.com', 'site_authors' => array('hql', 'LLM', 'SHX', 'lmr', 'zyh', 'zb'), 'site_user' => ',ycc,lmr, zyh,hql,LLM,SHX,htc,zpl,Tony,zyh,J,B,zb,LYY,'),
'gh_jp' => array('site_code' => 'gh_jp', 'site_id' => 179, 'site_lgc' => '3', 'site_url' => 'https://www.globalhighlights.jp', 'site_image_url' => '//www.globalhighlights.jp', 'site_authors' => array('hql', 'LLM', 'SHX', 'lmr', 'zyh', 'zb'), 'site_user' => ',ycc,lmr, zyh,hql,LLM,SHX,htc,zpl,Tony,zyh,J,B,zb,LYY,'),
'vac' => array('site_code' => 'vac', 'site_id' => 95, 'site_lgc' => '6', 'site_url' => 'https://www.viaje-a-china.com', 'site_image_url' => '//imagenes.viaje-a-china.com', 'site_authors' => array('I', 'cyt', 'lmr', 'zyh', 'LLM'), 'site_user' => ',ycc,lmr, zyh,I,cyt,htc,bhn,Tony,zyh,B,J,LLM,LYY,'), 'vac' => array('site_code' => 'vac', 'site_id' => 95, 'site_lgc' => '6', 'site_url' => 'https://www.viaje-a-china.com', 'site_image_url' => '//imagenes.viaje-a-china.com', 'site_authors' => array('I', 'cyt', 'lmr', 'zyh', 'LLM'), 'site_user' => ',ycc,lmr, zyh,I,cyt,htc,bhn,Tony,zyh,B,J,LLM,LYY,'),
'gh_vac' => array('site_code' => 'gh_vac', 'site_id' => 181, 'site_lgc' => '6', 'site_url' => 'https://www.globalhighlights.es', 'site_image_url' => '//www.globalhighlights.es', 'site_authors' => array('I', 'cyt', 'lmr', 'zyh', 'LLM'), 'site_user' => ',ycc,lmr, zyh,I,cyt,htc,bhn,Tony,zyh,B,J,LLM,LYY,'),
'it' => array('site_code' => 'it', 'site_id' => 168, 'site_lgc' => '8', 'site_url' => 'https://www.viaggio-in-cina.it', 'site_image_url' => '//images.viaggio-in-cina.it', 'site_authors' => array('LZY', 'ZQQ', 'lmr', 'zyh'), 'site_user' => ',ycc,lmr, zyh,LZY,htc,ZQQ,Tony,zyh,B,J,LYY,'), 'it' => array('site_code' => 'it', 'site_id' => 168, 'site_lgc' => '8', 'site_url' => 'https://www.viaggio-in-cina.it', 'site_image_url' => '//images.viaggio-in-cina.it', 'site_authors' => array('LZY', 'ZQQ', 'lmr', 'zyh'), 'site_user' => ',ycc,lmr, zyh,LZY,htc,ZQQ,Tony,zyh,B,J,LYY,'),
'gh_it' => array('site_code' => 'gh_it', 'site_id' => 183, 'site_lgc' => '8', 'site_url' => 'https://www.globalhighlights.it', 'site_image_url' => '//www.globalhighlights.it', 'site_authors' => array('LZY', 'ZQQ', 'lmr', 'zyh'), 'site_user' => ',ycc,lmr, zyh,LZY,htc,ZQQ,Tony,zyh,B,J,LYY,'),
'ru' => array('site_code' => 'ru', 'site_id' => 102, 'site_lgc' => '7', 'site_url' => 'https://www.chinahighlights.ru', 'site_image_url' => '//images.chinahighlights.ru', 'site_authors' => array('xjj', 'zyy'), 'site_user' => ',ycc,lmr, zyh,xjj,htc,DX,zyy,bhn,Tony,zyh,B,J,LYY,'), 'ru' => array('site_code' => 'ru', 'site_id' => 102, 'site_lgc' => '7', 'site_url' => 'https://www.chinahighlights.ru', 'site_image_url' => '//images.chinahighlights.ru', 'site_authors' => array('xjj', 'zyy'), 'site_user' => ',ycc,lmr, zyh,xjj,htc,DX,zyy,bhn,Tony,zyh,B,J,LYY,'),
'gh_ru' => array('site_code' => 'gh_ru', 'site_id' => 182, 'site_lgc' => '7', 'site_url' => 'https://www.globalhighlights.ru', 'site_image_url' => '//www.globalhighlights.ru', 'site_authors' => array('xjj', 'zyy'), 'site_user' => ',ycc,lmr, zyh,xjj,htc,DX,zyy,bhn,Tony,zyh,B,J,LYY,'),
'wt' => array('site_code' => 'wt', 'site_id' => 172, 'site_lgc' => '2', 'site_url' => 'https://www.iiiyooo.com', 'site_image_url' => '', 'site_authors' => array('ylh', 'lfj', 'wx', 'lzh', 'shw', 'lx'), 'site_user' => ',ycc,lmr, zyh,ylh,lfj,wx,lzh,shw,lx,bhn,B,J,'), 'wt' => array('site_code' => 'wt', 'site_id' => 172, 'site_lgc' => '2', 'site_url' => 'https://www.iiiyooo.com', 'site_image_url' => '', 'site_authors' => array('ylh', 'lfj', 'wx', 'lzh', 'shw', 'lx'), 'site_user' => ',ycc,lmr, zyh,ylh,lfj,wx,lzh,shw,lx,bhn,B,J,'),
'tbt' => array('site_code' => 'tbt', 'site_id' => 169, 'site_lgc' => '1', 'site_url' => 'https://www.tibettravel.info', 'site_image_url' => '/images', 'site_authors' => array('wj', 'sfx'), 'site_user' => ',ycc,wj,bhn,wx,lzh,lfj,hwt,thf,sfx,J,ZP,'), 'tbt' => array('site_code' => 'tbt', 'site_id' => 169, 'site_lgc' => '1', 'site_url' => 'https://www.tibettravel.info', 'site_image_url' => '/images', 'site_authors' => array('wj', 'sfx'), 'site_user' => ',ycc,wj,bhn,wx,lzh,lfj,hwt,thf,sfx,J,ZP,'),
'sht' => array('site_code' => 'sht', 'site_id' => 96, 'site_lgc' => '1', 'site_url' => 'https://www.shanghaihighlights.com', 'site_image_url' => '//images.shanghaihighlights.com', 'site_authors' => array('vz', 'sfx'), 'site_user' => ',ycc,wj,bhn,wx,lzh,lfj,hwt,thf,vz,sfx,J,ZP,LYY,'), 'sht' => array('site_code' => 'sht', 'site_id' => 96, 'site_lgc' => '1', 'site_url' => 'https://www.shanghaihighlights.com', 'site_image_url' => '//images.shanghaihighlights.com', 'site_authors' => array('vz', 'sfx'), 'site_user' => ',ycc,wj,bhn,wx,lzh,lfj,hwt,thf,vz,sfx,J,ZP,LYY,'),
@ -426,6 +432,22 @@ $config['cache']['vac']['cache_path'] = 'D:\wwwcache-intl\viaje-a-china.com';
$config['cache']['ru']['cache_path'] = 'D:\wwwcache-intl\chinahighlights.ru'; $config['cache']['ru']['cache_path'] = 'D:\wwwcache-intl\chinahighlights.ru';
$config['cache']['it']['cache_path'] = 'D:\wwwcache-intl\viaggio-in-cina.it'; $config['cache']['it']['cache_path'] = 'D:\wwwcache-intl\viaggio-in-cina.it';
$config['cache']['gh_jp']['cache_path'] = 'D:\wwwcache-intl\globalhighlights.jp';
$config['cache']['gh_gm']['cache_path'] = 'C:\Dropbox\wwwcache\globalhighlights.de';
$config['cache']['gh_vc']['cache_path'] = 'D:\wwwcache-intl\globalhighlights.fr';
$config['cache']['gh_vac']['cache_path'] = 'D:\wwwcache-intl\globalhighlights.es';
$config['cache']['gh_ru']['cache_path'] = 'D:\wwwcache-intl\globalhighlights.ru';
$config['cache']['gh_it']['cache_path'] = 'D:\wwwcache-intl\globalhighlights.it';
/*
globalhighlights.jp
globalhighlights.de
globalhighlights.fr
globalhighlights.es
globalhighlights.ru
globalhighlights.it
*/
//静态文件站点域名 //静态文件站点域名
$config['cache']['jp']['site_url'] = 'https://www.arachina.com'; $config['cache']['jp']['site_url'] = 'https://www.arachina.com';
$config['cache']['gm']['site_url'] = 'https://www.chinarundreisen.com'; $config['cache']['gm']['site_url'] = 'https://www.chinarundreisen.com';
@ -434,6 +456,13 @@ $config['cache']['vac']['site_url'] = 'https://www.viaje-a-china.com';
$config['cache']['ru']['site_url'] = 'https://www.chinahighlights.ru'; $config['cache']['ru']['site_url'] = 'https://www.chinahighlights.ru';
$config['cache']['it']['site_url'] = 'https://www.viaggio-in-cina.it'; $config['cache']['it']['site_url'] = 'https://www.viaggio-in-cina.it';
$config['cache']['gh_jp']['site_url'] = 'https://www.globalhighlights.jp';
$config['cache']['gh_gm']['site_url'] = 'https://www.globalhighlights.de';
$config['cache']['gh_vc']['site_url'] = 'https://www.globalhighlights.fr';
$config['cache']['gh_vac']['site_url'] = 'https://www.globalhighlights.es';
$config['cache']['gh_ru']['site_url'] = 'https://www.globalhighlights.ru';
$config['cache']['gh_it']['site_url'] = 'https://www.globalhighlights.it';
//静态文件更新接口 //静态文件更新接口
$config['cache']['jp']['cache_api'] = '/info.php/information/update_cache/'; $config['cache']['jp']['cache_api'] = '/info.php/information/update_cache/';
$config['cache']['gm']['cache_api'] = '/info.php/information/update_cache/'; $config['cache']['gm']['cache_api'] = '/info.php/information/update_cache/';
@ -442,6 +471,13 @@ $config['cache']['vac']['cache_api'] = '/info.php/information/update_cache/';
$config['cache']['ru']['cache_api'] = '/info.php/information/update_cache/'; $config['cache']['ru']['cache_api'] = '/info.php/information/update_cache/';
$config['cache']['it']['cache_api'] = '/info.php/information/update_cache/'; $config['cache']['it']['cache_api'] = '/info.php/information/update_cache/';
$config['cache']['gh_jp']['cache_api'] = '/info.php/information/update_cache/';
$config['cache']['gh_gm']['cache_api'] = '/info.php/information/update_cache/';
$config['cache']['gh_vc']['cache_api'] = '/info.php/information/update_cache/';
$config['cache']['gh_vac']['cache_api'] = '/info.php/information/update_cache/';
$config['cache']['gh_ru']['cache_api'] = '/info.php/information/update_cache/';
$config['cache']['gh_it']['cache_api'] = '/info.php/information/update_cache/';
//静态文件更新接口参数 //静态文件更新接口参数
$config['cache']['jp']['cache_api_para'] = 'cache_url'; $config['cache']['jp']['cache_api_para'] = 'cache_url';
$config['cache']['gm']['cache_api_para'] = 'cache_url'; $config['cache']['gm']['cache_api_para'] = 'cache_url';
@ -450,6 +486,13 @@ $config['cache']['vac']['cache_api_para'] = 'cache_url';
$config['cache']['ru']['cache_api_para'] = 'cache_url'; $config['cache']['ru']['cache_api_para'] = 'cache_url';
$config['cache']['it']['cache_api_para'] = 'cache_url'; $config['cache']['it']['cache_api_para'] = 'cache_url';
$config['cache']['gh_jp']['cache_api_para'] = 'cache_url';
$config['cache']['gh_gm']['cache_api_para'] = 'cache_url';
$config['cache']['gh_vc']['cache_api_para'] = 'cache_url';
$config['cache']['gh_vac']['cache_api_para'] = 'cache_url';
$config['cache']['gh_ru']['cache_api_para'] = 'cache_url';
$config['cache']['gh_it']['cache_api_para'] = 'cache_url';
//本地测试用 - lmr //本地测试用 - lmr
if (isset($_SERVER['HTTP_HOST']) && $_SERVER['HTTP_HOST'] == '202.103.68.62:9999') { if (isset($_SERVER['HTTP_HOST']) && $_SERVER['HTTP_HOST'] == '202.103.68.62:9999') {
$config['site']['jp']['site_url'] = 'http://202.103.68.62:9093'; $config['site']['jp']['site_url'] = 'http://202.103.68.62:9093';

@ -171,7 +171,6 @@ class Information extends CI_Controller
$data['informationList'] = $this->Information_model->StructureList($rootStructure_ID); $data['informationList'] = $this->Information_model->StructureList($rootStructure_ID);
//增加一项,属于这个区域,但是结构数据层次不准确的也要列出来 //增加一项,属于这个区域,但是结构数据层次不准确的也要列出来
//todo:
//信息内容 //信息内容
$data['information'] = $this->Information_model->Detail($is_id); $data['information'] = $this->Information_model->Detail($is_id);
@ -447,7 +446,7 @@ class Information extends CI_Controller
$information_new = $this->Information_model->Detail($this->input->post('is_id')); $information_new = $this->Information_model->Detail($this->input->post('is_id'));
$this->make_www_cache_ct($information_new); $this->make_www_cache_ct($information_new);
// $this->make_www_cache_ct('pc', $information_new); // $this->make_www_cache_ct('pc', $information_new);
} else if (strcasecmp($site_code, "shanghai") == 0 && !empty($auto_update_cache)){ } else if (strcasecmp($site_code, "shanghai") == 0 && !empty($auto_update_cache)) {
$information_new = $this->Information_model->Detail($this->input->post('is_id')); $information_new = $this->Information_model->Detail($this->input->post('is_id'));
$this->make_www_cache_sh($information_new); $this->make_www_cache_sh($information_new);
} else if (strcasecmp($site_code, "cht") == 0 && !empty($auto_update_cache)) { } else if (strcasecmp($site_code, "cht") == 0 && !empty($auto_update_cache)) {
@ -928,40 +927,40 @@ class Information extends CI_Controller
// /day-tours/(278008224) 节点不使用推荐信息 // /day-tours/(278008224) 节点不使用推荐信息
if ($information->is_parent_id == '278008224') { if ($information->is_parent_id == '278008224') {
} else { } else {
// 右侧列表广告 // 右侧列表广告
$tips_right_a = []; $tips_right_a = [];
$tips_right_b = []; $tips_right_b = [];
$tips_right_c = []; $tips_right_c = [];
for ($i = 1; $i <= 12; $i++) { for ($i = 1; $i <= 12; $i++) {
$key = 'List Tips Right A_' . $i; $key = 'List Tips Right A_' . $i;
if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) { if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
$tips_right_a[] = $recommand_information[$key]; $tips_right_a[] = $recommand_information[$key];
} }
} }
for ($i = 1; $i <= 12; $i++) { for ($i = 1; $i <= 12; $i++) {
$key = 'List Tips Right B_' . $i; $key = 'List Tips Right B_' . $i;
if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) { if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
$tips_right_b[] = $recommand_information[$key]; $tips_right_b[] = $recommand_information[$key];
} }
} }
for ($i = 1; $i <= 12; $i++) { for ($i = 1; $i <= 12; $i++) {
$key = 'List Tips Right C_' . $i; $key = 'List Tips Right C_' . $i;
if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) { if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
$tips_right_c[] = $recommand_information[$key]; $tips_right_c[] = $recommand_information[$key];
} }
} }
$tips_right_list_content = $this->load->view( $tips_right_list_content = $this->load->view(
'mobile_first/ch-tips-right-list', 'mobile_first/ch-tips-right-list',
array( array(
'tips_right_a' => $tips_right_a, 'tips_right_a' => $tips_right_a,
'tips_right_b' => $tips_right_b, 'tips_right_b' => $tips_right_b,
'tips_right_c' => $tips_right_c 'tips_right_c' => $tips_right_c
), ),
true true
); );
$template = str_replace('<!--@TIPS-RIGHT-LIST@-->', $tips_right_list_content, $template); $template = str_replace('<!--@TIPS-RIGHT-LIST@-->', $tips_right_list_content, $template);
} }
//文中的信息推荐 //文中的信息推荐
@ -1200,7 +1199,9 @@ class Information extends CI_Controller
public function test_price() public function test_price()
{ {
$price_rule = '<div style="color: red;">#ah-8,st,2#</div><div style="color: red;">#ah-8,st,2#</div>'; $price_rule = '<div style="color: red;">#ah-23,st,2#</div>';
$price_item_array = $this->price_pregmatch($price_rule);
var_dump($price_item_array);
$price_tag_list = $this->parse_price_tag($price_rule); $price_tag_list = $this->parse_price_tag($price_rule);
var_dump($price_tag_list); var_dump($price_tag_list);
} }
@ -2286,8 +2287,7 @@ class Information extends CI_Controller
$dataform["TourCode"] = $productCode; $dataform["TourCode"] = $productCode;
$dataform["CLI_SN"] = $tourdata->clisn; $dataform["CLI_SN"] = $tourdata->clisn;
$dataform["TourName"] = $information->ic_title; $dataform["TourName"] = $information->ic_title;
$template_form_tourqi = $this->load->view($template_path . '-form-tourqi', $dataform, true);
$data["template_form_tourqi"] = $template_form_tourqi; //表单模板字符串
} }
@ -2375,6 +2375,12 @@ class Information extends CI_Controller
} }
} }
if ($meta_ct_page_type == "tourdetail") {
$dataform['device'] = $device;
$template_form_tourqi = $this->load->view($template_path . '-form-tourqi', $dataform, true);
$data["template_form_tourqi"] = $template_form_tourqi; //表单模板字符串
}
//两种设备分别调用两种模板 ,静态化 //两种设备分别调用两种模板 ,静态化
switch ($device) { switch ($device) {
case 'mobile': case 'mobile':
@ -2460,7 +2466,7 @@ class Information extends CI_Controller
$ic_content = $information->ic_content; $ic_content = $information->ic_content;
/** 替换H1加面包屑,加作者 */ /** 替换H1加面包屑,加作者 */
$ic_content = preg_replace('/<h1>(.*)<\/h1>/i', $crumb . "\r\n" . '<H1>$1</H1>' . "\r\n" . $str_author . "\r\n", $ic_content, 1); $ic_content = preg_replace('/<h1>(.*)<\/h1>/i', $crumb . "\r\n" . '<H1>$1</H1>' . "\r\n" . $str_author . "\r\n", $ic_content, 1);
//图片加延迟 //图片加延迟
$ic_content = $this->html_optimize_lib->set_lazy_loader($ic_content, 'https://data.shanghaihighlights.com/image/grey.gif'); $ic_content = $this->html_optimize_lib->set_lazy_loader($ic_content, 'https://data.shanghaihighlights.com/image/grey.gif');
@ -2597,10 +2603,10 @@ class Information extends CI_Controller
$data["ADDONCSS"] .= '<link href="' . $apiweb . '/css/css3/flatpickr.css" rel="preload" as="style" onload="this.rel=\'stylesheet\'" />'; $data["ADDONCSS"] .= '<link href="' . $apiweb . '/css/css3/flatpickr.css" rel="preload" as="style" onload="this.rel=\'stylesheet\'" />';
//一日游表单的替换 //一日游表单的替换
$DayTripData["productCode"]=$productCode; $DayTripData["productCode"] = $productCode;
$template_form_daydetail = $this->load->view($template_path.'-daydetail-form',$DayTripData,true); //模板内容 $template_form_daydetail = $this->load->view($template_path . '-daydetail-form', $DayTripData, true); //模板内容
//使用simple_html_dom_lib库来进行表单添加 //使用simple_html_dom_lib库来进行表单添加
$ic_content = $this->html_optimize_lib->add_htmlcode($ic_content,"#maincontent",$template_form_daydetail); $ic_content = $this->html_optimize_lib->add_htmlcode($ic_content, "#maincontent", $template_form_daydetail);
} }
if ($meta_ct_page_type == "tourdetail") { if ($meta_ct_page_type == "tourdetail") {
//线路 //线路
@ -2631,7 +2637,7 @@ class Information extends CI_Controller
$data["ADDONCSS"] .= '<link href="' . $apiweb . '/css/css3/flatpickr.css" rel="preload" as="style" onload="this.rel=\'stylesheet\'" />'; $data["ADDONCSS"] .= '<link href="' . $apiweb . '/css/css3/flatpickr.css" rel="preload" as="style" onload="this.rel=\'stylesheet\'" />';
} }
if ($meta_ct_page_type=="daytripform"){ if ($meta_ct_page_type == "daytripform") {
$productType = $meta_ct_page_type; $productType = $meta_ct_page_type;
$addonJs .= '<script src="' . $apiweb . '/js/mobile-first/daytrip-form.js" defer></script>'; $addonJs .= '<script src="' . $apiweb . '/js/mobile-first/daytrip-form.js" defer></script>';
$data["ADDONCSS"] .= '<link href="' . $apiweb . '/css/css3/form.css" rel="preload" as="style" onload="this.rel=\'stylesheet\'" />'; $data["ADDONCSS"] .= '<link href="' . $apiweb . '/css/css3/form.css" rel="preload" as="style" onload="this.rel=\'stylesheet\'" />';
@ -2837,8 +2843,8 @@ class Information extends CI_Controller
} }
foreach ($group_recommands as $item) { foreach ($group_recommands as $item) {
if ($this->config->item('site_code') == 'ah' or $this->config->item('site_code') == 'ch' or $this->config->item('site_code') == 'gh' ) { //如果是AH CH GH的页面取消重复检测 if ($this->config->item('site_code') == 'ah' or $this->config->item('site_code') == 'ch' or $this->config->item('site_code') == 'gh') { //如果是AH CH GH的页面取消重复检测
$exclude_ids=array(0); $exclude_ids = array(0);
} }
if (empty($data[$item->ir_name])) { if (empty($data[$item->ir_name])) {
$result = $this->recommand_information_rule($information, $root_detail, $item, $exclude_ids); $result = $this->recommand_information_rule($information, $root_detail, $item, $exclude_ids);
@ -3006,7 +3012,8 @@ class Information extends CI_Controller
//} //}
break; break;
case 'vac': //国际站 //国际站
case 'vac':
case 'vc': case 'vc':
case 'it': case 'it':
case 'ru': case 'ru':
@ -3057,6 +3064,64 @@ class Information extends CI_Controller
} }
} }
break; break;
//国际站 - GH
case 'gh_vac':
case 'gh_vc':
case 'gh_it':
case 'gh_ru':
case 'gh_jp':
$information = $this->Information_model->Detail($url);
$meta_pc_amp = @get_meta($information->ic_id, 'AMP_BODY_PC_STATUS');
if ($delete_only) {
//只删除操作在url修改和不发布信息的时候使用
$url = $this->config->item('site_url') . '/index.php/welcome/update_cache/delete_only?static_html_url=' . $url;
} else {
$tmp = $url;
//判断是否是更新信息
// 产品页面不能生成静态页面,比如/beijing/hotel/只是为了在导航显示一个链接,如果生成了静态页面,网前只会显示一个空白页面了
if (!empty($information->ic_content) || !empty($information->ic_summary) || $meta_pc_amp == 'yes') {
$url = $this->config->item('site_url') . '/index.php/gh/info/detail/?static_html_url=' . $url;
} else {
$url = $this->config->item('site_url') . '/index.php/welcome/update_cache/?static_html_url=' . $url;
//$url = $this->config->item('site_url') . '/index.php/information/detail/?static_html_url=' . $url;
}
if (isset($information->ic_type) && $information->ic_type == 'product') {
$url = $this->config->item('site_url') . '/index.php/welcome/update_cache/?static_html_url=' . $tmp;
}
// GH国际 不发布的时候删除缓存
if (!$information->ic_status) {
$url = $this->config->item('site_url') . '/index.php/welcome/update_cache/delete_only?static_html_url=' . $tmp;
}
//int return direct
$cache_url = $this->input->post('cache_url');
if ($url && !$cache_url) {
/*
ignore_user_abort(true);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // 从证书中检查SSL加密算法是否存在
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //禁止直接显示获取的内容
curl_setopt($ch, CURLOPT_HEADER, 0); //不需要HEAD
curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_exec($ch);
curl_close($ch);
*/
$data['async_update'] = $url;
$data[] = array('name' => 'ok', 'value' => '信息保存成功请在8秒后检查更新页面。', 'url' => $url);
//如果是外部调用就返回结果,内部就不返回了
if ($cache_url) {
echo json_encode($data);
}
return $data;
}
}
break;
case 'ct': //子站点使用 case 'ct': //子站点使用
$url = 'http://50.97.246.187:22223' . $url; $url = 'http://50.97.246.187:22223' . $url;

@ -77,7 +77,7 @@ function is_series_site()
{ {
$CI = &get_instance(); $CI = &get_instance();
$sitecode = $CI->config->item('site_code'); $sitecode = $CI->config->item('site_code');
if ($sitecode == 'vc' || $sitecode == 'ru' || $sitecode == 'jp' || $sitecode == 'vac' || $sitecode == 'it') { if (in_array($sitecode, array('jp', 'vc', 'vac', 'ru', 'it', 'gh_jp', 'gh_vc', 'gh_vac', 'gh_ru', 'gh_it', 'gh_gm'))) {
return true; return true;
} else { } else {
return false; return false;
@ -103,7 +103,7 @@ function is_mobile_first()
{ {
$CI = &get_instance(); $CI = &get_instance();
$sitecode = $CI->config->item('site_code'); $sitecode = $CI->config->item('site_code');
if ($sitecode == 'ch' || $sitecode == 'ah' || $sitecode=='chinatravel' || $sitecode == 'gh' || $sitecode=='shanghai') { if ($sitecode == 'ch' || $sitecode == 'ah' || $sitecode == 'chinatravel' || $sitecode == 'gh' || $sitecode == 'shanghai') {
return true; return true;
} else { } else {
return false; return false;
@ -222,7 +222,7 @@ function get_task_count_by_status()
function get_author_photo($author_code_id = false) function get_author_photo($author_code_id = false)
{ {
$CI = &get_instance(); $CI = &get_instance();
$root_url = '';//'http://data.chtcdn.com'; $root_url = ''; //'http://data.chtcdn.com';
$avatar = $root_url . '/css/images/avatar.jpg'; $avatar = $root_url . '/css/images/avatar.jpg';
if ($author_code_id && is_numeric($author_code_id)) { if ($author_code_id && is_numeric($author_code_id)) {
$CI->load->model('Infoauthors_model'); $CI->load->model('Infoauthors_model');
@ -237,7 +237,7 @@ function get_author_photo($author_code_id = false)
//补全图片路径 //补全图片路径
function get_photo_url($photo) function get_photo_url($photo)
{ {
$root_url = '';//'http://data.chtcdn.com'; $root_url = ''; //'http://data.chtcdn.com';
if ($photo == '') { if ($photo == '') {
$avatar = $root_url . '/css/images/uploadPic.jpg'; $avatar = $root_url . '/css/images/uploadPic.jpg';
} else { } else {
@ -275,7 +275,8 @@ function show_page($page)
} }
$html = ''; $html = '';
if ($nowview > 1) $befor--; if ($nowview > 1)
$befor--;
if ($pageSize <= $total) { if ($pageSize <= $total) {
for ($i = $befor; $i <= $after; $i++) { for ($i = $befor; $i <= $after; $i++) {
if ($i == $currentPage) { if ($i == $currentPage) {
@ -338,7 +339,7 @@ function GET_HTTP($url, $data = '', $method = 'GET')
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
$tmpInfo = curl_exec($curl); // 执行操作 $tmpInfo = curl_exec($curl); // 执行操作
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); $httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($httpCode >= 400) {//页面状态如果大于400说明页面打不开 if ($httpCode >= 400) { //页面状态如果大于400说明页面打不开
log_message('error', " curl {$httpCode} {$url} "); log_message('error', " curl {$httpCode} {$url} ");
return false; return false;
} }
@ -371,7 +372,8 @@ function compress_css($buffer)
} }
//把临时多媒体中心预览图片地址替换为网前地址 //把临时多媒体中心预览图片地址替换为网前地址
function replace_image_url($ic_content){ function replace_image_url($ic_content)
{
$CI = &get_instance(); $CI = &get_instance();
return str_replace($CI->config->item('media_image_url'), $CI->config->item('site_image_url'),$ic_content); return str_replace($CI->config->item('media_image_url'), $CI->config->item('site_image_url'), $ic_content);
} }

@ -16,9 +16,11 @@ class Feedback_model extends CI_Model {
$this->HT->query(" $this->HT->query("
select top 40 select top 40
tad_content, tai_customerid, tai_title, tai_getdate, tai_url tad_content, tai_customerid, tai_title, tai_getdate, tai_url
from Eva_TAInfo from Eva_TAInfo tai
left join Eva_TADetail on TAD_TAI_SN=TAI_SN left join Eva_TADetail on TAD_TAI_SN=TAI_SN
left join Eva_TAGuidePrize tgp on tgp.TGP_TAI_SN = tai.TAI_SN
where TAD_Content is not null where TAD_Content is not null
and isnull(TAI_DeleteFlag,0) = 0 and isnull(tgp.TGP_CheckState, 0) = 136002
order by tai_getdate desc"); order by tai_getdate desc");
$feedback_result = $feedback_query->result(); $feedback_result = $feedback_query->result();
@ -51,9 +53,11 @@ class Feedback_model extends CI_Model {
$this->HT->query(" $this->HT->query("
select top 40 select top 40
tad_content, tai_customerid, tai_title, tai_getdate, tai_url tad_content, tai_customerid, tai_title, tai_getdate, tai_url
from Eva_TAInfo from Eva_TAInfo tai
left join Eva_TADetail on TAD_TAI_SN=TAI_SN left join Eva_TADetail on TAD_TAI_SN=TAI_SN
left join Eva_TAGuidePrize tgp on tgp.TGP_TAI_SN = tai.TAI_SN
where TAD_Content is not null where TAD_Content is not null
and isnull(TAI_DeleteFlag,0) = 0 and isnull(tgp.TGP_CheckState, 0) = 136002
order by tai_getdate desc"); order by tai_getdate desc");
$feedback_result = $feedback_query->result(); $feedback_result = $feedback_query->result();
@ -66,11 +70,11 @@ class Feedback_model extends CI_Model {
$feedback_count = COUNT($feedback_list); $feedback_count = COUNT($feedback_list);
if (!in_array($feedback_row->tai_customerid, $customer_id_list) && $feedback_count < 20) { if (!in_array($feedback_row->tai_customerid, $customer_id_list) && $feedback_count < 20) {
$feedback = [ $feedback = [
// 'title' => $feedback_row->tai_title, 'title' => $feedback_row->tai_title,
'customer' => $feedback_row->tai_customerid, 'customer' => $feedback_row->tai_customerid,
// 'content' => $feedback_row->tad_content, // 'content' => $feedback_row->tad_content,
// 'url' => $feedback_row->tai_url, 'url' => $feedback_row->tai_url,
// 'createdOn' => $createdOnString 'createdOn' => $createdOnString
]; ];
$feedback_list[] = $feedback; $feedback_list[] = $feedback;
$customer_id_list[] = $feedback_row->tai_customerid; $customer_id_list[] = $feedback_row->tai_customerid;

@ -93,7 +93,7 @@ class Api_model extends CI_Model {
$reust = ""; $reust = "";
//'新的GP没有设置以前的2-5人等价格导致读不出价格。把Gp价格放前面计算 //'新的GP没有设置以前的2-5人等价格导致读不出价格。把Gp价格放前面计算
$sql = "select top 1 CLI_SN,CLI_PackageClass from CustomerLineInfo $sql = "select top 1 CLI_SN,CLI_PackageClass from CustomerLineInfo
where CLI_NO=? and CLI_State=1005004 where CLI_NO=? and ( CLI_State = 1005003 or CLI_State=1005004) and CLI_Grade=7001
AND (CLI_DEI_SN= ? )"; AND (CLI_DEI_SN= ? )";
$query = $this->HT->query($sql,array($cli_no,$this->dei_sn)); $query = $this->HT->query($sql,array($cli_no,$this->dei_sn));
if (!$query->num_rows()>0){ if (!$query->num_rows()>0){
@ -137,7 +137,7 @@ class Api_model extends CI_Model {
CustomerLinePrice ON CustomerLineInfo.CLI_SN = CustomerLinePrice.CLP_CLI_SN INNER JOIN CustomerLinePrice ON CustomerLineInfo.CLI_SN = CustomerLinePrice.CLP_CLI_SN INNER JOIN
CustomerLineInfo2 ON CustomerLineInfo.CLI_SN = CustomerLineInfo2.CLI2_CLI_SN CustomerLineInfo2 ON CustomerLineInfo.CLI_SN = CustomerLineInfo2.CLI2_CLI_SN
where CLI_SN= ? and CLI2_LGC=? and (CLP_Area=1 or CLP_Area=2) where CLI_SN= ? and CLI2_LGC=? and (CLP_Area=1 or CLP_Area=2)
and CLI_State = 1005004 ORDER BY CLP_TwoToFiveAdultPrice"; and (CLI_State = 1005004 or CLI_State = 1005003) ORDER BY CLP_TwoToFiveAdultPrice";
$query = $this->HT->query($sql,array($CLI_SN,$this->CTLGC)); $query = $this->HT->query($sql,array($CLI_SN,$this->CTLGC));
if ($query->num_rows()>0){ if ($query->num_rows()>0){
$reust = $query->row()->CLP_TwoToFiveAdultPrice; $reust = $query->row()->CLP_TwoToFiveAdultPrice;

@ -29,12 +29,12 @@
<h4 class="text-red" style="box-sizing:border-box;font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-weight:500;line-height:1.1;color:#AA2E2D;margin-top:10px;margin-bottom:15px;font-size:24px;padding:12px 0 12px 0;border-bottom:1px solid #dddddd;border-top:1px solid #dddddd;white-space:normal;background-color:#FFFFFF;"> <h4 class="text-red" style="box-sizing:border-box;font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-weight:500;line-height:1.1;color:#AA2E2D;margin-top:10px;margin-bottom:15px;font-size:24px;padding:12px 0 12px 0;border-bottom:1px solid #dddddd;border-top:1px solid #dddddd;white-space:normal;background-color:#FFFFFF;">
Flight Information Flight Information
</h4> </h4>
<p style="margin:0;">Arrival China Flight No.:<?php if (isset($postdata['MEI_ArrivalFlightNo'])) echo $postdata['MEI_ArrivalFlightNo']; ?></p> <p style="margin:0;">Arrival Flight No.:<?php if (isset($postdata['MEI_ArrivalFlightNo'])) echo $postdata['MEI_ArrivalFlightNo']; ?></p>
<p style="margin:0;"> <p style="margin:0;">
Arrival time:<?php if (isset($postdata['MEI_ArrivalTime'])) echo $postdata['MEI_ArrivalTime']; ?> Arrival time:<?php if (isset($postdata['MEI_ArrivalTime'])) echo $postdata['MEI_ArrivalTime']; ?>
</p> </p>
<p style="margin:0;"> <p style="margin:0;">
Departure China Flight no.:<?php if (isset($postdata['MEI_DepartureFlightNo'])) echo $postdata['MEI_DepartureFlightNo']; ?> Departure Flight no.:<?php if (isset($postdata['MEI_DepartureFlightNo'])) echo $postdata['MEI_DepartureFlightNo']; ?>
</p> </p>
<p style="margin:0;"> <p style="margin:0;">
Departure time:<?php if (isset($postdata['MEI_DepartureTime'])) echo $postdata['MEI_DepartureTime']; ?> Departure time:<?php if (isset($postdata['MEI_DepartureTime'])) echo $postdata['MEI_DepartureTime']; ?>

@ -59,11 +59,11 @@
} }
</style> </style>
<script type="text/javascript"> <script type="text/javascript">
$(function() { $(function () {
//更新静态页,异步请求队列(setp_set个) //更新静态页,异步请求队列(setp_set个)
var setp_set = 8; var setp_set = 8;
$('#update').on('click', function() { $('#update').on('click', function () {
var $data = $('.data'); var $data = $('.data');
for (var i = 0; i < setp_set; i++) { for (var i = 0; i < setp_set; i++) {
dg_ajax($data, i, setp_set); dg_ajax($data, i, setp_set);
@ -71,7 +71,7 @@
}); });
//下拉选站点 //下拉选站点
$('a.sss').on('click', function() { $('a.sss').on('click', function () {
var site = $(this).html(); var site = $(this).html();
location.href = '/info.php/login/change_site/' + site + '/?url=/cache/update/'; location.href = '/info.php/login/change_site/' + site + '/?url=/cache/update/';
}); });
@ -90,14 +90,14 @@
data: { data: {
'<?php echo ($post_para); ?>': file '<?php echo ($post_para); ?>': file
}, },
success: function(data) { success: function (data) {
star = star + step; star = star + step;
current.find('.msg_wait').css('color', 'blue').html('成功'); current.find('.msg_wait').css('color', 'blue').html('成功');
count_num(num_zero); count_num(num_zero);
//console.log(star+''+file); //console.log(star+''+file);
dg_ajax(dom, star, step); dg_ajax(dom, star, step);
}, },
error: function() { error: function () {
current.find('.msg_wait').css('color', 'red').html('重试'); current.find('.msg_wait').css('color', 'red').html('重试');
dg_ajax(dom, star, step); dg_ajax(dom, star, step);
} }
@ -122,7 +122,8 @@
<ul class="nav nav-pills"> <ul class="nav nav-pills">
<li class="active dropdown mr10"> <li class="active dropdown mr10">
<a class="dropdown-toggle" data-toggle="dropdown" href="#"> <a class="dropdown-toggle" data-toggle="dropdown" href="#">
站点:<?php echo ($this->config->item('site_code')); ?> 站点:
<?php echo ($this->config->item('site_code')); ?>
<b class="caret"></b> <b class="caret"></b>
</a> </a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
@ -144,15 +145,39 @@
<li> <li>
<a class="sss">it</a> <a class="sss">it</a>
</li> </li>
<li>
<a class="sss">gh_jp</a>
</li>
<li>
<a class="sss">gh_gm</a>
</li>
<li>
<a class="sss">gh_vc</a>
</li>
<li>
<a class="sss">gh_vac</a>
</li>
<li>
<a class="sss">gh_ru</a>
</li>
<li>
<a class="sss">gh_it</a>
</li>
</ul> </ul>
</li> </li>
<span class="mt12 label label-success">缓存目录<?php echo (count($path)); ?></span> <span class="mt12 label label-success">缓存目录
<span class="mt12 label label-info">含文件<?php echo (count($file)); ?></span> <?php echo (count($path)); ?>
</span>
<span class="mt12 label label-info">含文件
<?php echo (count($file)); ?>
</span>
<span class="mt12 label label-important none" id="count_num">已更新0个页面 进度0%</span> <span class="mt12 label label-important none" id="count_num">已更新0个页面 进度0%</span>
<form class="form-search" id="path_search" action="#" method="post"> <form class="form-search" id="path_search" action="#" method="post">
<input type="text" placeholder="输入路径删选,例如:/tours/。" value="<?php if (isset($_POST['p'])) { <input type="text" placeholder="输入路径删选,例如:/tours/。" value="<?php if (isset($_POST['p'])) {
echo ($_POST['p']); echo ($_POST['p']);
} ?>" class="input-medium search-query" name="p" /> } ?>" class="input-medium search-query"
name="p" />
<button type="submit" class="btn">筛选</button> <button type="submit" class="btn">筛选</button>
</form> </form>
<a id="update" class="btn mr10 btn-info">更新</a> <a id="update" class="btn mr10 btn-info">更新</a>
@ -172,15 +197,24 @@
<?php foreach ($file as $key => $it) { <?php foreach ($file as $key => $it) {
$encode = mb_detect_encoding($it, array('ASCII', 'GBK', 'ISO-8859-1', 'UTF-8')); $encode = mb_detect_encoding($it, array('ASCII', 'GBK', 'ISO-8859-1', 'UTF-8'));
$_it = mb_convert_encoding($it, 'UTF8', $encode); $_it = mb_convert_encoding($it, 'UTF8', $encode);
?> ?>
<tr class="data"> <tr class="data">
<td><?php echo ($key + 1); ?></td> <td>
<?php echo ($key + 1); ?>
</td>
<?php if (strlen($_it) > 100) { ?> <?php if (strlen($_it) > 100) { ?>
<td class="file" title="<?php echo ($_it); ?>"><?php echo (substr($_it, 0, 40)); ?>..........<?php echo (substr($_it, -35)); ?></td> <td class="file" title="<?php echo ($_it); ?>">
<?php echo (substr($_it, 0, 40)); ?>..........
<?php echo (substr($_it, -35)); ?>
</td>
<?php } else { ?> <?php } else { ?>
<td class="file" title="<?php echo ($_it); ?>"><?php echo ($_it); ?></td> <td class="file" title="<?php echo ($_it); ?>">
<?php echo ($_it); ?>
</td>
<?php } ?> <?php } ?>
<td><?php echo ($file_time[$it]); ?></td> <td>
<?php echo ($file_time[$it]); ?>
</td>
<td class="msg_wait">无操作</td> <td class="msg_wait">无操作</td>
</tr> </tr>
<?php } ?> <?php } ?>

@ -8,135 +8,204 @@
<form action="/orders/quick_inquiry_save" method="post" novalidate="" id="info_page_form"> <form action="/orders/quick_inquiry_save" method="post" novalidate="" id="info_page_form">
<textarea id="form_additionalrequirements" name="additional_requirements" placeholder="E.g.: This is a big trip for anniversary, honeymoon, birthday celebration..." style="height:90px;"></textarea> <textarea id="form_additionalrequirements" name="additional_requirements" placeholder="E.g.: This is a big trip for anniversary, honeymoon, birthday celebration..." style="height:90px;"></textarea>
<div class="selectionBlock" style="margin-bottom: 0;"> <div class="selectionBlock">
<p style=" <h4 style="margin-bottom: 0;margin-top: 0; padding-bottom: 0;">
margin-bottom: 0px; How would you travel?
"> </h4>
<strong>Number in your group</strong> <div id="group_error_msg" style="display: none">
</p> <div class="requiredArea" style="margin-top:-10px;">Please select number in your group.</div>
<div id="group_error_msg" style="display: none"> </div>
<div class="requiredArea" style="margin-top:-10px;">Please select number in your group.</div> <div class="travel_group">
</div> <input type="radio" value="Family" id="Family" name="travel_group">
<div class="travel_group"> <label for="Family" class="family">
<input type="radio" value="Family" id="Family" name="travel_group"> Family
<label for="Family" class="family"> </label>
Family </div>
</label> <div class="travel_group">
</div> <input type="radio" value="Couple" id="Couple" name="travel_group">
<div class="travel_group"> <label for="Couple" class="couple">
<input type="radio" value="Couple" id="Couple" name="travel_group"> Couple
<label for="Couple" class="couple"> </label>
Couple </div>
</label> <div class="travel_group">
</div> <input type="radio" value="Solo" id="Solo" name="travel_group">
<div class="travel_group"> <label for="Solo" class="solo">
<input type="radio" value="Solo" id="Solo" name="travel_group"> Solo
<label for="Solo" class="solo"> </label>
Solo </div>
</label> <div class="travel_group">
</div> <input type="radio" value="group" id="Other" name="travel_group">
<div class="travel_group"> <label for="Other" class="group">
<input type="radio" value="group" id="Other" name="travel_group"> Other group
<label for="Other" class="group"> </label>
Other group </div>
</label>
</div> <div id="adultBlock" style="display: none">
<p style="margin-top: 0;margin-bottom: 0;"><strong>Adults number</strong></p>
<div id="adultBlock" style="display: none"> <div class="kids_age">
<p style="margin-bottom: 0;">65+ yrs old</p>
<div class="peopleSelect"> <select class="kids_number" id="adultNumber_65_plus" name="adult_65_plus" >
<p style=" margin-top: 10px; <option value="0">0</option>
margin-bottom: 10px;"><strong> <option value="1">1</option>
Adults (≥18 years old) <option value="2">2</option>
</strong> </p> <option value="3">3</option>
<button class="minaddBtn reduceadult" id="minusAdult" type="button" <option value="4">4</option>
value="-">-</button> <option value="5">5</option>
<input class="number" type="text" value="2" id="adultNumber" name="adult"> <option value="6">6</option>
<button class="minaddBtn addadult" type="button" id="plusAdult" value="+">+</button> <option value="7">7</option>
</div> <option value="8">8</option>
<div class="age_range"> <option value="9">9</option>
<p> <option value="10">10</option>
Adults' ages <option value="11">11</option>
</p> <option value="12">12</option>
<div class="checkYes" style="float:left;"> <option value="13">13</option>
<label for="65+"> <option value="14">14</option>
<input type="checkbox" value="yes" name="age_65_plus" id="65+" class="checkBorder" >65+ <option value="15">15</option>
</label> <option value="16">16</option>
</div> <option value="17">17</option>
<div class="checkYes" style="float:left;"> <option value="18">18</option>
<label for="51-64"> <option value="19">19</option>
<input type="checkbox" value="yes" name="age_51_64" id="51-64" class="checkBorder" >51-64 <option value="20">20</option>
</label> <option value="21">21</option>
</div> <option value="22">22</option>
<div class="checkYes" style="float:left;"> <option value="23">23</option>
<label for="41-50"> <option value="24">24</option>
<input type="checkbox" value="yes" name="age_41_50" id="41-50" class="checkBorder" >41-50 <option value="25">25</option>
</label> <option value="26">26</option>
</div> <option value="27">27</option>
<div class="checkYes" style="float:left;"> <option value="28">28</option>
<label for="31-40"> <option value="29">29</option>
<input type="checkbox" value="yes" name="age_31_40" id="31-40" class="checkBorder" >31-40 <option value="30">30</option>
</label> </select>
</div> <p style="
<div class="checkYes" style="float:left;"> margin-top: 5px;font-size: 18px;
<label for="18-30"> ">people</p>
<input type="checkbox" value="yes" name="age_18_30" id="18-30" class="checkBorder" >18-30 </div>
</label> <div class="kids_age">
</div> <p style="margin-bottom: 0;">41-64 yrs old</p>
</div> <select class="kids_number" id="adultNumber_41_64" name="adult_41_64" >
</div> <option value="0">0</option>
<div class="clear"></div> <option value="1">1</option>
<div id="childrenBlock" style="display: none"> <option value="2">2</option>
<p style=" margin-top: -10px; margin-bottom: 5px;"><strong>Children (age of children at time of trip)</strong></p> <option value="3">3</option>
<div class="kids_age"> <option value="4">4</option>
<p style="margin-bottom: 5px;">10-17 yrs old</p> <option value="5">5</option>
<select class="kids_number" id="teenagerNumber" name="teenager_10_17_yrs"> <option value="6">6</option>
<option value="0">0 <option value="7">7</option>
</option> <option value="8">8</option>
<option value="1">1 <option value="9">9</option>
</option> <option value="10">10</option>
<option value="2">2 <option value="11">11</option>
</option> <option value="12">12</option>
<option value="3">3 <option value="13">13</option>
</option> <option value="14">14</option>
<option value="4">4 <option value="15">15</option>
</option> <option value="16">16</option>
</select> <option value="17">17</option>
</div> <option value="18">18</option>
<div class="kids_age"> <option value="19">19</option>
<p style="margin-bottom: 5px;">3-9 yrs old</p> <option value="20">20</option>
<select class="kids_number" id="childrenNumber" name="children_3_9_yrs"> <option value="21">21</option>
<option value="0">0 <option value="22">22</option>
</option> <option value="23">23</option>
<option value="1">1 <option value="24">24</option>
</option> <option value="25">25</option>
<option value="26">26</option>
<option value="2">2 <option value="27">27</option>
</option> <option value="28">28</option>
<option value="3">3 <option value="29">29</option>
</option> <option value="30">30</option>
<option value="4">4 </select>
</option> <p style="margin-top: 5px;font-size: 18px;">people</p>
</select> </div>
</div> <div class="kids_age">
<div class="kids_age"> <p style="margin-bottom: 0;">18-40 yrs old</p>
<p style="margin-bottom: 5px;">0-2 yrs old</p> <select class="kids_number" id="adultNumber_18_40" name="adult_18_40" >
<select class="kids_number" id="infantNumber" name="infant_0_2_yrs"> <option value="0">0</option>
<option value="0">0 <option value="1">1</option>
</option> <option value="2">2</option>
<option value="1">1 <option value="3">3</option>
</option> <option value="4">4</option>
<option value="2">2 <option value="5">5</option>
</option> <option value="6">6</option>
<option value="3">3 <option value="7">7</option>
</option> <option value="8">8</option>
<option value="4">4 <option value="9">9</option>
</option> <option value="10">10</option>
</select> <option value="11">11</option>
</div> <option value="12">12</option>
</div> <option value="13">13</option>
<option value="14">14</option>
</div> <option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
</select>
<p style="
margin-top: 5px;font-size: 18px;
">people</p>
</div>
</div>
<div class="clear"></div>
<div id="childrenBlock" style="display: none">
<p style="margin-top: 0;margin-bottom: 0;"><strong>Children number</strong></p>
<div class="kids_age">
<p style="margin-bottom: 5px;">10-17 yrs old</p>
<select class="kids_number" id="teenagerNumber" name="teenager_10_17">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<p style="
margin-top: 10px;font-size: 18px;
">people</p>
</div>
<div class="kids_age">
<p style="margin-bottom: 5px;">3-9 yrs old</p>
<select class="kids_number" id="childrenNumber" name="children_3_9">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<p style="
margin-top: 10px;font-size: 18px;
">people</p>
</div>
<div class="kids_age">
<p style="margin-bottom: 5px;">0-2 yrs old</p>
<select class="kids_number" id="infantNumber" name="infant_0_2">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<p style="
margin-top: 10px;font-size: 18px;
">people</p>
</div>
</div>
</div>
<div class="selectionBlock" style="margin-bottom: 10px;"> <div class="selectionBlock" style="margin-bottom: 10px;">
<p style=" margin-top: 10px; <p style=" margin-top: 10px;
@ -605,21 +674,9 @@
$(function () { $(function () {
var $adultBlock = $('#adultBlock'); var $adultBlock = $('#adultBlock');
var $childrenBlock = $('#childrenBlock'); var $childrenBlock = $('#childrenBlock');
var $adultNumberInput = $('#adultNumber');
var adultNumber = $adultNumberInput.val();
var $teenagerNumberInput = $('#teenagerNumber');
var teenagerNumber = $teenagerNumberInput.val();
var $childrenNumberInput = $('#childrenNumber');
var childrenNumber = $childrenNumberInput.val();
var $infantNumberInput = $('#infantNumber');
var infantNumber = $infantNumberInput.val();
$('input[name="travel_group"]').each((i, groupEle) => { $('input[name="travel_group"]').each((i, groupEle) => {
$(groupEle).click(function (e) { $(groupEle).click(function (e) {
$teenagerNumberInput.val(0);
$childrenNumberInput.val(0);
$infantNumberInput.val(0);
var currentTarget = e.currentTarget; var currentTarget = e.currentTarget;
if (currentTarget.id === 'Family' || currentTarget.id === 'Other' ) { if (currentTarget.id === 'Family' || currentTarget.id === 'Other' ) {
$adultBlock.show(); $adultBlock.show();
@ -627,11 +684,6 @@
} else { } else {
$adultBlock.show(); $adultBlock.show();
$childrenBlock.hide(); $childrenBlock.hide();
}
if (currentTarget.id === 'Couple') {
$adultNumberInput.val(2);
} else if (currentTarget.id === 'Solo') {
$adultNumberInput.val(1);
} }
}) })
}); });
@ -667,53 +719,6 @@
var tripLength = $('#tripLengthNumber').val(); var tripLength = $('#tripLengthNumber').val();
//成人
$('#plusAdult').click(function () {
adultNumber++;
$adultNumberInput.val(adultNumber);
});
$('#minusAdult').click(function () {
if (adultNumber > 1) {
adultNumber--;
$adultNumberInput.val(adultNumber);
}
});
// 青少年
$('#plusTeenager').click(function () {
teenagerNumber++;
$teenagerNumberInput.val(teenagerNumber);
});
$('#minusTeenager').click(function () {
if (teenagerNumber > 0) {
teenagerNumber--;
$teenagerNumberInput.val(teenagerNumber);
}
});
// 儿童
$('#plusChildren').click(function () {
childrenNumber++;
$childrenNumberInput.val(childrenNumber);
});
$('#minusChildren').click(function () {
if (childrenNumber > 0) {
childrenNumber--;
$childrenNumberInput.val(childrenNumber);
}
});
// 婴儿
$('#plusInfant').click(function () {
infantNumber++;
$infantNumberInput.val(infantNumber);
});
$('#minusInfant').click(function () {
if (infantNumber > 0) {
infantNumber--;
$infantNumberInput.val(infantNumber);
}
});
// Trip Length // Trip Length
$('#tripLengthPlus').click(function () { $('#tripLengthPlus').click(function () {
tripLength++; tripLength++;

@ -4,136 +4,206 @@
<form action="/orders/quick_inquiry_save" method="post" novalidate="" id="quick_inquiry_form"> <form action="/orders/quick_inquiry_save" method="post" novalidate="" id="quick_inquiry_form">
<textarea id="form_additionalrequirements" name="additional_requirements" placeholder="E.g.: This is a big trip for anniversary, honeymoon, birthday celebration..."></textarea> <textarea id="form_additionalrequirements" name="additional_requirements" placeholder="E.g.: This is a big trip for anniversary, honeymoon, birthday celebration..."></textarea>
<div class="selectionBlock"> <div class="selectionBlock">
<h4 style="margin-bottom: 0;margin-top: 0; padding-bottom: 0;"> <h4 style="margin-bottom: 0;margin-top: 0; padding-bottom: 0;">
How would you travel? How would you travel?
</h4> </h4>
<div id="group_error_msg" style="display: none"> <div id="group_error_msg" style="display: none">
<div class="requiredArea" style="margin-top:-10px;">Please select number in your group.</div> <div class="requiredArea" style="margin-top:-10px;">Please select number in your group.</div>
</div> </div>
<div class="travel_group"> <div class="travel_group">
<input type="radio" value="Family" id="Family" name="travel_group"> <input type="radio" value="Family" id="Family" name="travel_group">
<label for="Family" class="family"> <label for="Family" class="family">
Family Family
</label> </label>
</div> </div>
<div class="travel_group"> <div class="travel_group">
<input type="radio" value="Couple" id="Couple" name="travel_group"> <input type="radio" value="Couple" id="Couple" name="travel_group">
<label for="Couple" class="couple"> <label for="Couple" class="couple">
Couple Couple
</label> </label>
</div> </div>
<div class="travel_group"> <div class="travel_group">
<input type="radio" value="Solo" id="Solo" name="travel_group"> <input type="radio" value="Solo" id="Solo" name="travel_group">
<label for="Solo" class="solo"> <label for="Solo" class="solo">
Solo Solo
</label> </label>
</div> </div>
<div class="travel_group"> <div class="travel_group">
<input type="radio" value="group" id="Other" name="travel_group"> <input type="radio" value="group" id="Other" name="travel_group">
<label for="Other" class="group"> <label for="Other" class="group">
Other group Other group
</label> </label>
</div> </div>
<div id="adultBlock" style="display: none">
<p style="
margin-bottom: 0;
font-size: 22px;
margin-top: 20px;
">When you plan to take the trip:</p>
<div class="peopleSelect">
<p style="margin-top: 20px;"><strong>
Adults (≥18 years old)
</strong> </p>
<button class="minaddBtn reduceadult" id="minusAdult" type="button"
value="-">-</button>
<input class="number" type="text" value="2" id="adultNumber" name="adult">
<button class="minaddBtn addadult" type="button" id="plusAdult" value="+">+</button>
</div>
<div class="age_range">
<p>
Adults' ages
</p>
<div class="checkYes" style="float:left;">
<label for="65+">
<input type="checkbox" value="yes" name="age_65_plus" id="65+" class="checkBorder" >65+
</label>
</div>
<div class="checkYes" style="float:left;">
<label for="51-64">
<input type="checkbox" value="yes" name="age_51_64" id="51-64" class="checkBorder" >51-64
</label>
</div>
<div class="checkYes" style="float:left;">
<label for="41-50">
<input type="checkbox" value="yes" name="age_41_50" id="41-50" class="checkBorder" >41-50
</label>
</div>
<div class="checkYes" style="float:left;">
<label for="31-40">
<input type="checkbox" value="yes" name="age_31_40" id="31-40" class="checkBorder" >31-40
</label>
</div>
<div class="checkYes" style="float:left;">
<label for="18-30">
<input type="checkbox" value="yes" name="age_18_30" id="18-30" class="checkBorder" >18-30
</label>
</div>
</div>
</div>
<div class="clear"></div>
<div id="childrenBlock" style="display: none">
<p style="margin-top: 0;margin-bottom: 0;"><strong>Children</strong></p>
<div class="kids_age">
<p style="margin-bottom: 5px;">10-17 yrs old</p>
<select class="kids_number" id="teenagerNumber" name="teenager_10_17_yrs">
<option value="0">0
</option>
<option value="1">1
</option>
<option value="2">2
</option>
<option value="3">3
</option>
<option value="4">4
</option>
</select>
</div>
<div class="kids_age">
<p style="margin-bottom: 5px;">3-9 yrs old</p>
<select class="kids_number" id="childrenNumber" name="children_3_9_yrs">
<option value="0">0
</option>
<option value="1">1
</option>
<option value="2">2 <div id="adultBlock" style="display: none">
</option> <p style="margin-top: 0;margin-bottom: 0;"><strong>Adults number</strong></p>
<option value="3">3 <div class="kids_age">
</option> <p style="margin-bottom: 0;">65+ yrs old</p>
<option value="4">4 <select class="kids_number" id="adultNumber_65_plus" name="adult_65_plus" >
</option> <option value="0">0</option>
</select> <option value="1">1</option>
</div> <option value="2">2</option>
<div class="kids_age"> <option value="3">3</option>
<p style="margin-bottom: 5px;">0-2 yrs old</p> <option value="4">4</option>
<select class="kids_number" id="infantNumber" name="infant_0_2_yrs"> <option value="5">5</option>
<option value="0">0 <option value="6">6</option>
</option> <option value="7">7</option>
<option value="1">1 <option value="8">8</option>
</option> <option value="9">9</option>
<option value="2">2 <option value="10">10</option>
</option> <option value="11">11</option>
<option value="3">3 <option value="12">12</option>
</option> <option value="13">13</option>
<option value="4">4 <option value="14">14</option>
</option> <option value="15">15</option>
</select> <option value="16">16</option>
</div> <option value="17">17</option>
</div> <option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
</select>
<p style="
margin-top: 5px;font-size: 18px;
">people</p>
</div>
<div class="kids_age">
<p style="margin-bottom: 0;">41-64 yrs old</p>
<select class="kids_number" id="adultNumber_41_64" name="adult_41_64" >
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
</select>
<p style="
margin-top: 5px;font-size: 18px;
">people</p>
</div>
<div class="kids_age">
<p style="margin-bottom: 0;">18-40 yrs old</p>
<select class="kids_number" id="adultNumber_18_40" name="adult_18_40" >
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
</select>
<p style="
margin-top: 5px;font-size: 18px;
">people</p>
</div>
</div>
<div class="clear"></div>
<div id="childrenBlock" style="display: none">
<p style="margin-top: 0;margin-bottom: 0;"><strong>Children number</strong></p>
<div class="kids_age">
<p style="margin-bottom: 5px;">10-17 yrs old</p>
<select class="kids_number" id="teenagerNumber" name="teenager_10_17">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<p style="
margin-top: 10px;font-size: 18px;
">people</p>
</div>
<div class="kids_age">
<p style="margin-bottom: 5px;">3-9 yrs old</p>
<select class="kids_number" id="childrenNumber" name="children_3_9">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<p style="
margin-top: 10px;font-size: 18px;
">people</p>
</div>
<div class="kids_age">
<p style="margin-bottom: 5px;">0-2 yrs old</p>
<select class="kids_number" id="infantNumber" name="infant_0_2">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<p style="
margin-top: 10px;font-size: 18px;
">people</p>
</div>
</div>
</div> </div>
<div class="selectionBlock"> <div class="selectionBlock">
<h4 style="margin-top: 0; margin-bottom: 0;"> <h4 style="margin-top: 0; margin-bottom: 0;">
@ -205,82 +275,7 @@
<div id="email_verify_errmsg" style="display: none"> <div id="email_verify_errmsg" style="display: none">
<div class="requiredArea" style="margin-top:-10px;">Please verify your email.</div> <div class="requiredArea" style="margin-top:-10px;">Please verify your email.</div>
</div> </div>
<!--<div class="selectionBlock">
<div class="peopleSelect">
<span class="formMemo">
Adults (≥12 years old)
</span>
<div class="numberBtn">
<input class="minaddBtn reduceadult" id="minusAdult" type="button" value="-">
<input class="number" type="text" id="adultNumber" readonly value="1" name="adultnumber">
<input class="minaddBtn addadult" id="plusAdult" type="button" value="+">
</div>
</div>
<div class="age_range">
<p>
Adults' ages
</p>
<div class="checkYes">
<label for="12-17">
<input type="checkbox" value="yes" name="adult age range 12 17" id="12-17" class="checkBorder">12-17
</label>
</div>
<div class="checkYes">
<label for="18-30">
<input type="checkbox" value="yes" name="adult age range 18 30" id="18-30" class="checkBorder">18-30
</label>
</div>
<div class="checkYes">
<label for="31-50">
<input type="checkbox" value="yes" name="adult age range 31 50" id="31-50" class="checkBorder">31-50
</label>
</div>
<div class="checkYes">
<label for="51-64">
<input type="checkbox" value="yes" name="adult age range 51 64" id="51-64" class="checkBorder">51-64
</label>
</div>
<div class="checkYes">
<label for="65+">
<input type="checkbox" value="yes" name="adult age range 65" id="65+" class="checkBorder">65+
</label>
</div>
</div>
<div class="peopleSelect">
<span class="formMemo">
Kids (2-11 years old)
</span>
<div class="numberBtn">
<input class="minaddBtn reducechild" id="minusKid" type="button" value="-">
<input class="kidNum" type="text" id="kidNumber" readonly value="0" name="kidnumber">
<input class="minaddBtn addchild" id="plusKid" type="button" value="+">
</div>
</div>
<div class="age_range">
<p>
Kids' ages
</p>
<div class="checkYes">
<label for="0">
<input type="checkbox" value="yes" name="kid age range 0 2" id="0" class="checkBorder">0-2
</label>
</div>
<div class="checkYes">
<label for="3">
<input type="checkbox" value="yes" name="kid age range 3 7" id="3" class="checkBorder">3-7
</label>
</div>
<div class="checkYes">
<label for="8">
<input type="checkbox" value="yes" name="kid age range 8 11" id="8" class="checkBorder">8-11
</label>
</div>
</div>
<div class="clear">
</div>
</div>-->
<select name="country_code" class="country_code"> <select name="country_code" class="country_code">
<option style="font-weight: 600;" value="United States +1">United States&nbsp; &nbsp;+1</option> <option style="font-weight: 600;" value="United States +1">United States&nbsp; &nbsp;+1</option>
<option style="font-weight: 600;" value="United Kingdom +44">United Kingdom&nbsp; &nbsp;+44</option> <option style="font-weight: 600;" value="United Kingdom +44">United Kingdom&nbsp; &nbsp;+44</option>
@ -567,15 +562,6 @@ margin-bottom: 10px;
<button class="sendButton" id="quick_inquiry_button" name="quick_inquiry_button" type="button">Inquire Now</button> <input name="product_code" 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="product_code" type="hidden" value="<?php echo $meta_product_code; ?>"/>
<input name="itinerary" type="hidden" value="<?php echo $information->ic_title; ?>" /> <input name="itinerary" type="hidden" value="<?php echo $information->ic_title; ?>" />
</form> </form>
<!--
<h3 style="text-align: center;
font-size: 20px;
line-height: 22px;">For a quick conversation, simply reach us via WhatsApp:</h3>
<div class="contactwechat"><img alt="Asia Highlights' wechat code" height="100px" src="https://data.asiahighlights.com/image/about/asia-highlights-whatsapp-code.jpg" width="100px" >
<div class="wechatinfo"><span class="wechatred">+8615807734776</span><br>
Email: <span class="wechatred">contact@asiahighlights.com</span></div>
</div>
-->
</div> </div>
<script src="https://data.asiahighlights.com/min/?f=/js/jquery-1.8.2.min.js,/js/flatpickr-4.6.1.min.js"></script> <script src="https://data.asiahighlights.com/min/?f=/js/jquery-1.8.2.min.js,/js/flatpickr-4.6.1.min.js"></script>
@ -689,23 +675,10 @@ function validateQuickInquiryForm() {
<script> <script>
$(function () { $(function () {
var $adultBlock = $('#adultBlock'); var $adultBlock = $('#adultBlock');
var $childrenBlock = $('#childrenBlock'); var $childrenBlock = $('#childrenBlock');
var $adultNumberInput = $('#adultNumber');
var adultNumber = $adultNumberInput.val();
var $teenagerNumberInput = $('#teenagerNumber');
var teenagerNumber = $teenagerNumberInput.val();
var $childrenNumberInput = $('#childrenNumber');
var childrenNumber = $childrenNumberInput.val();
var $infantNumberInput = $('#infantNumber');
var infantNumber = $infantNumberInput.val();
$('input[name="travel_group"]').each((i, groupEle) => { $('input[name="travel_group"]').each((i, groupEle) => {
$(groupEle).click(function (e) { $(groupEle).click(function (e) {
$teenagerNumberInput.val(0);
$childrenNumberInput.val(0);
$infantNumberInput.val(0);
var currentTarget = e.currentTarget; var currentTarget = e.currentTarget;
if (currentTarget.id === 'Family' || currentTarget.id === 'Other' ) { if (currentTarget.id === 'Family' || currentTarget.id === 'Other' ) {
$adultBlock.show(); $adultBlock.show();
@ -713,11 +686,6 @@ function validateQuickInquiryForm() {
} else { } else {
$adultBlock.show(); $adultBlock.show();
$childrenBlock.hide(); $childrenBlock.hide();
}
if (currentTarget.id === 'Couple') {
$adultNumberInput.val(2);
} else if (currentTarget.id === 'Solo') {
$adultNumberInput.val(1);
} }
}) })
}); });
@ -751,51 +719,6 @@ function validateQuickInquiryForm() {
} }
}) })
}); });
//成人
$('#plusAdult').click(function () {
adultNumber++;
$adultNumberInput.val(adultNumber);
});
$('#minusAdult').click(function () {
if (adultNumber > 1) {
adultNumber--;
$adultNumberInput.val(adultNumber);
}
});
// 青少年
$('#plusTeenager').click(function () {
teenagerNumber++;
$teenagerNumberInput.val(teenagerNumber);
});
$('#minusTeenager').click(function () {
if (teenagerNumber > 0) {
teenagerNumber--;
$teenagerNumberInput.val(teenagerNumber);
}
});
// 儿童
$('#plusChildren').click(function () {
childrenNumber++;
$childrenNumberInput.val(childrenNumber);
});
$('#minusChildren').click(function () {
if (childrenNumber > 0) {
childrenNumber--;
$childrenNumberInput.val(childrenNumber);
}
});
// 婴儿
$('#plusInfant').click(function () {
infantNumber++;
$infantNumberInput.val(infantNumber);
});
$('#minusInfant').click(function () {
if (infantNumber > 0) {
infantNumber--;
$infantNumberInput.val(infantNumber);
}
});
}) })
</script> </script>
<style> <style>

@ -55,53 +55,7 @@
alt="Asiahighlights logo" class="asiahighlightslogo img-responsive"></a> alt="Asiahighlights logo" class="asiahighlightslogo img-responsive"></a>
<div class="p_topnavigation"> <div class="p_topnavigation">
<ul class="pctopnavi"> <ul class="pctopnavi">
<li class="dropdown"><a href="/japan/tours" class="p_topnavilink">Japan</a> <li class="dropdown"><a href="/tours" class="p_topnavilink">Tours</a></li>
<div class=" dropdown-content">
<div class="inspirationinfo">
<div class="inspirationlist vacationtype">
<span class="inspirationtitle">Itinerary Ideas</span>
<div class="listtour">
<ul class="inspiration">
<li><a href="/japan/tours/tokyo-highlights">5 Days</a></li>
<li><a href="/japan/tours/tokyo-kyoto-osaka">7 Days</a></li>
<li><a href="/japan/tours/tokyo-hakone-kyoto-hiroshima-osaka">8 Days</a></li>
<li><a href="/japan/tours/japan-highlights">9 Days</a></li>
<li><a href="/japan/tours/tokyo-yokohama-hakone-kyoto-nara-osaka">10 Days</a></li>
<li><a href="/japan/tours/traditional-japan">11 Days</a></li>
<li><a href="/japan/tours/classic-japan">12 Days</a></li>
</ul>
<ul class="inspiration">
<li><a href="/japan/tours/family-vacation">14 Days</a></li>
<li><a href="/japan/tours/japan-china-discovery">16 Days</a></li>
<li><a href="/japan/tours/summer-family-vacation">17 Days</a></li>
<li><a href="/japan/tours/nara-tokyo-hakone-nagoya-kyoto-osaka">18 Days</a></li>
<li><a href="/japan/tours/tokyo-kyoto-nara-osaka-hiroshima-fukuoka">21 Days</a></li>
<li><a href="/japan/3-week-itineraries">3 Weeks</a></li>
</ul>
</div>
</div>
<div class="inspirationlist vacationtype">
<span class="inspirationtitle">Trip Plan</span>
<div class="listtour">
<ul class="inspiration">
<li><a href="/japan/plan-a-trip">Bucket List Trip</a></li>
<li><a href="/japan/how-to-plan-a-family-trip-to-japan">Family Trip</a></li>
<li><a href="/japan/plan-a-cherry-blossom-trip">Cherry Blossom Trip</a></li>
<li><a href="/japan/planning-a-summer-trip">Summer Trip</a></li>
<li><a href="/japan/plan-a-winter-trip">Winter Trip</a></li>
</ul>
<ul class="inspiration">
<li><a href="/asia/plan-a-two-week-itinerary-in-japan-and-south-korea">Japan-South
Korea Trip</a></li>
<li><a href="/asia/plan-a-trip-to-china-and-japan">Japan-China Trip</a></li>
<li><a href="/asia/plan-a-trip-to-japan-and-thailand">Japan-Thailand
Trip</a></li>
</ul>
</div>
</div>
</div>
</div>
</li>
<li class="dropdown"><a href="/southeast-asia/tours/thailand-cambodia-and-vietnam" <li class="dropdown"><a href="/southeast-asia/tours/thailand-cambodia-and-vietnam"
class="p_topnavilink" id="thailand_vietnam_cambodia_pc">Thailand-Vietnam-Cambodia</a> class="p_topnavilink" id="thailand_vietnam_cambodia_pc">Thailand-Vietnam-Cambodia</a>
<div class=" dropdown-content"> <div class=" dropdown-content">
@ -217,74 +171,7 @@
</div> </div>
</div> </div>
</li> </li>
<li class="dropdown"><a class="p_topnavilink">Itinerary Ideas</a> <li class="dropdown"><a class="p_topnavilink" href="/itinerary-ideas">Itinerary Ideas</a></li>
<div class=" dropdown-content">
<div class="inspirationinfo">
<div class="inspirationlist topthings">
<span class="inspirationtitle">7-12 Days Itinerary</span>
<div class="listtour">
<ul class="inspiration">
<li><a href="/japan/1-week-itinerary">1 Week in Japan</a></li>
<li><a href="/vietnam/7-days-itinerary">1 Week in Vietnam</a></li>
<li><a href="https://www.chinahighlights.com/travelguide/8-day-china-itinerary.htm"
target="_blank">8 Days in China</a></li>
<li><a href="/japan/10-day-itineraries">10 Days in Japan</a></li>
<li><a href="/vietnam/10-days-itinerary">10 Days in Vietnam</a></li>
<li><a href="https://www.chinahighlights.com/travelguide/10-days-china-itinerary.htm"
target="_blank">10 Days in China</a></li>
<li><a href="/japan/12-day-itineraries">12 Days in Japan</a></li>
<li><a href="https://www.chinahighlights.com/travelguide/12-days-china-itinerary.htm"
target="_blank">12 Days in China</a></li>
</ul>
</div>
</div>
<div class="inspirationlist topthings">
<span class="inspirationtitle">2-Week Itinerary</span>
<div class="listtour">
<ul class="inspiration">
<li><a href="/southeast-asia/2-weeks-itinerary ">Southeast Asia</a></li>
<li><a href="/japan/2-week-itineraries">Japan</a></li>
<li><a href="/asia/plan-a-two-week-itinerary-in-japan-and-south-korea">
Japan and South Korea</a></li>
<li><a href="/thailand/2-weeks-in-thailand">Thailand</a></li>
<li><a href="/vietnam/2-weeks-itinerary">Vietnam</a></li>
<li><a href="/india/2-week-itinerary">India</a></li>
<li><a href="https://www.chinahighlights.com/travelguide/2-weeks-china-itinerary.htm"
target="_blank">China</a></li>
</ul>
</div>
</div>
<div class="inspirationlist topthings">
<span class="inspirationtitle">3-Week Itinerary</span>
<ul class="inspiration">
<li><a href="/southeast-asia/3-weeks-itinerary">Southeast Asia</a></li>
<li><a href="/japan/3-week-itineraries">Japan</a></li>
<li><a href="/vietnam/3-weeks-itinerary">Vietnam</a></li>
<li><a href="https://www.chinahighlights.com/travelguide/3-weeks-china-itinerary.htm"
target="_blank">China</a></li>
<li><a href="/southeast-asia/trip-to-thailand-cambodia-vietnam">Thailand,
Cambodia, Vietnam</a></li>
<li><a href="/asia/tours/china-and-vietnam">China, Vietnam</a></li>
<li><a href="/asia/tours/china-nepal-and-india">China, Nepal, India</a></li>
<li><a href="/asia/tours/china-laos-thailand">China, Laos, Thailand</a></li>
</ul>
</div>
<div class="inspirationlist topthings">
<span class="inspirationtitle">4-Week Itinerary</span>
<ul class="inspiration">
<li><a href="/southeast-asia/4-weeks-itinerary">Southeast Asia</a></li>
<li><a href="https://www.chinahighlights.com/travelguide/4-week-china-itinerary.htm"
target="_blank">China</a></li>
</ul>
</div>
</div>
</div>
</li>
<li class="dropdown"><a href="/about-us" class="p_topnavilink">About Us</a> <li class="dropdown"><a href="/about-us" class="p_topnavilink">About Us</a>
<div class=" dropdown-content"> <div class=" dropdown-content">
<div class="inspirationinfo"> <div class="inspirationinfo">
@ -367,8 +254,9 @@
<!--PC底部--> <!--PC底部-->
<div class="infotailor"> <div class="infotailor">
<span class="infotailorword">We are here to help you...<br> Start planning your tailor-made tour with 1-1 help <span class="infotailorword">
from our travel advisors. <span class="bottomtailor">Start planning your tailor-made tour with 1-1 help
from our travel advisors.</span>
<span class="infotailormade"><a href="/forms/tailormade?product_code=">Create My Trip</a></span> <span class="infotailormade"><a href="/forms/tailormade?product_code=">Create My Trip</a></span>
</span> </span>
@ -653,6 +541,21 @@
}, 10000); }, 10000);
} }
</script> </script>
<script>
(function (w, d, i) {
var navbar = d.getElementById(i);
var prevScrollpos = w.pageYOffset;
w.onscroll = function() {
var currentScrollPos = w.pageYOffset;
if (prevScrollpos > currentScrollPos) {
navbar.style.top = '0';
} else {
navbar.style.top = '-100px';
}
prevScrollpos = currentScrollPos;
}
})(window, document, 'header');
</script>
<!--newsletter表单 JS--> <!--newsletter表单 JS-->
<script src="https://www.recaptcha.net/recaptcha/enterprise.js?render=6Lf828MhAAAAANNetijCXKwW5ARyhcJ-b1Hhslja"></script> <script src="https://www.recaptcha.net/recaptcha/enterprise.js?render=6Lf828MhAAAAANNetijCXKwW5ARyhcJ-b1Hhslja"></script>

@ -1,12 +1,11 @@
<div class="infopage_ad_content"> <div class="infopage_ad_content">
<?php if (!empty($recommands['Content Tour A']) || !empty($recommands['Content Tour B']) || !empty($recommands['Content Tour C']) || !empty($recommands['Content Tour D'])) { ?> <?php if (!empty($recommands['Content Tour A']) || !empty($recommands['Content Tour B']) || !empty($recommands['Content Tour C']) || !empty($recommands['Content Tour D'])) { ?>
<div class="content_article_title">You might be interested in:</div> <div class="content_article_title">Explore similar itineraries:</div>
<?php if (!empty($recommands['Content Tour A'])) { ?> <?php if (!empty($recommands['Content Tour A'])) { ?>
<div class="infopage_ad"> <div class="infopage_ad">
<a href="<?php echo $recommands['Content Tour A']->ic_url; ?>"> <img <a href="<?php echo $recommands['Content Tour A']->ic_url; ?>"> <img
src="https://data.asiahighlights.com/grey.gif" loader="lazy" src="https://data.asiahighlights.com/grey.gif" loader="lazy"
originalsrc="<?php echo $recommands['Content Tour A']->mobile_photo; ?>" originalsrc="<?php echo $recommands['Content Tour A']->desktop_photo; ?>"
class="img-responsive" class="img-responsive"
alt="<?php echo $recommands['Content Tour A']->ic_title; ?>"></a> alt="<?php echo $recommands['Content Tour A']->ic_title; ?>"></a>
@ -23,7 +22,7 @@
<div class="infopage_ad"> <div class="infopage_ad">
<a href="<?php echo $recommands['Content Tour B']->ic_url; ?>"> <img <a href="<?php echo $recommands['Content Tour B']->ic_url; ?>"> <img
src="https://data.asiahighlights.com/grey.gif" loader="lazy" src="https://data.asiahighlights.com/grey.gif" loader="lazy"
originalsrc="<?php echo $recommands['Content Tour B']->mobile_photo; ?>" originalsrc="<?php echo $recommands['Content Tour B']->desktop_photo; ?>"
class="img-responsive" class="img-responsive"
alt="<?php echo $recommands['Content Tour B']->ic_title; ?>"></a> alt="<?php echo $recommands['Content Tour B']->ic_title; ?>"></a>
@ -41,7 +40,7 @@
<div class="infopage_ad"> <div class="infopage_ad">
<a href="<?php echo $recommands['Content Tour C']->ic_url; ?>"> <img <a href="<?php echo $recommands['Content Tour C']->ic_url; ?>"> <img
src="https://data.asiahighlights.com/grey.gif" loader="lazy" src="https://data.asiahighlights.com/grey.gif" loader="lazy"
originalsrc="<?php echo $recommands['Content Tour C']->mobile_photo; ?>" originalsrc="<?php echo $recommands['Content Tour C']->desktop_photo; ?>"
class="img-responsive" class="img-responsive"
alt="<?php echo $recommands['Content Tour C']->ic_title; ?>"></a> alt="<?php echo $recommands['Content Tour C']->ic_title; ?>"></a>
@ -58,7 +57,7 @@
<div class="infopage_ad"> <div class="infopage_ad">
<a href="<?php echo $recommands['Content Tour D']->ic_url; ?>"> <img <a href="<?php echo $recommands['Content Tour D']->ic_url; ?>"> <img
src="https://data.asiahighlights.com/grey.gif" loader="lazy" src="https://data.asiahighlights.com/grey.gif" loader="lazy"
originalsrc="<?php echo $recommands['Content Tour D']->mobile_photo; ?>" originalsrc="<?php echo $recommands['Content Tour D']->desktop_photo; ?>"
class="img-responsive" class="img-responsive"
alt="<?php echo $recommands['Content Tour D']->ic_title; ?>"></a> alt="<?php echo $recommands['Content Tour D']->ic_title; ?>"></a>
@ -71,41 +70,5 @@
</div> </div>
<?php } ?> <?php } ?>
<?php if (!empty($recommands['Content Tour E'])) { ?>
<div class="infopage_ad">
<a href="<?php echo $recommands['Content Tour E']->ic_url; ?>"> <img
src="https://data.asiahighlights.com/grey.gif" loader="lazy"
originalsrc="<?php echo $recommands['Content Tour E']->mobile_photo; ?>"
class="img-responsive"
alt="<?php echo $recommands['Content Tour E']->ic_title; ?>"></a>
<div class="content_article_name"><a
href="<?php echo $recommands['Content Tour E']->ic_url; ?>"> <?php echo $recommands['Content Tour E']->ic_title; ?> </a>
</div>
<div class="content_article_button"><a
href="<?php echo $recommands['Content Tour E']->ic_url; ?>"></a>
</div>
</div>
<?php } ?>
<?php if (!empty($recommands['Content Tour F'])) { ?>
<div class="infopage_ad">
<a href="<?php echo $recommands['Content Tour F']->ic_url; ?>"> <img
src="https://data.asiahighlights.com/grey.gif" loader="lazy"
originalsrc="<?php echo $recommands['Content Tour F']->mobile_photo; ?>"
class="img-responsive"
alt="<?php echo $recommands['Content Tour F']->ic_title; ?>"></a>
<div class="content_article_name"><a
href="<?php echo $recommands['Content Tour F']->ic_url; ?>"> <?php echo $recommands['Content Tour F']->ic_title; ?> </a>
</div>
<div class="content_article_button"><a
href="<?php echo $recommands['Content Tour F']->ic_url; ?>"></a>
</div>
</div>
<?php } ?>
<?php } ?> <?php } ?>
</div> </div>

@ -77,8 +77,8 @@
<div class="menu__wrap"> <div class="menu__wrap">
<ul data-menu="main" class="menu__level menu__level--current" tabindex="-1" role="menu" aria-label="All"> <ul data-menu="main" class="menu__level menu__level--current" tabindex="-1" role="menu" aria-label="All">
<li class="menu__item" role="menuitem"><a class="menu__link" href="/">Home</a></li> <li class="menu__item" role="menuitem"><a class="menu__link" href="/">Home</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/japan/tours" data-submenu="submenu-7" <li class="menu__item" role="menuitem"><a class="menu__link" href="/tours" data-submenu="submenu-7"
aria-owns="submenu-7">Japan</a></li> aria-owns="submenu-7">Tours</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" id="thailand_vietnam_cambodia_mobile" <li class="menu__item" role="menuitem"><a class="menu__link" id="thailand_vietnam_cambodia_mobile"
data-submenu="submenu-6" aria-owns="submenu-6">Thailand-Vietnam-Cambodia</a></li> data-submenu="submenu-6" aria-owns="submenu-6">Thailand-Vietnam-Cambodia</a></li>
@ -92,29 +92,15 @@
aria-owns="submenu-12">Middle East</a></li> aria-owns="submenu-12">Middle East</a></li>
<li class="menu__item" role="menuitem" style="margin-bottom: 50px;"><a class="menu__link" <li class="menu__item" role="menuitem" style="margin-bottom: 50px;"><a class="menu__link"
data-submenu="submenu-13" aria-owns="submenu-13">Central Asia</a></li> data-submenu="submenu-13" aria-owns="submenu-13">Central Asia</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/itinerary-ideas">Itinerary Ideas</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" data-submenu="submenu-4" <li class="menu__item" role="menuitem"><a href="/reviews" data-submenu="submenu-9" aria-owns="submenu-9"
aria-owns="submenu-4">1-Week Itinerary</a></li> class="menu__link">Reviews</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" data-submenu="submenu-2"
aria-owns="submenu-2">10-12 Days Itinerary</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" data-submenu="submenu-5"
aria-owns="submenu-5">2-Week Itinerary</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" data-submenu="submenu-3"
aria-owns="submenu-3">3-Week Itinerary</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" data-submenu="submenu-8"
aria-owns="submenu-8">4-Week Itinerary</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/about-us">About Us</a></li> <li class="menu__item" role="menuitem"><a class="menu__link" href="/about-us">About Us</a></li>
<li class="menu__item" role="menuitem"><a href="/reviews" data-submenu="submenu-9" aria-owns="submenu-9"
class="menu__link">Reviews</a></li>
</ul> </ul>
<!-- 4-weeks-itinerary --> <!-- 4-weeks-itinerary -->
<ul data-menu="submenu-8" id="submenu-8" class="menu__level" tabindex="-1" role="menu"
aria-label="4-weeks-itinerary">
<li class="menu__item" role="menuitem"><a class="menu__link" href="/southeast-asia/4-weeks-itinerary">Southeast
Asia</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link"
href="https://www.chinahighlights.com/travelguide/4-week-china-itinerary.htm" target="_blank">China</a></li>
</ul>
<!-- Thailand-Vietnam-Cambodia --> <!-- Thailand-Vietnam-Cambodia -->
<ul data-menu="submenu-6" id="submenu-6" class="menu__level" tabindex="-1" role="menu" <ul data-menu="submenu-6" id="submenu-6" class="menu__level" tabindex="-1" role="menu"
aria-label="Thailand_Vietnam_Cambodia"> aria-label="Thailand_Vietnam_Cambodia">
@ -206,98 +192,6 @@
<li class="menu__item" role="menuitem"><a class="menu__link" href="/tours/kyrgyzstan-tajikistan-uzbekistan">Five <li class="menu__item" role="menuitem"><a class="menu__link" href="/tours/kyrgyzstan-tajikistan-uzbekistan">Five
Stans</a></li> Stans</a></li>
</ul> </ul>
<!-- Best-time -->
<ul data-menu="submenu-2" id="submenu-2" class="menu__level" tabindex="-1" role="menu" aria-label="Best-time">
<li class="menu__item" role="menuitem"><a
href="https://www.chinahighlights.com/travelguide/8-day-china-itinerary.htm" class="menu__link"
target="_blank">8 Days in China</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/10-day-itineraries" class="menu__link">10 Days in
Japan</a></li>
<li class="menu__item" role="menuitem"><a href="/vietnam/10-days-itinerary" class="menu__link">10 Days in
Vietnam</a></li>
<li class="menu__item" role="menuitem"><a
href="https://www.chinahighlights.com/travelguide/10-days-china-itinerary.htm" target="_blank"
class="menu__link">10 Days in China</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/12-day-itineraries" class="menu__link">12 Days in
Japan</a></li>
<li class="menu__item" role="menuitem"><a
href="https://www.chinahighlights.com/travelguide/12-days-china-itinerary.htm" class="menu__link"
target="_blank">12 Days in China</a></li>
</ul>
<!-- festival -->
<ul data-menu="submenu-3" id="submenu-3" class="menu__level" tabindex="-1" role="menu" aria-label="festival">
<li class="menu__item" role="menuitem"><a href="/southeast-asia/3-weeks-itinerary" class="menu__link">Southeast
Asia</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/3-week-itineraries" class="menu__link">Japan</a></li>
<li class="menu__item" role="menuitem"><a href="/vietnam/3-weeks-itinerary" class="menu__link">Vietnam</a></li>
<li class="menu__item" role="menuitem"><a
href="https://www.chinahighlights.com/travelguide/3-weeks-china-itinerary.htm" target="_blank"
class="menu__link">China</a></li>
<li class="menu__item" role="menuitem"><a href="/southeast-asia/trip-to-thailand-cambodia-vietnam"
class="menu__link">Thailand, Cambodia, Vietnam</a></li>
<li class="menu__item" role="menuitem"><a href="/asia/tours/china-and-vietnam" class="menu__link">China,
Vietnam</a></li>
<li class="menu__item" role="menuitem"><a href="/asia/tours/china-nepal-and-india" class="menu__link">China,
Nepal, India</a></li>
<li class="menu__item" role="menuitem"><a href="/asia/tours/china-laos-thailand" class="menu__link">China, Laos,
Thailand</a></li>
</ul>
<!-- top things to do -->
<ul data-menu="submenu-4" id="submenu-4" class="menu__level" tabindex="-1" role="menu" aria-label="topthingstodo">
<li class="menu__item" role="menuitem"><a href="/japan/1-week-itinerary" class="menu__link">Japan</a></li>
<li class="menu__item" role="menuitem"><a href="/vietnam/7-days-itinerary" class="menu__link">Vietnam</a></li>
</ul>
<ul data-menu="submenu-5" id="submenu-5" class="menu__level" tabindex="-1" role="menu" aria-label="vacation">
<li class="menu__item" role="menuitem"><a href="/southeast-asia/2-weeks-itinerary" class="menu__link">Southeast
Asia</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/japan/2-week-itineraries">Japan</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link"
href="/south-korea">South Korea</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/thailand/2-weeks-in-thailand">Thailand</a>
</li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/vietnam/2-weeks-itinerary">Vietnam</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/india/2-week-itinerary">India</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link"
href="https://www.chinahighlights.com/travelguide/2-weeks-china-itinerary.htm" target="_blank">China</a>
</li>
</ul>
<ul data-menu="submenu-7" id="submenu-7" class="menu__level" tabindex="-1" role="menu" aria-label="japan">
<li class="menu__item" role="menuitem"><a href="/japan/tours/tokyo-highlights" class="menu__link">5 Days</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/tours/tokyo-kyoto-osaka" class="menu__link">7 Days</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/tours/tokyo-hakone-kyoto-hiroshima-osaka" class="menu__link">8 Days</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/tours/japan-highlights" class="menu__link">9 Days</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/tours/tokyo-yokohama-hakone-kyoto-nara-osaka" class="menu__link">10 Days</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/tours/traditional-japan" class="menu__link">11 Days</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/tours/classic-japan" class="menu__link">12 Days</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/tours/family-vacation" class="menu__link">14 Days</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/tours/japan-china-discovery" class="menu__link">16 Days</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/tours/summer-family-vacation" class="menu__link">17 Days</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/tours/nara-tokyo-hakone-nagoya-kyoto-osaka" class="menu__link">18 Days</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/tours/tokyo-kyoto-nara-osaka-hiroshima-fukuoka" class="menu__link">21 Days</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/3-week-itineraries" class="menu__link">3 Weeks</a></li>
<br><br>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/japan/plan-a-trip">Bucket List Trip</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link"
href="/japan/how-to-plan-a-family-trip-to-japan">Family Trip</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/japan/plan-a-cherry-blossom-trip">Cherry
Blossom Trip</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/japan/planning-a-summer-trip">Summer
Trip</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/japan/plan-a-winter-trip">Winter Trip</a>
</li>
<li class="menu__item" role="menuitem"><a class="menu__link"
href="/asia/plan-a-two-week-itinerary-in-japan-and-south-korea">Japan-South Korea Trip</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link"
href="/asia/plan-a-trip-to-china-and-japan">Japan-China Trip</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link"
href="/asia/plan-a-trip-to-japan-and-thailand">Japan-Thailand Trip</a></li>
</ul>
<ul data-menu="submenu-9" id="submenu-9" class="menu__level" tabindex="-1" role="menu" aria-label="reviews"> <ul data-menu="submenu-9" id="submenu-9" class="menu__level" tabindex="-1" role="menu" aria-label="reviews">
<li class="menu__item" role="menuitem"><a class="menu__link" href="/reviews" id="all_reviews_mobile">Asia <li class="menu__item" role="menuitem"><a class="menu__link" href="/reviews" id="all_reviews_mobile">Asia
@ -352,7 +246,7 @@
<!--移动底部--> <!--移动底部-->
<footer> <footer>
<div class="infotailor"> <div class="infotailor">
<span class="infotailorword">We are here to help you...<br> Start planning your tailor-made tour with 1-1 help <span class="infotailorword">Start planning your tailor-made tour with 1-1 help
from our travel advisors. from our travel advisors.
<span class="infotailormade"><a href="/forms/tailormade?product_code=">Create My Trip</a></span> <span class="infotailormade"><a href="/forms/tailormade?product_code=">Create My Trip</a></span>
</span> </span>

@ -44,101 +44,173 @@
</div> </div>
<div id="adultBlock" style="display: none"> <div id="adultBlock" style="display: none">
<p style="margin-bottom: 10px;"><strong>Adults number</strong></p>
<div class="peopleSelect"> <div class="kids_age">
<p style=" margin-top: 20px; <p style="margin-bottom: 0;">65+ yrs old</p>
text-align: left; <select class="kids_number" id="adultNumber_65_plus" name="adult_65_plus" >
font-size: 22px; <option value="0">0</option>
font-weight: 400;"> <option value="1">1</option>
Adults (≥18 years old) <option value="2">2</option>
</p> <option value="3">3</option>
<button class="minaddBtn reduceadult" id="minusAdult" type="button" <option value="4">4</option>
value="-">-</button> <option value="5">5</option>
<input class="number" type="text" value="2" id="adultNumber" name="adult"> <option value="6">6</option>
<button class="minaddBtn addadult" type="button" id="plusAdult" value="+">+</button> <option value="7">7</option>
</div> <option value="8">8</option>
<div class="age_range"> <option value="9">9</option>
<p> <option value="10">10</option>
Adults' ages <option value="11">11</option>
</p> <option value="12">12</option>
<div class="checkYes" style="float:left;"> <option value="13">13</option>
<label for="65+"> <option value="14">14</option>
<input type="checkbox" value="yes" name="age_65_plus" id="65+" class="checkBorder" >65+ <option value="15">15</option>
</label> <option value="16">16</option>
</div> <option value="17">17</option>
<div class="checkYes" style="float:left;"> <option value="18">18</option>
<label for="51-64"> <option value="19">19</option>
<input type="checkbox" value="yes" name="age_51_64" id="51-64" class="checkBorder" >51-64 <option value="20">20</option>
</label> <option value="21">21</option>
</div> <option value="22">22</option>
<div class="checkYes" style="float:left;"> <option value="23">23</option>
<label for="41-50"> <option value="24">24</option>
<input type="checkbox" value="yes" name="age_41_50" id="41-50" class="checkBorder" >41-50 <option value="25">25</option>
</label> <option value="26">26</option>
</div> <option value="27">27</option>
<div class="checkYes" style="float:left;"> <option value="28">28</option>
<label for="31-40"> <option value="29">29</option>
<input type="checkbox" value="yes" name="age_31_40" id="31-40" class="checkBorder" >31-40 <option value="30">30</option>
</label>
</div> </select>
<div class="checkYes" style="float:left;"> <p style="
<label for="18-30"> margin-top: 5px;font-size: 18px;
<input type="checkbox" value="yes" name="age_18_30" id="18-30" class="checkBorder" >18-30 ">people</p>
</label> </div>
</div> <div class="kids_age">
</div> <p style="margin-bottom: 0;">41-64 yrs old</p>
</div> <select class="kids_number" id="adultNumber_41_64" name="adult_41_64" >
<div class="clear"></div> <option value="0">0</option>
<div id="childrenBlock" style="display: none"> <option value="1">1</option>
<p style="margin-top: 0; <option value="2">2</option>
font-size: 22px; text-align:left;">Children</p> <option value="3">3</option>
<div class="kids_age"> <option value="4">4</option>
<p style="margin-bottom: 5px;">10-17 yrs old</p> <option value="5">5</option>
<select class="kids_number" id="teenagerNumber" name="teenager_10_17_yrs"> <option value="6">6</option>
<option value="0">0 <option value="7">7</option>
</option> <option value="8">8</option>
<option value="1">1 <option value="9">9</option>
</option> <option value="10">10</option>
<option value="2">2 <option value="11">11</option>
</option> <option value="12">12</option>
<option value="3">3 <option value="13">13</option>
</option> <option value="14">14</option>
<option value="4">4 <option value="15">15</option>
</option> <option value="16">16</option>
</select> <option value="17">17</option>
</div> <option value="18">18</option>
<div class="kids_age"> <option value="19">19</option>
<p style="margin-bottom: 5px;">3-9 yrs old</p> <option value="20">20</option>
<select class="kids_number" id="childrenNumber" name="children_3_9_yrs"> <option value="21">21</option>
<option value="0">0 <option value="22">22</option>
</option> <option value="23">23</option>
<option value="1">1 <option value="24">24</option>
</option> <option value="25">25</option>
<option value="26">26</option>
<option value="2">2 <option value="27">27</option>
</option> <option value="28">28</option>
<option value="3">3 <option value="29">29</option>
</option> <option value="30">30</option>
<option value="4">4
</option> </select>
</select> <p style="
</div> margin-top: 5px;font-size: 18px;
<div class="kids_age"> ">people</p>
<p style="margin-bottom: 5px;">0-2 yrs old</p> </div>
<select class="kids_number" id="infantNumber" name="infant_0_2_yrs"> <div class="kids_age">
<option value="0">0 <p style="margin-bottom: 0;">18-40 yrs old</p>
</option> <select class="kids_number" id="adultNumber_18_40" name="adult_18_40" >
<option value="1">1 <option value="0">0</option>
</option> <option value="1">1</option>
<option value="2">2 <option value="2">2</option>
</option> <option value="3">3</option>
<option value="3">3 <option value="4">4</option>
</option> <option value="5">5</option>
<option value="4">4 <option value="6">6</option>
</option> <option value="7">7</option>
</select> <option value="8">8</option>
</div> <option value="9">9</option>
</div> <option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
</select>
<p style="
margin-top: 5px;font-size: 18px;
">people</p>
</div>
</div>
<div class="clear"></div>
<div id="childrenBlock" style="display: none">
<p style="margin-bottom: 10px;"><strong>Children number</strong></p>
<div class="kids_age">
<p style="margin-bottom: 5px;">10-17 yrs old</p>
<select class="kids_number" id="teenagerNumber" name="teenager_10_17">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<p style="
margin-top: 10px;font-size: 18px;
">people</p>
</div>
<div class="kids_age">
<p style="margin-bottom: 5px;">3-9 yrs old</p>
<select class="kids_number" id="childrenNumber" name="children_3_9">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<p style="
margin-top: 10px;font-size: 18px;
">people</p>
</div>
<div class="kids_age">
<p style="margin-bottom: 5px;">0-2 yrs old</p>
<select class="kids_number" id="infantNumber" name="infant_0_2">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<p style="
margin-top: 10px;font-size: 18px;
">people</p>
</div>
</div>
</div> </div>
@ -605,21 +677,9 @@
$(function () { $(function () {
var $adultBlock = $('#adultBlock'); var $adultBlock = $('#adultBlock');
var $childrenBlock = $('#childrenBlock'); var $childrenBlock = $('#childrenBlock');
var $adultNumberInput = $('#adultNumber');
var adultNumber = $adultNumberInput.val();
var $teenagerNumberInput = $('#teenagerNumber');
var teenagerNumber = $teenagerNumberInput.val();
var $childrenNumberInput = $('#childrenNumber');
var childrenNumber = $childrenNumberInput.val();
var $infantNumberInput = $('#infantNumber');
var infantNumber = $infantNumberInput.val();
$('input[name="travel_group"]').each((i, groupEle) => { $('input[name="travel_group"]').each((i, groupEle) => {
$(groupEle).click(function (e) { $(groupEle).click(function (e) {
$teenagerNumberInput.val(0);
$childrenNumberInput.val(0);
$infantNumberInput.val(0);
var currentTarget = e.currentTarget; var currentTarget = e.currentTarget;
if (currentTarget.id === 'Family' || currentTarget.id === 'Other' ) { if (currentTarget.id === 'Family' || currentTarget.id === 'Other' ) {
$adultBlock.show(); $adultBlock.show();
@ -627,11 +687,6 @@
} else { } else {
$adultBlock.show(); $adultBlock.show();
$childrenBlock.hide(); $childrenBlock.hide();
}
if (currentTarget.id === 'Couple') {
$adultNumberInput.val(2);
} else if (currentTarget.id === 'Solo') {
$adultNumberInput.val(1);
} }
}) })
}); });
@ -665,53 +720,6 @@
var tripLength = $('#tripLengthNumber').val(); var tripLength = $('#tripLengthNumber').val();
//成人
$('#plusAdult').click(function () {
adultNumber++;
$adultNumberInput.val(adultNumber);
});
$('#minusAdult').click(function () {
if (adultNumber > 1) {
adultNumber--;
$adultNumberInput.val(adultNumber);
}
});
// 青少年
$('#plusTeenager').click(function () {
teenagerNumber++;
$teenagerNumberInput.val(teenagerNumber);
});
$('#minusTeenager').click(function () {
if (teenagerNumber > 0) {
teenagerNumber--;
$teenagerNumberInput.val(teenagerNumber);
}
});
// 儿童
$('#plusChildren').click(function () {
childrenNumber++;
$childrenNumberInput.val(childrenNumber);
});
$('#minusChildren').click(function () {
if (childrenNumber > 0) {
childrenNumber--;
$childrenNumberInput.val(childrenNumber);
}
});
// 婴儿
$('#plusInfant').click(function () {
infantNumber++;
$infantNumberInput.val(infantNumber);
});
$('#minusInfant').click(function () {
if (infantNumber > 0) {
infantNumber--;
$infantNumberInput.val(infantNumber);
}
});
// Trip Length // Trip Length
$('#tripLengthPlus').click(function () { $('#tripLengthPlus').click(function () {
tripLength++; tripLength++;

@ -38,104 +38,171 @@
</div> </div>
<div id="adultBlock" style="display: none"> <div id="adultBlock" style="display: none">
<p style=" <p style=" margin-bottom: 10px;"><strong>Adults number</strong></p>
margin-bottom: -25px; <div class="kids_age">
font-size: 22px; <p style="margin-bottom: 0;">65+ yrs old</p>
margin-top: 80px; <select class="kids_number" id="adultNumber_65_plus" name="adult_65_plus" >
text-align: left; <option value="0">0</option>
">When you plan to take the trip:</p> <option value="1">1</option>
<div class="peopleSelect"> <option value="2">2</option>
<p style=" margin-top: 20px; <option value="3">3</option>
text-align: left; <option value="4">4</option>
font-size: 22px; <option value="5">5</option>
font-weight: 400;"> <option value="6">6</option>
Adults (≥18 years old) <option value="7">7</option>
</p> <option value="8">8</option>
<button class="minaddBtn reduceadult" id="minusAdult" type="button" <option value="9">9</option>
value="-">-</button> <option value="10">10</option>
<input class="number" type="text" value="2" id="adultNumber" name="adult"> <option value="11">11</option>
<button class="minaddBtn addadult" type="button" id="plusAdult" value="+">+</button> <option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
</select>
<p style="
margin-top: 5px;font-size: 18px;
">people</p>
</div> </div>
<div class="age_range"> <div class="kids_age">
<p> <p style="margin-bottom: 0;">41-64 yrs old</p>
Adults' ages <select class="kids_number" id="adultNumber_41_64" name="adult_41_64" >
</p> <option value="0">0</option>
<div class="checkYes" style="float:left;"> <option value="1">1</option>
<label for="65+"> <option value="2">2</option>
<input type="checkbox" value="yes" name="age_65_plus" id="65+" class="checkBorder" >65+ <option value="3">3</option>
</label> <option value="4">4</option>
</div> <option value="5">5</option>
<div class="checkYes" style="float:left;"> <option value="6">6</option>
<label for="51-64"> <option value="7">7</option>
<input type="checkbox" value="yes" name="age_51_64" id="51-64" class="checkBorder" >51-64 <option value="8">8</option>
</label> <option value="9">9</option>
</div> <option value="10">10</option>
<div class="checkYes" style="float:left;"> <option value="11">11</option>
<label for="41-50"> <option value="12">12</option>
<input type="checkbox" value="yes" name="age_41_50" id="41-50" class="checkBorder" >41-50 <option value="13">13</option>
</label> <option value="14">14</option>
</div> <option value="15">15</option>
<div class="checkYes" style="float:left;"> <option value="16">16</option>
<label for="31-40"> <option value="17">17</option>
<input type="checkbox" value="yes" name="age_31_40" id="31-40" class="checkBorder" >31-40 <option value="18">18</option>
</label> <option value="19">19</option>
</div> <option value="20">20</option>
<div class="checkYes" style="float:left;"> <option value="21">21</option>
<label for="18-30"> <option value="22">22</option>
<input type="checkbox" value="yes" name="age_18_30" id="18-30" class="checkBorder" >18-30 <option value="23">23</option>
</label> <option value="24">24</option>
</div> <option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
</select>
<p style="
margin-top: 5px;font-size: 18px;
">people</p>
</div>
<div class="kids_age">
<p style="margin-bottom: 0;">18-40 yrs old</p>
<select class="kids_number" id="adultNumber_18_40" name="adult_18_40" >
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
</select>
<p style="
margin-top: 5px;font-size: 18px;
">people</p>
</div> </div>
</div> </div>
<div class="clear"></div> <div class="clear"></div>
<div id="childrenBlock" style="display: none"> <div id="childrenBlock" style="display: none">
<p style="margin-top: 0; <p style="margin-bottom: 10px;"><strong>Children number</strong></p>
font-size: 22px; text-align:left;">Children</p>
<div class="kids_age"> <div class="kids_age">
<p style="margin-bottom: 5px;">10-17 yrs old</p> <p style="margin-bottom: 5px;">10-17 yrs old</p>
<select class="kids_number" id="teenagerNumber" name="teenager_10_17_yrs"> <select class="kids_number" id="teenagerNumber" name="teenager_10_17">
<option value="0">0 <option value="0">0</option>
</option> <option value="1">1</option>
<option value="1">1 <option value="2">2</option>
</option> <option value="3">3</option>
<option value="2">2 <option value="4">4</option>
</option> <option value="5">5</option>
<option value="3">3
</option>
<option value="4">4
</option>
</select> </select>
<p style="
margin-top: 10px;font-size: 18px;
">people</p>
</div> </div>
<div class="kids_age"> <div class="kids_age">
<p style="margin-bottom: 5px;">3-9 yrs old</p> <p style="margin-bottom: 5px;">3-9 yrs old</p>
<select class="kids_number" id="childrenNumber" name="children_3_9_yrs"> <select class="kids_number" id="childrenNumber" name="children_3_9">
<option value="0">0 <option value="0">0</option>
</option> <option value="1">1</option>
<option value="1">1 <option value="2">2</option>
</option> <option value="3">3</option>
<option value="4">4</option>
<option value="2">2 <option value="5">5</option>
</option>
<option value="3">3
</option>
<option value="4">4
</option>
</select> </select>
<p style="
margin-top: 10px;font-size: 18px;
">people</p>
</div> </div>
<div class="kids_age"> <div class="kids_age">
<p style="margin-bottom: 5px;">0-2 yrs old</p> <p style="margin-bottom: 5px;">0-2 yrs old</p>
<select class="kids_number" id="infantNumber" name="infant_0_2_yrs"> <select class="kids_number" id="infantNumber" name="infant_0_2">
<option value="0">0 <option value="0">0</option>
</option> <option value="1">1</option>
<option value="1">1 <option value="2">2</option>
</option> <option value="3">3</option>
<option value="2">2 <option value="4">4</option>
</option> <option value="5">5</option>
<option value="3">3
</option>
<option value="4">4
</option>
</select> </select>
<p style="
margin-top: 10px;font-size: 18px;
">people</p>
</div> </div>
</div> </div>
@ -568,21 +635,9 @@ document.addEventListener('DOMContentLoaded', () => {
$(function () { $(function () {
var $adultBlock = $('#adultBlock'); var $adultBlock = $('#adultBlock');
var $childrenBlock = $('#childrenBlock'); var $childrenBlock = $('#childrenBlock');
var $adultNumberInput = $('#adultNumber');
var adultNumber = $adultNumberInput.val();
var $teenagerNumberInput = $('#teenagerNumber');
var teenagerNumber = $teenagerNumberInput.val();
var $childrenNumberInput = $('#childrenNumber');
var childrenNumber = $childrenNumberInput.val();
var $infantNumberInput = $('#infantNumber');
var infantNumber = $infantNumberInput.val();
$('input[name="travel_group"]').each((i, groupEle) => { $('input[name="travel_group"]').each((i, groupEle) => {
$(groupEle).click(function (e) { $(groupEle).click(function (e) {
$teenagerNumberInput.val(0);
$childrenNumberInput.val(0);
$infantNumberInput.val(0);
var currentTarget = e.currentTarget; var currentTarget = e.currentTarget;
if (currentTarget.id === 'Family' || currentTarget.id === 'Other' ) { if (currentTarget.id === 'Family' || currentTarget.id === 'Other' ) {
$adultBlock.show(); $adultBlock.show();
@ -590,60 +645,9 @@ document.addEventListener('DOMContentLoaded', () => {
} else { } else {
$adultBlock.show(); $adultBlock.show();
$childrenBlock.hide(); $childrenBlock.hide();
}
if (currentTarget.id === 'Couple') {
$adultNumberInput.val(2);
} else if (currentTarget.id === 'Solo') {
$adultNumberInput.val(1);
} }
}) })
}); });
//成人
$('#plusAdult').click(function () {
adultNumber++;
$adultNumberInput.val(adultNumber);
});
$('#minusAdult').click(function () {
if (adultNumber > 1) {
adultNumber--;
$adultNumberInput.val(adultNumber);
}
});
// 青少年
$('#plusTeenager').click(function () {
teenagerNumber++;
$teenagerNumberInput.val(teenagerNumber);
});
$('#minusTeenager').click(function () {
if (teenagerNumber > 0) {
teenagerNumber--;
$teenagerNumberInput.val(teenagerNumber);
}
});
// 儿童
$('#plusChildren').click(function () {
childrenNumber++;
$childrenNumberInput.val(childrenNumber);
});
$('#minusChildren').click(function () {
if (childrenNumber > 0) {
childrenNumber--;
$childrenNumberInput.val(childrenNumber);
}
});
// 婴儿
$('#plusInfant').click(function () {
infantNumber++;
$infantNumberInput.val(infantNumber);
});
$('#minusInfant').click(function () {
if (infantNumber > 0) {
infantNumber--;
$infantNumberInput.val(infantNumber);
}
});
}) })
</script> </script>
<style type="text/css"> <style type="text/css">

@ -42,8 +42,8 @@
})(window, document, 'script', 'dataLayer', 'GTM-T75N4LL');</script> })(window, document, 'script', 'dataLayer', 'GTM-T75N4LL');</script>
<!-- End Google Tag Manager --> <!-- End Google Tag Manager -->
<!-- Hotjar Tracking Code for https://www.chinahighlights.com --> <!-- Hotjar Tracking Code for https://www.chinahighlights.com/ -->
<script> <script>
(function(h,o,t,j,a,r){ (function(h,o,t,j,a,r){
h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)}; h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};
h._hjSettings={hjid:3723372,hjsv:6}; h._hjSettings={hjid:3723372,hjsv:6};
@ -351,7 +351,7 @@
</div> </div>
<div class="infotailor"> <div class="infotailor">
<span class="infotailorword">We are here to help you...<br> start planning your tailor-made tour with 1-1 <span class="infotailorword">Start planning your tailor-made tour with 1-1
help from our travel advisors. help from our travel advisors.
<span class="bottom_tourbutton"><a href="/tour/create-my-trip.htm?product_code=" <span class="bottom_tourbutton"><a href="/tour/create-my-trip.htm?product_code="
id="bottom_tailormade_pc">Create Your Trip id="bottom_tailormade_pc">Create Your Trip
@ -707,7 +707,21 @@
}, 10000); }, 10000);
} }
</script> </script>
<script>
(function (w, d, i) {
var navbar = d.getElementById(i);
var prevScrollpos = w.pageYOffset;
w.onscroll = function() {
var currentScrollPos = w.pageYOffset;
if (prevScrollpos > currentScrollPos) {
navbar.style.top = '0';
} else {
navbar.style.top = '-100px';
}
prevScrollpos = currentScrollPos;
}
})(window, document, 'header');
</script>
<!--newsletter表单 JS--> <!--newsletter表单 JS-->
<script src="https://www.recaptcha.net/recaptcha/enterprise.js?render=6Lf828MhAAAAANNetijCXKwW5ARyhcJ-b1Hhslja"></script> <script src="https://www.recaptcha.net/recaptcha/enterprise.js?render=6Lf828MhAAAAANNetijCXKwW5ARyhcJ-b1Hhslja"></script>
<script> <script>

@ -34,8 +34,8 @@
})(window, document, 'script', 'dataLayer', 'GTM-T75N4LL');</script> })(window, document, 'script', 'dataLayer', 'GTM-T75N4LL');</script>
<!-- End Google Tag Manager --> <!-- End Google Tag Manager -->
<!-- Hotjar Tracking Code for https://www.chinahighlights.com --> <!-- Hotjar Tracking Code for https://www.chinahighlights.com/ -->
<script> <script>
(function(h,o,t,j,a,r){ (function(h,o,t,j,a,r){
h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)}; h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};
h._hjSettings={hjid:3723372,hjsv:6}; h._hjSettings={hjid:3723372,hjsv:6};
@ -354,7 +354,7 @@
<footer> <footer>
<div class="infotailor"> <div class="infotailor">
<span class="infotailorword">We are here to help you...<br> start planning your tailor-made tour with 1-1 help <span class="infotailorword">Start planning your tailor-made tour with 1-1 help
from our travel advisors. from our travel advisors.
<span class="tourbutton"><a href="/tour/create-my-trip.htm?product_code=">Create Your Trip</a></span> <span class="tourbutton"><a href="/tour/create-my-trip.htm?product_code=">Create Your Trip</a></span>
</span> </span>

File diff suppressed because one or more lines are too long

@ -11,9 +11,7 @@
<textarea id="additionalrequirements" name="additional_requirements" <textarea id="additionalrequirements" name="additional_requirements"
placeholder="E.g.: This is a big trip for anniversary, honeymoon, birthday celebration..." style="margin-bottom:20px;"></textarea> placeholder="E.g.: This is a big trip for anniversary, honeymoon, birthday celebration..." style="margin-bottom:20px;"></textarea>
<div class="selectionBlock" style="margin-bottom: 0;"> <div class="selectionBlock" style="margin-bottom: 0;">
<p style=" <p style="margin-bottom: 0px;">
margin-bottom: 0px;
">
<strong>Number in your group</strong> <strong>Number in your group</strong>
</p> </p>
<div id="group_error_msg" style="display: none"> <div id="group_error_msg" style="display: none">
@ -45,97 +43,182 @@
</div> </div>
<div id="adultBlock" style="display: none"> <div id="adultBlock" style="display: none">
<p style="margin-bottom: 5px;"><strong>Adults number</strong></p>
<div class="peopleSelect">
<p style=" margin-top: 10px; <div class="kids_age" >
margin-bottom: 10px;"><strong> <p style="margin-bottom: 5px; margin-top: 0;">65+ yrs old</p>
Adults (≥18 years old) <select class="kids_number" id="adultNumber_65_plus" name="adult_65_plus" >
</strong> </p> <option value="0">0</option>
<button class="minaddBtn reduceadult" id="minusAdult" type="button" <option value="1">1</option>
value="-">-</button> <option value="2">2</option>
<input class="number" type="text" value="2" id="adultNumber" name="adult"> <option value="3">3</option>
<button class="minaddBtn addadult" type="button" id="plusAdult" value="+">+</button> <option value="4">4</option>
</div> <option value="5">5</option>
<div class="age_range"> <option value="6">6</option>
<p> <option value="7">7</option>
Adults' ages <option value="8">8</option>
</p> <option value="9">9</option>
<div class="checkYes" style="float:left; width: auto; margin-right: 30px;"> <option value="10">10</option>
<label for="65+"> <option value="11">11</option>
<input type="checkbox" value="yes" name="age_65_plus" id="65+" class="checkBorder" >65+ <option value="12">12</option>
</label> <option value="13">13</option>
</div> <option value="14">14</option>
<div class="checkYes" style="float:left; width: auto; margin-right: 30px;"> <option value="15">15</option>
<label for="51-64"> <option value="16">16</option>
<input type="checkbox" value="yes" name="age_51_64" id="51-64" class="checkBorder" >51-64 <option value="17">17</option>
</label> <option value="18">18</option>
</div> <option value="19">19</option>
<div class="checkYes" style="float:left; width: auto; margin-right: 30px;"> <option value="20">20</option>
<label for="41-50"> <option value="21">21</option>
<input type="checkbox" value="yes" name="age_41_50" id="41-50" class="checkBorder" >41-50 <option value="22">22</option>
</label> <option value="23">23</option>
</div> <option value="24">24</option>
<div class="checkYes" style="float:left; width: auto; margin-right: 30px;"> <option value="25">25</option>
<label for="31-40"> <option value="26">26</option>
<input type="checkbox" value="yes" name="age_31_40" id="31-40" class="checkBorder" >31-40 <option value="27">27</option>
</label> <option value="28">28</option>
</div> <option value="29">29</option>
<div class="checkYes" style="float:left; width: auto; margin-right: 30px;"> <option value="30">30</option>
<label for="18-30">
<input type="checkbox" value="yes" name="age_18_30" id="18-30" class="checkBorder" >18-30 </select>
</label> <p style="margin-top: 10px;">people</p>
</div> </div>
</div> <div class="kids_age">
</div> <p style="margin-bottom: 5px; margin-top: 0;">41-64 yrs old</p>
<div class="clear"></div> <select class="kids_number" id="adultNumber_41_64" name="adult_41_64" >
<div id="childrenBlock" style="display: none"> <option value="0">0</option>
<p style=" margin-bottom: 0;"><strong>Children (age of children at time of trip)</strong></p> <option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
</select>
<p style="margin-top: 10px;">people</p>
</div>
<div class="kids_age" >
<p style="margin-bottom: 5px; margin-top: 0;">18-40 yrs old</p>
<select class="kids_number" id="adultNumber_18_40" name="adult_18_40" >
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
</select>
<p style="
margin-top: 10px;
">people</p>
</div>
</div>
<div class="clear"></div>
<div id='childrenBlock' style="display: none">
<p style="margin-bottom: 5px;"><strong>Children number (age of children at time of trip)</strong></p>
<div class="kids_age"> <div class="kids_age">
<p style="margin-bottom: 5px;">10-17 yrs old</p> <p style="margin-bottom: 5px;">10-17 yrs old</p>
<select class="kids_number" id="teenagerNumber" name="teenager_10_17_yrs"> <select class="kids_number" id="teenagerNumber" name="teenager_10_17">
<option value="0">0 <option value="0">0
</option> </option>
<option value="1">1 <option value="1">1
</option> </option>
<option value="2">2
</option> <option value="2">2
<option value="3">3 </option>
</option> <option value="3">3
<option value="4">4 </option>
</option> <option value="4">4
</select> </option>
<option value="5">5</option>
</select>
<p style="margin-top: 10px;">people</p>
</div> </div>
<div class="kids_age"> <div class="kids_age">
<p style="margin-bottom: 5px;">3-9 yrs old</p> <p style="margin-bottom: 5px;">3-9 yrs old</p>
<select class="kids_number" id="childrenNumber" name="children_3_9_yrs"> <select class="kids_number" id="childrenNumber" name="children_3_9">
<option value="0">0 <option value="0">0
</option> </option>
<option value="1">1 <option value="1">1
</option> </option>
<option value="2">2
</option> <option value="2">2
<option value="3">3 </option>
</option> <option value="3">3
<option value="4">4 </option>
</option> <option value="4">4
</select> </option>
<option value="5">5</option>
</select>
<p style="margin-top: 10px;">people</p>
</div> </div>
<div class="kids_age"> <div class="kids_age">
<p style="margin-bottom: 5px;">0-2 yrs old</p> <p style="margin-bottom: 5px;">0-2 yrs old</p>
<select class="kids_number" id="infantNumber" name="infant_0_2_yrs"> <select class="kids_number" id="infantNumber" name="infant_0_2">
<option value="0">0 <option value="0">0
</option> </option>
<option value="1">1 <option value="1">1
</option> </option>
<option value="2">2 <option value="2">2
</option> </option>
<option value="3">3 <option value="3">3
</option> </option>
<option value="4">4 <option value="4">4
</option> </option>
</select> <option value="5">5</option>
</select>
<p style="margin-top: 10px;">people</p>
</div> </div>
</div> </div>
</div> </div>
<div class="selectionBlock" style="margin-bottom: 10px;"> <div class="selectionBlock" style="margin-bottom: 10px;">
@ -149,19 +232,19 @@
<div class="travel_group date_select" > <div class="travel_group date_select" >
<input type="radio" value="exact travel dates" id="exact" name="trip_date"> <input type="radio" value="exact travel dates" id="exact" name="trip_date">
<label for="exact" class="updatedestination" style="font-size: 18px;"> <label for="exact" class="updatedestination" style="font-size: 18px;">
Exact travel dates Exact dates
</label> </label>
</div> </div>
<div class="travel_group date_select" > <div class="travel_group date_select" >
<input type="radio" value="approximate travel dates" id="approximate" name="trip_date"> <input type="radio" value="approximate travel dates" id="approximate" name="trip_date">
<label for="approximate" class="updatedestination" style="font-size: 18px;"> <label for="approximate" class="updatedestination" style="font-size: 18px;">
Approximate travel dates Approximate dates
</label> </label>
</div> </div>
<div class="travel_group date_select" > <div class="travel_group date_select" >
<input type="radio" value="haven't decided travel dates" id="yet" name="trip_date"> <input type="radio" value="haven't decided travel dates" id="yet" name="trip_date">
<label for="yet" class="updatedestination" style="font-size: 18px;"> <label for="yet" class="updatedestination" style="font-size: 18px;">
Not decided travel dates Undecided dates
</label> </label>
</div> </div>
@ -621,21 +704,9 @@
$(function () { $(function () {
var $adultBlock = $('#adultBlock'); var $adultBlock = $('#adultBlock');
var $childrenBlock = $('#childrenBlock'); var $childrenBlock = $('#childrenBlock');
var $adultNumberInput = $('#adultNumber');
var adultNumber = $adultNumberInput.val();
var $teenagerNumberInput = $('#teenagerNumber');
var teenagerNumber = $teenagerNumberInput.val();
var $childrenNumberInput = $('#childrenNumber');
var childrenNumber = $childrenNumberInput.val();
var $infantNumberInput = $('#infantNumber');
var infantNumber = $infantNumberInput.val();
$('input[name="travel_group"]').each((i, groupEle) => { $('input[name="travel_group"]').each((i, groupEle) => {
$(groupEle).click(function (e) { $(groupEle).click(function (e) {
$teenagerNumberInput.val(0);
$childrenNumberInput.val(0);
$infantNumberInput.val(0);
var currentTarget = e.currentTarget; var currentTarget = e.currentTarget;
if (currentTarget.id === 'Family' || currentTarget.id === 'Other' ) { if (currentTarget.id === 'Family' || currentTarget.id === 'Other' ) {
$adultBlock.show(); $adultBlock.show();
@ -643,11 +714,6 @@
} else { } else {
$adultBlock.show(); $adultBlock.show();
$childrenBlock.hide(); $childrenBlock.hide();
}
if (currentTarget.id === 'Couple') {
$adultNumberInput.val(2);
} else if (currentTarget.id === 'Solo') {
$adultNumberInput.val(1);
} }
}) })
}); });
@ -680,55 +746,7 @@
}); });
var tripLength = $('#tripLengthNumber').val(); var tripLength = $('#tripLengthNumber').val();
// Trip Length
//成人
$('#plusAdult').click(function () {
adultNumber++;
$adultNumberInput.val(adultNumber);
});
$('#minusAdult').click(function () {
if (adultNumber > 1) {
adultNumber--;
$adultNumberInput.val(adultNumber);
}
});
// 青少年
$('#plusTeenager').click(function () {
teenagerNumber++;
$teenagerNumberInput.val(teenagerNumber);
});
$('#minusTeenager').click(function () {
if (teenagerNumber > 0) {
teenagerNumber--;
$teenagerNumberInput.val(teenagerNumber);
}
});
// 儿童
$('#plusChildren').click(function () {
childrenNumber++;
$childrenNumberInput.val(childrenNumber);
});
$('#minusChildren').click(function () {
if (childrenNumber > 0) {
childrenNumber--;
$childrenNumberInput.val(childrenNumber);
}
});
// 婴儿
$('#plusInfant').click(function () {
infantNumber++;
$infantNumberInput.val(infantNumber);
});
$('#minusInfant').click(function () {
if (infantNumber > 0) {
infantNumber--;
$infantNumberInput.val(infantNumber);
}
});
// Trip Length
$('#tripLengthPlus').click(function () { $('#tripLengthPlus').click(function () {
tripLength++; tripLength++;
$('#tripLengthNumber').val(tripLength); $('#tripLengthNumber').val(tripLength);

@ -480,6 +480,21 @@
}, 10000); }, 10000);
} }
</script> </script>
<script>
(function (w, d, i) {
var navbar = d.getElementById(i);
var prevScrollpos = w.pageYOffset;
w.onscroll = function() {
var currentScrollPos = w.pageYOffset;
if (prevScrollpos > currentScrollPos) {
navbar.style.top = '0';
} else {
navbar.style.top = '-100px';
}
prevScrollpos = currentScrollPos;
}
})(window, document, 'header');
</script>
<!--PC底部 结束--> <!--PC底部 结束-->

@ -37,96 +37,180 @@
</label> </label>
</div> </div>
<div id="adultBlock" style="display: none"> <div id="adultBlock" style="display: none">
<p style="margin-bottom: 5px;"><strong>Adults number</strong></p>
<div class="peopleSelect"> <div class="kids_age" >
<p style="margin-top: 20px;"><strong> <p style="margin-bottom: 5px; margin-top: 0;">65+ yrs old</p>
Adults (≥18 years old) <select class="kids_number" id="adultNumber_65_plus" name="adult_65_plus" >
</strong> </p> <option value="0">0</option>
<button class="minaddBtn reduceadult" id="minusAdult" type="button" <option value="1">1</option>
value="-">-</button> <option value="2">2</option>
<input class="number" type="text" value="2" id="adultNumber" name="adult"> <option value="3">3</option>
<button class="minaddBtn addadult" type="button" id="plusAdult" value="+">+</button> <option value="4">4</option>
</div> <option value="5">5</option>
<div class="age_range"> <option value="6">6</option>
<p> <option value="7">7</option>
Adults' ages <option value="8">8</option>
</p> <option value="9">9</option>
<div class="checkYes" style="float:left;"> <option value="10">10</option>
<label for="65+"> <option value="11">11</option>
<input type="checkbox" value="yes" name="age_65_plus" id="65+" class="checkBorder" >65+ <option value="12">12</option>
</label> <option value="13">13</option>
</div> <option value="14">14</option>
<div class="checkYes" style="float:left;"> <option value="15">15</option>
<label for="51-64"> <option value="16">16</option>
<input type="checkbox" value="yes" name="age_51_64" id="51-64" class="checkBorder" >51-64 <option value="17">17</option>
</label> <option value="18">18</option>
</div> <option value="19">19</option>
<div class="checkYes" style="float:left;"> <option value="20">20</option>
<label for="41-50"> <option value="21">21</option>
<input type="checkbox" value="yes" name="age_41_50" id="41-50" class="checkBorder" >41-50 <option value="22">22</option>
</label> <option value="23">23</option>
</div> <option value="24">24</option>
<div class="checkYes" style="float:left;"> <option value="25">25</option>
<label for="31-40"> <option value="26">26</option>
<input type="checkbox" value="yes" name="age_31_40" id="31-40" class="checkBorder" >31-40 <option value="27">27</option>
</label> <option value="28">28</option>
</div> <option value="29">29</option>
<div class="checkYes" style="float:left;"> <option value="30">30</option>
<label for="18-30">
<input type="checkbox" value="yes" name="age_18_30" id="18-30" class="checkBorder" >18-30 </select>
</label> <p style="margin-top: 10px;">people</p>
</div> </div>
</div> <div class="kids_age" >
</div> <p style="margin-bottom: 5px; margin-top: 0;">41-64 yrs old</p>
<div class="clear"></div> <select class="kids_number" id="adultNumber_41_64" name="adult_41_64" >
<div id="childrenBlock" style="display: none"> <option value="0">0</option>
<p style="margin-top: 0;margin-bottom: 0;"><strong>Children</strong></p> <option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
</select>
<p style="margin-top: 10px;">people</p>
</div>
<div class="kids_age" >
<p style="margin-bottom: 5px; margin-top: 0;">18-40 yrs old</p>
<select class="kids_number" id="adultNumber_18_40" name="adult_18_40" >
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
</select>
<p style="margin-top: 10px;">people</p>
</div>
</div>
<div class="clear"></div>
<div id='childrenBlock' style="display: none">
<p style="margin-bottom: 5px;"><strong>Children number (age of children at time of trip)</strong></p>
<div class="kids_age"> <div class="kids_age">
<p style="margin-bottom: 5px;">10-17 yrs old</p> <p style="margin-bottom: 5px;">10-17 yrs old</p>
<select class="kids_number" id="teenagerNumber" name="teenager_10_17_yrs"> <select class="kids_number" id="teenagerNumber" name="teenager_10_17">
<option value="0">0 <option value="0">0
</option> </option>
<option value="1">1 <option value="1">1
</option> </option>
<option value="2">2
</option> <option value="2">2
<option value="3">3 </option>
</option> <option value="3">3
<option value="4">4 </option>
</option> <option value="4">4
</select> </option>
<option value="5">5</option>
</select>
<p style="margin-top: 10px;">people</p>
</div> </div>
<div class="kids_age"> <div class="kids_age">
<p style="margin-bottom: 5px;">3-9 yrs old</p> <p style="margin-bottom: 5px;">3-9 yrs old</p>
<select class="kids_number" id="childrenNumber" name="children_3_9_yrs"> <select class="kids_number" id="childrenNumber" name="children_3_9">
<option value="0">0 <option value="0">0
</option> </option>
<option value="1">1 <option value="1">1
</option> </option>
<option value="2">2
</option> <option value="2">2
<option value="3">3 </option>
</option> <option value="3">3
<option value="4">4 </option>
</option> <option value="4">4
</select> </option>
<option value="5">5</option>
</select>
<p style="margin-top: 10px;">people</p>
</div> </div>
<div class="kids_age"> <div class="kids_age">
<p style="margin-bottom: 5px;">0-2 yrs old</p> <p style="margin-bottom: 5px;">0-2 yrs old</p>
<select class="kids_number" id="infantNumber" name="infant_0_2_yrs"> <select class="kids_number" id="infantNumber" name="infant_0_2">
<option value="0">0 <option value="0">0
</option> </option>
<option value="1">1 <option value="1">1
</option> </option>
<option value="2">2 <option value="2">2
</option> </option>
<option value="3">3 <option value="3">3
</option> </option>
<option value="4">4 <option value="4">4
</option> </option>
</select> <option value="5">5</option>
</select>
<p style="margin-top: 10px;">people</p>
</div> </div>
</div> </div>
</div> </div>
<div class="selectionBlock"> <div class="selectionBlock">
<h4 style="margin-top: 0; margin-bottom: 0;font-weight: 400;"> <h4 style="margin-top: 0; margin-bottom: 0;font-weight: 400;">
@ -138,19 +222,19 @@
<div class="travel_group date_select"> <div class="travel_group date_select">
<input type="radio" value="Exact travel dates" id="exact" name="trip_date"> <input type="radio" value="Exact travel dates" id="exact" name="trip_date">
<label for="exact" class="family"> <label for="exact" class="family">
Exact travel dates Exact dates
</label> </label>
</div> </div>
<div class="travel_group date_select"> <div class="travel_group date_select">
<input type="radio" value="Approximate travel dates" id="approximate" name="trip_date"> <input type="radio" value="Approximate travel dates" id="approximate" name="trip_date">
<label for="approximate" class="couple"> <label for="approximate" class="couple">
Approximate travel dates Approximate dates
</label> </label>
</div> </div>
<div class="travel_group date_select"> <div class="travel_group date_select">
<input type="radio" value="Undecided travel dates" id="yet" name="trip_date"> <input type="radio" value="Undecided travel dates" id="yet" name="trip_date">
<label for="yet" class="solo"> <label for="yet" class="solo">
Undecided travel dates Undecided dates
</label> </label>
</div> </div>
<div class="trip_date_length" id="tripDateBlock" style="display: none"> <div class="trip_date_length" id="tripDateBlock" style="display: none">
@ -168,23 +252,22 @@
<h4 style="margin-top: 0; margin-bottom: 0;font-weight: 400;"> <h4 style="margin-top: 0; margin-bottom: 0;font-weight: 400;">
What's your hotel choice? What's your hotel choice?
</h4> </h4>
<div class="travel_group date_select"> <div class="travel_group date_select">
<input type="radio" value="Luxury (5 stars & up)" id="Luxury" name="hotel"> <input type="radio" value="Luxury (5 stars & up)" id="Luxury" name="hotel">
<label for="Luxury" class="family"> <label for="Luxury" class="family">
Luxury <em>(5 stars & up)</em> Luxury<br> <em>(5 stars & up)</em>
</label> </label>
</div> </div>
<div class="travel_group date_select"> <div class="travel_group date_select">
<input type="radio" value="Handpicked Comfort (4-5 stars)" id="Handpicked" name="hotel"> <input type="radio" value="Handpicked Comfort (4-5 stars)" id="Handpicked" name="hotel">
<label for="Handpicked" class="couple"> <label for="Handpicked" class="couple">
Handpicked Comfort <em>(4-5 stars)</em> Handpicked Comfort<br> <em>(4-5 stars)</em>
</label> </label>
</div> </div>
<div class="travel_group date_select"> <div class="travel_group date_select">
<input type="radio" value="Standard (3 stars)" id="Standard" name="hotel"> <input type="radio" value="Standard (3 stars)" id="Standard" name="hotel">
<label for="Standard" class="solo"> <label for="Standard" class="solo">
Standard <em>(3 stars)</em> Standard<br> <em>(3 stars)</em>
</label> </label>
</div> </div>
</div> </div>
@ -494,22 +577,10 @@ $(function () {
var selectedExpectedDate = ''; var selectedExpectedDate = '';
var $adultBlock = $('#adultBlock'); var $adultBlock = $('#adultBlock');
var $childrenBlock = $('#childrenBlock'); var $childrenBlock = $('#childrenBlock');
var $adultNumberInput = $('#adultNumber');
var adultNumber = $adultNumberInput.val();
var $teenagerNumberInput = $('#teenagerNumber');
var teenagerNumber = $teenagerNumberInput.val();
var $childrenNumberInput = $('#childrenNumber');
var childrenNumber = $childrenNumberInput.val();
var $infantNumberInput = $('#infantNumber');
var infantNumber = $infantNumberInput.val();
$('input[name="travel_group"]').each((i, groupEle) => { $('input[name="travel_group"]').each((i, groupEle) => {
$(groupEle).click(function (e) { $(groupEle).click(function (e) {
$teenagerNumberInput.val(0);
$childrenNumberInput.val(0);
$infantNumberInput.val(0);
var currentTarget = e.currentTarget; var currentTarget = e.currentTarget;
if (currentTarget.id === 'Family' || currentTarget.id === 'Other' ) { if (currentTarget.id === 'Family' || currentTarget.id === 'Other' ) {
$adultBlock.show(); $adultBlock.show();
@ -518,11 +589,6 @@ $(function () {
$adultBlock.show(); $adultBlock.show();
$childrenBlock.hide(); $childrenBlock.hide();
} }
if (currentTarget.id === 'Couple') {
$adultNumberInput.val(2);
} else if (currentTarget.id === 'Solo') {
$adultNumberInput.val(1);
}
}) })
}); });
@ -556,51 +622,6 @@ $(function () {
}) })
}); });
//成人
$('#plusAdult').click(function () {
adultNumber++;
$adultNumberInput.val(adultNumber);
});
$('#minusAdult').click(function () {
if (adultNumber > 1) {
adultNumber--;
$adultNumberInput.val(adultNumber);
}
});
// 青少年
$('#plusTeenager').click(function () {
teenagerNumber++;
$teenagerNumberInput.val(teenagerNumber);
});
$('#minusTeenager').click(function () {
if (teenagerNumber > 0) {
teenagerNumber--;
$teenagerNumberInput.val(teenagerNumber);
}
});
// 儿童
$('#plusChildren').click(function () {
childrenNumber++;
$childrenNumberInput.val(childrenNumber);
});
$('#minusChildren').click(function () {
if (childrenNumber > 0) {
childrenNumber--;
$childrenNumberInput.val(childrenNumber);
}
});
// 婴儿
$('#plusInfant').click(function () {
infantNumber++;
$infantNumberInput.val(infantNumber);
});
$('#minusInfant').click(function () {
if (infantNumber > 0) {
infantNumber--;
$infantNumberInput.val(infantNumber);
}
});
function validateQuickInquiryForm() { function validateQuickInquiryForm() {
var result = true; var result = true;
var realnameVal = document.getElementById("realname").value; var realnameVal = document.getElementById("realname").value;

@ -50,7 +50,7 @@
<li class="menu__item" role="menuitem"><a class="menu__link" data-submenu="submenu-4" aria-owns="submenu-4" hhref="/shanghai-side-trips/">Side Trips</a><a class="menu__link" href="/shanghai-side-trips/">Side Trips</a></li> <li class="menu__item" role="menuitem"><a class="menu__link" data-submenu="submenu-4" aria-owns="submenu-4" hhref="/shanghai-side-trips/">Side Trips</a><a class="menu__link" href="/shanghai-side-trips/">Side Trips</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" data-submenu="submenu-5" aria-owns="submenu-5" href="/shanghai-travel-guide/">Shanghai Guide</a><a class="menu__link" href="/shanghai-travel-guide/">Shanghai Guide</a></li> <li class="menu__item" role="menuitem"><a class="menu__link" data-submenu="submenu-5" aria-owns="submenu-5" href="/shanghai-travel-guide/">Shanghai Guide</a><a class="menu__link" href="/shanghai-travel-guide/">Shanghai Guide</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" data-submenu="submenu-6" aria-owns="submenu-6" href="/shanghai-train-schedule/">Trains</a><a class="menu__link" href="/shanghai-train-schedule/">Trains</a></li> <li class="menu__item" role="menuitem"><a class="menu__link" data-submenu="submenu-6" aria-owns="submenu-6" href="/shanghai-train-schedule/">Trains</a><a class="menu__link" href="/shanghai-train-schedule/">Trains</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/forms/customize">Create My Trip</a></li> <li class="menu__item" role="menuitem"><a class="menu__link" href="/forms/customize.html">Create My Trip</a></li>
</ul> </ul>
<!-- Water Town Tours --> <!-- Water Town Tours -->
<ul data-menu="submenu-1" id="submenu-1" class="menu__level" tabindex="-1" role="menu" aria-label="water-town-tours"> <ul data-menu="submenu-1" id="submenu-1" class="menu__level" tabindex="-1" role="menu" aria-label="water-town-tours">

@ -1,13 +1,4 @@
<?php <?php
$config["method_code"] = 15015;
$config['app_id'] = "2017092108849921";
$config['seller_id'] = "2088221900308281";
$config['notify_url'] = "http://www.mycht.cn/webht.php/apps/pay/alipaytradeservice/alipay_notice";
$config['return_url'] = "https://www.chinahighlights.com/secureipay/alipay_return";
$config['charset'] = "UTF-8";
$config['sign_type'] = "RSA2";
$config['gatewayUrl'] = "https://openapi.alipay.com/gateway.do";
$config['timeout_express'] = "1m";
$config['alipay_public_key'] = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsMpRXezVgTE4/ROKVgWO7AWiVLspzW36lkLF18g2neHV9mfV/kANzrdV170RzJirOuxPecG5LgnKO+MV6giwGJPpUyaRhgYwe1B6Po0LoU4QvI088xjDqNw1vzN7xPRYSgb63mdafVe1qGiHuwelyRYJTZFE3GSb3HSL/5O8MLu0FrIRabgkgOqN7EdznA/WjiGev3tA/10YSrneCcPe49XhKVLvS6cQ3abX48lRr2qxQqh538jYB8/Z/UUVhfQ4BoBqe9JpDQrv4TeIlAXjdqM0Fgz0LXHwXsAiDIeUiKBc+9bAz2vgkRycI+1F3A8VlUG8lwBjqXwzvxZvYzAZYQIDAQAB"; require 'alipay_cht.php';
$config['merchant_private_key'] = "MIIEowIBAAKCAQEAzlwm2yj4lHDuGmBnbgdhMry5kfUmQ2ZeZtuTICi5oUATMlcxjHoVYXe5pN+vcZWM1laC8UuKX1K2gSV+46ax4WcAGjb4eItCmvQyq0REYUua+ybYwWtWn1481NLSPfvW2HwM8O9jXj3XBhfQzJsAJJTikM9lZO++6pC2Wtmhw3FjF+O1gkd015MujRUidXESrIwrmnbO/i1IERblXk1gVnvovWnq6VRB2gC9AfzLdkWo3Pq9rAX+MY/eYto/z8UaYU5BNanVIhQ6pAIQazIMawxqsu28AsPRcM8CwFTYcNktAB3feMRhLMqj9GWzkmDWhjrL3NYR+vsYHDAgj7L5ewIDAQABAoIBAFUxVhlEYNtng+T/x7N0+HupzjKjsphAuthb7fFo3rnjagluVdZY0Frcwpd+gT+zLeGO9aAIP6f6zb2jbS8usmEL1M79wraBR44RIpnyJQjF3cWx0+qGFczVauex4XoVbi0RiYYuTieqAAtT6a+OjhCMJr0B4io5j+fmtmHrVw0IFMmbAesV867EH7sn+MmnJCK79KbL5G7lBxZJZempS9ZhwR18WSGpCk90qHGoI9GlPPDWrN2nAVsGVl501vQKc+fUOQSXmAVc+K87q9SeUmrQdM1GbX5UCj+gMEC7sNAnWthCT2H4AFXxvzGLVhvBzRTLZT1SfmAS8zS8LINDxAECgYEA5gWwtS6Ot96E4MHQxjQEx0cP1+P71uI4huA8Lyx+guPymeM2+u4SiWpkuFyzmoNvMxh2fem3Add3kCNF0PNJRIbI0w2vqF+6gQYVIwcS3kqXUeq9oNN6raqFoad1adAUjGQM1SBwc8ARfF3gw8CkePaxikMzFJ6FS15GeA4SueECgYEA5apZCt3dsFzmMyf+/I/X9Bo+fXhnya6QLN+NsLcwnFpWN//rRHnMR7i9jUpyUUDefz9pLAmTkx3roevoGbI7kikqvWallH1rwkgynQAbyHU1XYjM/tRv9zs2TiorakbqrGvzmTdoClwM+dZOXTT4/TbkmcchvlvXkQWGozaIttsCgYEAqKDxS9Im5Jrn1RGhaTyHaEQrVD0Zyg2sHQzUckzvLivIFZLiIpFX24+46QNk09iZM98yNtqYxGvehjelnipMw0UAguEcrpYHV0FLS5OK/JW4W2B4xidjX1+MedcXF4xpFAbg9XnDlsfuybrU5Q0cRmWsAE2FbA9ObtNdW/QNPGECgYAd44J9EIy2VBC9XZoooku3f+bcC1xueeJXhKx68AxKfNM1rH+gxL0aJGe+yI6CFpAePVFhoslq3vz4cKwfE/v+tI7UYVRxM7Vfbmfv2MDE4MQWLSSIkXsU0Mbrez91ME+AKvhj2zsWBg7GQOan6Knywj8T6D9y957hR7fS69j0+wKBgA1Ph+8DTRbvfXKj95KraLdrPGq6hyK0PaF044pi3u2Z1iys99f7aKM0F19akVE9KG1niR4Zit6S1Hqxx+9V6cLw/xxfEl9t9NK8QxGDqmVk9T6TnyMZvMjAi+FADn3hzbRkp1HGT/XUYe2nFuUaATaNhNuuDcuVZtAr78joA+HV"; require 'alipay_tp.php';

@ -0,0 +1,13 @@
<?php
$config['cht']["method_code"] = 15015;
$config['cht']['app_id'] = "2017092108849921";
$config['cht']['seller_id'] = "2088221900308281";
$config['cht']['notify_url'] = "http://www.mycht.cn/webht.php/apps/pay/alipaytradeservice/alipay_notice";
$config['cht']['return_url'] = "https://www.chinahighlights.com/secureipay/alipay_return";
$config['cht']['charset'] = "UTF-8";
$config['cht']['sign_type'] = "RSA2";
$config['cht']['gatewayUrl'] = "https://openapi.alipay.com/gateway.do";
$config['cht']['timeout_express'] = "1m";
$config['cht']['alipay_public_key'] = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsMpRXezVgTE4/ROKVgWO7AWiVLspzW36lkLF18g2neHV9mfV/kANzrdV170RzJirOuxPecG5LgnKO+MV6giwGJPpUyaRhgYwe1B6Po0LoU4QvI088xjDqNw1vzN7xPRYSgb63mdafVe1qGiHuwelyRYJTZFE3GSb3HSL/5O8MLu0FrIRabgkgOqN7EdznA/WjiGev3tA/10YSrneCcPe49XhKVLvS6cQ3abX48lRr2qxQqh538jYB8/Z/UUVhfQ4BoBqe9JpDQrv4TeIlAXjdqM0Fgz0LXHwXsAiDIeUiKBc+9bAz2vgkRycI+1F3A8VlUG8lwBjqXwzvxZvYzAZYQIDAQAB";
$config['cht']['merchant_private_key'] = "MIIEowIBAAKCAQEAzlwm2yj4lHDuGmBnbgdhMry5kfUmQ2ZeZtuTICi5oUATMlcxjHoVYXe5pN+vcZWM1laC8UuKX1K2gSV+46ax4WcAGjb4eItCmvQyq0REYUua+ybYwWtWn1481NLSPfvW2HwM8O9jXj3XBhfQzJsAJJTikM9lZO++6pC2Wtmhw3FjF+O1gkd015MujRUidXESrIwrmnbO/i1IERblXk1gVnvovWnq6VRB2gC9AfzLdkWo3Pq9rAX+MY/eYto/z8UaYU5BNanVIhQ6pAIQazIMawxqsu28AsPRcM8CwFTYcNktAB3feMRhLMqj9GWzkmDWhjrL3NYR+vsYHDAgj7L5ewIDAQABAoIBAFUxVhlEYNtng+T/x7N0+HupzjKjsphAuthb7fFo3rnjagluVdZY0Frcwpd+gT+zLeGO9aAIP6f6zb2jbS8usmEL1M79wraBR44RIpnyJQjF3cWx0+qGFczVauex4XoVbi0RiYYuTieqAAtT6a+OjhCMJr0B4io5j+fmtmHrVw0IFMmbAesV867EH7sn+MmnJCK79KbL5G7lBxZJZempS9ZhwR18WSGpCk90qHGoI9GlPPDWrN2nAVsGVl501vQKc+fUOQSXmAVc+K87q9SeUmrQdM1GbX5UCj+gMEC7sNAnWthCT2H4AFXxvzGLVhvBzRTLZT1SfmAS8zS8LINDxAECgYEA5gWwtS6Ot96E4MHQxjQEx0cP1+P71uI4huA8Lyx+guPymeM2+u4SiWpkuFyzmoNvMxh2fem3Add3kCNF0PNJRIbI0w2vqF+6gQYVIwcS3kqXUeq9oNN6raqFoad1adAUjGQM1SBwc8ARfF3gw8CkePaxikMzFJ6FS15GeA4SueECgYEA5apZCt3dsFzmMyf+/I/X9Bo+fXhnya6QLN+NsLcwnFpWN//rRHnMR7i9jUpyUUDefz9pLAmTkx3roevoGbI7kikqvWallH1rwkgynQAbyHU1XYjM/tRv9zs2TiorakbqrGvzmTdoClwM+dZOXTT4/TbkmcchvlvXkQWGozaIttsCgYEAqKDxS9Im5Jrn1RGhaTyHaEQrVD0Zyg2sHQzUckzvLivIFZLiIpFX24+46QNk09iZM98yNtqYxGvehjelnipMw0UAguEcrpYHV0FLS5OK/JW4W2B4xidjX1+MedcXF4xpFAbg9XnDlsfuybrU5Q0cRmWsAE2FbA9ObtNdW/QNPGECgYAd44J9EIy2VBC9XZoooku3f+bcC1xueeJXhKx68AxKfNM1rH+gxL0aJGe+yI6CFpAePVFhoslq3vz4cKwfE/v+tI7UYVRxM7Vfbmfv2MDE4MQWLSSIkXsU0Mbrez91ME+AKvhj2zsWBg7GQOan6Knywj8T6D9y957hR7fS69j0+wKBgA1Ph+8DTRbvfXKj95KraLdrPGq6hyK0PaF044pi3u2Z1iys99f7aKM0F19akVE9KG1niR4Zit6S1Hqxx+9V6cLw/xxfEl9t9NK8QxGDqmVk9T6TnyMZvMjAi+FADn3hzbRkp1HGT/XUYe2nFuUaATaNhNuuDcuVZtAr78joA+HV";

@ -0,0 +1,22 @@
<?php
$config['trippest']["method_code"] = 15015;
$config['trippest']['charset'] = "UTF-8";
$config['trippest']['sign_type'] = "RSA2";
$config['trippest']['gatewayUrl'] = "https://openapi.alipay.com/gateway.do";
$config['trippest']['timeout_express'] = "1m";
$config['trippest']['app_id'] = "2021004129643221";
$config['trippest']['seller_id'] = "2088421651051311";
$config['trippest']['return_url'] = "";
$config['trippest']['notify_url'] = "https://callback.chinahighlights.com/webht.php/apps/pay/alipaytradeservice/alipay_notice/trippest";
$config['trippest']['app_public_key'] = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjdTn0IFw9labk5OKOy1EFpZViwFM+IUVN6bLfoSRQI/mk8/mFDgCjZhlGSzg7XxlpZ0/AJzd8Tfovi26GVCB2kJ0HhDwC40sQs3XusMzJZZIzMX2L26y3lUaWx2pbgzXaYmHB+KraTk228xfcJWs/Q1doBiDO8YnZX8KEO51l1eMxQAQtGLM95JGmRc0dqivkagbpaHp1fBW8ngPfWgnUo7J0zqG/+0TPdCXCtfNJHrCw3ChUizMxPTQ71VLzeD3E7QWH/tmnzHgz9jSkU+dMXr+JMHBzjv44ZY/KYWnYk2q3W3SwWUCOTvhYXvqK/CjwAVVWHkvcaQFpyQZOyEzuwIDAQAB";
$config['trippest']['alipay_public_key'] = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3EnlPqzxDSlA8MX2ZP4BnpW7p5CYtauOcfEWnYTA+NleUYFd63gYG3qKh2AVO2waOWHBL3U4KRWXNJI4spzxV8TRYPk0wQZ+ZnenEzWNvr0Gbcm/kdr9euBG5JkagI5u9Dz0OxGcMQiFB1IZiIz/cq7wVN+kMO52hkHxSK4j+pgjk1orXbhMp3B2v1UoK0UEPIBSDaqH10rmfYxaOc/o/4i64Zi+ND2kKPZgtk1632rh7UJ8ZrgTNU/mVWSE10CgTqFwtOgtAARstaE/3dI7jpspSevS8y2qm7Bs4VybJiMnCgAzv9EZutB+LzuoBRlj6NHNvrOeg1ErJLaBhLnsIwIDAQAB";
// PKCS1
$config['trippest']['merchant_private_key'] = "MIIEowIBAAKCAQEAjdTn0IFw9labk5OKOy1EFpZViwFM+IUVN6bLfoSRQI/mk8/mFDgCjZhlGSzg7XxlpZ0/AJzd8Tfovi26GVCB2kJ0HhDwC40sQs3XusMzJZZIzMX2L26y3lUaWx2pbgzXaYmHB+KraTk228xfcJWs/Q1doBiDO8YnZX8KEO51l1eMxQAQtGLM95JGmRc0dqivkagbpaHp1fBW8ngPfWgnUo7J0zqG/+0TPdCXCtfNJHrCw3ChUizMxPTQ71VLzeD3E7QWH/tmnzHgz9jSkU+dMXr+JMHBzjv44ZY/KYWnYk2q3W3SwWUCOTvhYXvqK/CjwAVVWHkvcaQFpyQZOyEzuwIDAQABAoIBAAliyoh42HHk31zPybkK0NOx1S1iw6Y6oGHTbuoLedVM8JRdkLtLzZdzO1WEK8prjgp8snum5eUdrxBO1F7yffVkqmyG8GvDRueQ2bLpUgwtutmaTCVtbPbbqOfYuaqnvOWmDUKPVIqdF61KBBLeRNlmNgjvNlgRT/AejRr7vNpr/mas2NYwHM3chx1zdZhHCW1faRSzgBwOctRgCmCsp0jUKXZrrR2PMdD7Ou/w/FRsHbxBp1gceExFCn8iA3CkoKu9x/5LaOYLg/BqFDALSsVzH1NHV7t2Phb3q0MOE0mO7OTgnCb1RPuOjWP31cJ4hTjqVVBN6ErACjNF1nU7EnECgYEA1l22RBU4wTxNGe1kP0UJ+3xP3Htf1liojo5RhvRL4ytYW7Eqr0BBHeKCVD2/4dpUEISAKxqCvIEIBUKXB4w9EFdMG8XsIXPyYgRbvs48948qdfXMkYBFOCQlMCCbJUwaLWlCUlCEidN898wqAOgHf02bOEKvBt5N1vfJDjAKnFMCgYEAqWDH2cheOeRkdc5umhJbfTkf6IHCxB/OyMF61qUlehNLTv3PphfW94fAEduPQXHotWlMNpmo+hYouMagP0JnUjPKgnap9+9Pq2xlIr9ihXrF1PQvvihsmOJoIdJa7zCxEqBpEKtZAcNy8qSJHhONFBIb1I/2ZL6GWe7s6ilHXfkCgYEAuGhhdWw0KLdxNE6toGgJ0Ff+c5OGvGQEjK4NoGTkK4aMOkTMjXpfChBjQYjlWqtxCcySXYIu2W6+sZe5SPrxRO90P6giHB0cdAl/y0Kr2+NDCbrrwndwFH2zqBVEoe83zbzxGtK9Ubunk5wEvkbcvDzMvLdQzj3LBJSgVx4o4pUCgYAqpXCMWBPJdcUJmGlmp5qbg+eRziIw6WVSTMzWAIzYGMWMZQGEa1o3xtlIZcTDEKAsFRAYa0YNecjVBUXRx7FmFB44DRKsl3eyzL8GKbPvscLf5H+k3F7De7YGVgWJVfQvoW3ywYHOnNxzVZQkm32ZARo6weii4wnG2Q6TwsLyWQKBgG60GnmrJIYuXHD3uoe+tnfPGMgtvtCmz1XYj/V7kFqIs8smyRjWtPn762Qm5xKJQwCLVRCgCtxFztzxlxwpLvEOcUjsvmDxt1oswJFGuK3Nx+PU26m82mArc0WphhLhx+xgMMykAOZjhlAPHGDs1fN60s2d8gv3B+HRAKTfzxeL";
// PKCS8
$config['trippest']['merchant_private_key2'] = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCN1OfQgXD2VpuTk4o7LUQWllWLAUz4hRU3pst+hJFAj+aTz+YUOAKNmGUZLODtfGWlnT8AnN3xN+i+LboZUIHaQnQeEPALjSxCzde6wzMllkjMxfYvbrLeVRpbHaluDNdpiYcH4qtpOTbbzF9wlaz9DV2gGIM7xidlfwoQ7nWXV4zFABC0Ysz3kkaZFzR2qK+RqBuloenV8FbyeA99aCdSjsnTOob/7RM90JcK180kesLDcKFSLMzE9NDvVUvN4PcTtBYf+2afMeDP2NKRT50xev4kwcHOO/jhlj8phadiTardbdLBZQI5O+Fhe+or8KPABVVYeS9xpAWnJBk7ITO7AgMBAAECggEACWLKiHjYceTfXM/JuQrQ07HVLWLDpjqgYdNu6gt51UzwlF2Qu0vNl3M7VYQrymuOCnyye6bl5R2vEE7UXvJ99WSqbIbwa8NG55DZsulSDC262ZpMJW1s9tuo59i5qqe85aYNQo9Uip0XrUoEEt5E2WY2CO82WBFP8B6NGvu82mv+ZqzY1jAczdyHHXN1mEcJbV9pFLOAHA5y1GAKYKynSNQpdmutHY8x0Ps67/D8VGwdvEGnWBx4TEUKfyIDcKSgq73H/kto5guD8GoUMAtKxXMfU0dXu3Y+FverQw4TSY7s5OCcJvVE+46NY/fVwniFOOpVUE3oSsAKM0XWdTsScQKBgQDWXbZEFTjBPE0Z7WQ/RQn7fE/ce1/WWKiOjlGG9EvjK1hbsSqvQEEd4oJUPb/h2lQQhIArGoK8gQgFQpcHjD0QV0wbxewhc/JiBFu+zjz3jyp19cyRgEU4JCUwIJslTBotaUJSUISJ03z3zCoA6Ad/TZs4Qq8G3k3W98kOMAqcUwKBgQCpYMfZyF455GR1zm6aElt9OR/ogcLEH87IwXrWpSV6E0tO/c+mF9b3h8AR249Bcei1aUw2maj6Fii4xqA/QmdSM8qCdqn370+rbGUiv2KFesXU9C++KGyY4mgh0lrvMLESoGkQq1kBw3LypIkeE40UEhvUj/ZkvoZZ7uzqKUdd+QKBgQC4aGF1bDQot3E0Tq2gaAnQV/5zk4a8ZASMrg2gZOQrhow6RMyNel8KEGNBiOVaq3EJzJJdgi7Zbr6xl7lI+vFE73Q/qCIcHRx0CX/LQqvb40MJuuvCd3AUfbOoFUSh7zfNvPEa0r1Ru6eTnAS+Rty8PMy8t1DOPcsElKBXHijilQKBgCqlcIxYE8l1xQmYaWanmpuD55HOIjDpZVJMzNYAjNgYxYxlAYRrWjfG2UhlxMMQoCwVEBhrRg15yNUFRdHHsWYUHjgNEqyXd7LMvwYps++xwt/kf6TcXsN7tgZWBYlV9C+hbfLBgc6c3HNVlCSbfZkBGjrB6KLjCcbZDpPCwvJZAoGAbrQaeaskhi5ccPe6h762d88YyC2+0KbPVdiP9XuQWoizyybJGNa0+fvrZCbnEolDAItVEKAK3EXO3PGXHCku8Q5xSOy+YPG3WizAkUa4rc3H49TbqbzaYCtzRamGEuHH7GAwzKQA5mOGUA8cYOzV83rSzZ3yC/cH4dEApN/PF4s=";

@ -27,3 +27,4 @@ $config['cht']["app_id"] = "wxd6c8dd69af5128cd";
$config['cht']["mch_id"] = "1353239702"; $config['cht']["mch_id"] = "1353239702";
$config['cht']["key"] = "aada7476b3fecc2c6e33a7c765298516"; $config['cht']["key"] = "aada7476b3fecc2c6e33a7c765298516";
$config['cht']["app_secret"] = ""; $config['cht']["app_secret"] = "";
// wx5d01021a6d515098 花梨鹰小程序

@ -35,12 +35,13 @@ class AlipayTradeService extends CI_Controller
public $timeout_express = "1m"; public $timeout_express = "1m";
private $merchant_account = 'cht';
// cht // cht
public function __construct(){ public function __construct(){
parent::__construct(); parent::__construct();
$this->load->library('alipay/AopSdk'); $this->load->library('alipay/AopSdk');
// real URL // real URL
$this->config->load('alipay'); $this->config->load('alipay', true);
$this->config->load('wxpay', true); $this->config->load('wxpay', true);
// test URL // test URL
// $this->config->load('dev_alipay'); // $this->config->load('dev_alipay');
@ -54,38 +55,49 @@ class AlipayTradeService extends CI_Controller
$this->load->helper('payment'); $this->load->helper('payment');
$this->load->model('Online_payment_account_model', 'payment_model'); $this->load->model('Online_payment_account_model', 'payment_model');
$this->gateway_url = $this->config->item('gatewayUrl'); $this->set_merchant('cht');
$this->appid = $this->config->item('app_id');
$this->seller_id = $this->config->item('seller_id');
$this->private_key = $this->config->item('merchant_private_key');
$this->alipay_public_key = $this->config->item('alipay_public_key');
$this->charset = $this->config->item('charset');
$this->signtype = $this->config->item('sign_type');
$this->timeout_express = $this->config->item('timeout_express');
$this->return_url = $this->config->item('return_url'); header('Access-Control-Allow-Origin:*');
$this->notify_url = $this->config->item('notify_url'); header('Access-Control-Allow-Methods:POST, GET');
header('Access-Control-Max-Age:0');
header('Access-Control-Allow-Headers:x-requested-with, Content-Type');
}
private function set_merchant($account = 'cht')
{
$this->merchant_account = $account;
$this->ali_site_config = $this->config->item(strtolower($account), 'alipay');
if(empty($this->appid)||trim($this->appid)==""){ $this->gateway_url = $this->ali_site_config['gatewayUrl'];
log_message('error','Alipay ERROR appid should not be NULL!'); $this->appid = $this->ali_site_config['app_id'];
$this->seller_id = $this->ali_site_config['seller_id'];
$this->private_key = $this->ali_site_config['merchant_private_key'];
$this->alipay_public_key = $this->ali_site_config['alipay_public_key'];
$this->charset = $this->ali_site_config['charset'];
$this->signtype = $this->ali_site_config['sign_type'];
$this->timeout_express = $this->ali_site_config['timeout_express'];
$this->return_url = $this->ali_site_config['return_url'];
$this->notify_url = $this->ali_site_config['notify_url'];
if (empty($this->appid) || trim($this->appid) == "") {
log_message('error', 'Alipay ERROR appid should not be NULL!');
} }
if(empty($this->private_key)||trim($this->private_key)==""){ if (empty($this->private_key) || trim($this->private_key) == "") {
log_message('error','Alipay ERROR private_key should not be NULL!'); log_message('error', 'Alipay ERROR private_key should not be NULL!');
} }
if(empty($this->alipay_public_key)||trim($this->alipay_public_key)==""){ if (empty($this->alipay_public_key) || trim($this->alipay_public_key) == "") {
log_message('error','Alipay ERROR alipay_public_key should not be NULL!'); log_message('error', 'Alipay ERROR alipay_public_key should not be NULL!');
} }
if(empty($this->charset)||trim($this->charset)==""){ if (empty($this->charset) || trim($this->charset) == "") {
log_message('error','Alipay ERROR charset should not be NULL!'); log_message('error', 'Alipay ERROR charset should not be NULL!');
} }
if(empty($this->gateway_url)||trim($this->gateway_url)==""){ if (empty($this->gateway_url) || trim($this->gateway_url) == "") {
log_message('error','Alipay ERROR gateway_url should not be NULL!'); log_message('error', 'Alipay ERROR gateway_url should not be NULL!');
} }
header('Access-Control-Allow-Origin:*');
header('Access-Control-Allow-Methods:POST, GET');
header('Access-Control-Max-Age:0');
header('Access-Control-Allow-Headers:x-requested-with, Content-Type');
} }
public function index() public function index()
{ {
$this->note_list(); $this->note_list();
@ -97,7 +109,7 @@ class AlipayTradeService extends CI_Controller
* @date 2017-09-13 * @date 2017-09-13
* @return [type] [description] * @return [type] [description]
*/ */
public function alipay_notice() public function alipay_notice($site = 'cht')
{ {
error_reporting(0); error_reporting(0);
$resp_arr = $this->input->post(); $resp_arr = $this->input->post();
@ -512,6 +524,10 @@ class AlipayTradeService extends CI_Controller
$opi_firstname = 'contact@arachina.com'; $opi_firstname = 'contact@arachina.com';
} }
//没有外联信息表示订单未分配 //没有外联信息表示订单未分配
if (empty($opi_email) && !empty($opi_firstname)) {
$this->Alipay_note_model->update_send($item->ALI_dealId, 'send');
continue;
}
if (empty($opi_email) || empty($opi_firstname)) { if (empty($opi_email) || empty($opi_firstname)) {
$this->Alipay_note_model->update_send($item->ALI_dealId, 'sendfail'); $this->Alipay_note_model->update_send($item->ALI_dealId, 'sendfail');
continue; continue;
@ -571,6 +587,11 @@ class AlipayTradeService extends CI_Controller
//订单号 //订单号
$orderid_info = analysis_orderid($parent_note->ALI_orderId); $orderid_info = analysis_orderid($parent_note->ALI_orderId);
$orderid_info = json_decode($orderid_info); $orderid_info = json_decode($orderid_info);
//查不到订单信息
if (empty($orderid_info)) {
$this->Alipay_note_model->update_send($item->ALI_dealId, 'sendfail');
return false;
}
//根据订单号查找外联信息 //根据订单号查找外联信息
$advisor_info = $this->Alipay_model->get_order($orderid_info->orderid, false, $orderid_info->ordertype, $handpick); $advisor_info = $this->Alipay_model->get_order($orderid_info->orderid, false, $orderid_info->ordertype, $handpick);
//查不到订单信息 //查不到订单信息
@ -752,6 +773,7 @@ class AlipayTradeService extends CI_Controller
$response = $this->aopclientRequestExecute ($request); $response = $this->aopclientRequestExecute ($request);
$response = $response->alipay_trade_query_response; $response = $response->alipay_trade_query_response;
// log_message('error','test:rrr2 ' . __CLASS__ . PHP_EOL . var_export($response, 1));
return $response; return $response;
} }
@ -794,6 +816,17 @@ class AlipayTradeService extends CI_Controller
return $this->output->set_content_type('application/json')->set_output(json_encode($response)); return $this->output->set_content_type('application/json')->set_output(json_encode($response));
} }
public function get_billfile($date=NULL)
{
ignore_user_abort(true);
$all_account = array_keys($this->config->item('alipay'));
foreach ($all_account as $key => $account) {
$this->set_merchant($account);
$this->download_billfile($date);
sleep(2);
}
return false;
}
/*! /*!
* 对账单 * 对账单
* 流程: * 流程:
@ -805,7 +838,7 @@ class AlipayTradeService extends CI_Controller
* @date 2017-10-10 * @date 2017-10-10
* @param [type] $date 按天yyyy-MM-dd;按月yyyy-MM * @param [type] $date 按天yyyy-MM-dd;按月yyyy-MM
*/ */
public function get_billfile($date=NULL) public function download_billfile($date=NULL)
{ {
ignore_user_abort(true); ignore_user_abort(true);
$request = new AlipayDataDataserviceBillDownloadurlQueryRequest(); $request = new AlipayDataDataserviceBillDownloadurlQueryRequest();
@ -822,8 +855,8 @@ class AlipayTradeService extends CI_Controller
} }
set_time_limit(0); set_time_limit(0);
$file = file_get_contents($response->$responseNode->bill_download_url); $file = file_get_contents($response->$responseNode->bill_download_url);
$file_name = FCPATH.'download_statement\settlement_files\alipay\\' . $date . ".zip"; $file_name = FCPATH.'download_statement\settlement_files\alipay\\' . $this->merchant_account . $date . ".zip";
$target = FCPATH.'download_statement\settlement_files\alipay\\' . $date ; $target = FCPATH.'download_statement\settlement_files\alipay\\' . $this->merchant_account . $date ;
file_put_contents($file_name, $file); file_put_contents($file_name, $file);
$biz_detail_table = array(); $biz_detail_table = array();
$biz_data_title = $this->bill_data_title(); $biz_data_title = $this->bill_data_title();
@ -855,6 +888,7 @@ class AlipayTradeService extends CI_Controller
} }
$row_arr[$title] = trim($row[$key]); $row_arr[$title] = trim($row[$key]);
} }
$row_arr['app_id'] = $this->appid;
$biz_detail_table[] = $row_arr; $biz_detail_table[] = $row_arr;
} }
@ -869,7 +903,7 @@ class AlipayTradeService extends CI_Controller
foreach ($biz_detail_table as $key => $row) { foreach ($biz_detail_table as $key => $row) {
$total_amount = 0;$trade_type='';$trade_no = '';$has_charge=null; $total_amount = 0;$trade_type='';$trade_no = '';$has_charge=null;
if (isset($row['finance_id'])) { if (isset($row['finance_id'])) {
if ($row['biz_type'] !== '其它') { if ($row['biz_type'] !== '其它' && $row['biz_type'] !== '在线支付') {
continue; continue;
} }
$total_amount = floatval($row['income'])>0 ? $row['income'] : $row['expenditure']; $total_amount = floatval($row['income'])>0 ? $row['income'] : $row['expenditure'];
@ -958,7 +992,7 @@ class AlipayTradeService extends CI_Controller
/** /**
* 验签方法 * 验签方法
* @param $arr 验签支付宝返回的信息,使用支付宝公钥。 * @param $arr 验签支付宝返回的信息,使用支付宝公钥。
* @return boolean * @return obj
*/ */
function check($arr){ function check($arr){
$ret = new ArrayObject(); $ret = new ArrayObject();
@ -1000,6 +1034,7 @@ class AlipayTradeService extends CI_Controller
* $size生成二维码的尺寸宽度和高度的值 * $size生成二维码的尺寸宽度和高度的值
* $lev可选参数纠错等级 * $lev可选参数纠错等级
* $margin生成的二维码离边框的距离 * $margin生成的二维码离边框的距离
* @example http://chart.apis.google.com/chart?chs=200x200&cht=qr&chld=L|0&chl=content
*/ */
function create_erweima($content, $size = '200', $lev = 'L', $margin= '0') { function create_erweima($content, $size = '200', $lev = 'L', $margin= '0') {
$content = urlencode($content); $content = urlencode($content);
@ -1019,8 +1054,14 @@ class AlipayTradeService extends CI_Controller
if (!empty($data['keywords'])) { if (!empty($data['keywords'])) {
$data['notelist'] = $this->Alipay_note_model->search_key($data['keywords']); $data['notelist'] = $this->Alipay_note_model->search_key($data['keywords']);
/** 手动查询通过收钱码的收款, 必须输入交易号 */ /** 手动查询通过收钱码的收款, 必须输入交易号 */
// if (true) { // debug: 0
if (empty($data['notelist'])) { if (empty($data['notelist'])) {
$query_pay = $this->query_pay($data["keywords"]); $query_pay = $this->query_pay($data["keywords"]);
if (empty($query_pay) || $query_pay->code === '40004') {
$this->set_merchant('trippest');
$query_pay = $this->query_pay($data["keywords"]);
}
$query_pay->app_id = $this->appid;
if ( ! empty($query_pay) && strval($query_pay->code)==="10000" if ( ! empty($query_pay) && strval($query_pay->code)==="10000"
&& in_array(strval($query_pay->trade_status), array("TRADE_SUCCESS", "TRADE_FINISHED")) ) { && in_array(strval($query_pay->trade_status), array("TRADE_SUCCESS", "TRADE_FINISHED")) ) {
$pay_type = $query_pay->total_amount>0 ? "pay" : "refund"; $pay_type = $query_pay->total_amount>0 ? "pay" : "refund";

@ -72,18 +72,36 @@ class PaymentService extends CI_Controller {
$this->permission->is_admin(true); $this->permission->is_admin(true);
$data = array(); $data = array();
$data['date'] = date('Y-m-d'); $data['date'] = date('Y-m-d');
$data['method_code'] = '15016';
$data["method_name"] = $this->code_brandname['15016'];
$data['notelist'] = $this->note_model->sendfail_note(false); $data['notelist'] = $this->note_model->sendfail_note(false);
array_walk($data["notelist"], 'PaymentService::set_brandname'); array_walk($data["notelist"], 'PaymentService::set_brandname');
$this->load->view("payment_list",$data); $this->load->view("payment_list",$data);
return; return;
} }
private $wxpay_app = array(
"wx749246dd935ca07b" => "APP",
"wx5d01021a6d515098" => "HLY", // "花梨鹰小程序", // 交行收款码
"wxd6c8dd69af5128cd" => "", // "NATIVE",
"wx7e605820faf98a05" => "Trippest-NATIVE",
"0" => "unknown",
);
public function set_brandname(&$ele) public function set_brandname(&$ele)
{ {
$ele->brand_name = "none"; $ele->brand_name = "none";
if ($this->code_brandname[$ele->OPN_accountMethod]) { if ($this->code_brandname[$ele->OPN_accountMethod]) {
$ele->brand_name = $this->code_brandname[$ele->OPN_accountMethod]; $ele->brand_name = $this->code_brandname[$ele->OPN_accountMethod];
} }
$raw = json_decode($ele->OPN_rawContent);
$wx_app = isset($raw->app_id) ? $raw->app_id : '0';
$wx_app = $wx_app!=='0' ? $wx_app : (isset($raw->appid) ? $raw->appid : '0');
$ele->app_name = "";
if ($this->wxpay_app[$wx_app]) {
$ele->app_name = $this->wxpay_app[$wx_app];
}
} }
// https://www.mycht.cn/webht.php/apps/pay/paymentservice/test_new_function?coli_sn=WY211210012 // https://www.mycht.cn/webht.php/apps/pay/paymentservice/test_new_function?coli_sn=WY211210012
@ -158,6 +176,19 @@ class PaymentService extends CI_Controller {
$ssje = $old_ssje===NULL ? $ssje : $old_ssje; $ssje = $old_ssje===NULL ? $ssje : $old_ssje;
$currencyCode = str_replace("CNY", "RMB", trim(mb_strtoupper($item->OPN_currency))); $currencyCode = str_replace("CNY", "RMB", trim(mb_strtoupper($item->OPN_currency)));
$currencyCode = mb_strtoupper(trim($currencyCode)); $currencyCode = mb_strtoupper(trim($currencyCode));
//根据订单号查找外联信息, 从临时表
$advisor_info_from_tmp = $this->account_model->get_order($orderid_info->orderid, false, 'M', $handpick);
/**
* 传统订单, 网站支付
* @author LYT
*/
if (empty($advisor_info) && ! empty($advisor_info_from_tmp) && $orderid_info->ordertype == 'T') {
// $this->note_model->update_send($item->OPN_SN, $item->OPN_transactionId, 'closed');
$this->note_model->set_invoice($item->OPN_SN, $advisor_info_from_tmp->COLI_ID . '_' . $orderid_info->ordertype);
continue;
}
if ( empty($advisor_info)) { if ( empty($advisor_info)) {
// record fail // record fail
$this->note_model->update_send($item->OPN_SN, $item->OPN_transactionId, 'sendfail'); $this->note_model->update_send($item->OPN_SN, $item->OPN_transactionId, 'sendfail');
@ -273,6 +304,16 @@ class PaymentService extends CI_Controller {
$opi_email = 'contact@arachina.com'; $opi_email = 'contact@arachina.com';
$opi_firstname = 'contact@arachina.com'; $opi_firstname = 'contact@arachina.com';
} }
/**
* 已经记录的再次遇到就忽略了
* @author LYT
*/
if (empty($opi_email) && $item->OPN_accountStatus === 'recorded') {
$this->note_model->update_send($item->OPN_SN, $item->OPN_transactionId, 'closed');
continue;
}
//没有外联信息表示订单未分配 //没有外联信息表示订单未分配
if (empty($opi_email) || empty($opi_firstname)) { if (empty($opi_email) || empty($opi_firstname)) {
$this->note_model->update_send($item->OPN_SN, $item->OPN_transactionId, 'sendfail'); $this->note_model->update_send($item->OPN_SN, $item->OPN_transactionId, 'sendfail');

@ -42,7 +42,7 @@ class Alipay_note_model extends CI_Model {
public function search_date($date) { public function search_date($date) {
$this->init(); $this->init();
$search_sql = " AND pn.ALI_noticeTime BETWEEN '$date 00:00:00' AND '$date 23:59:59' $search_sql = " AND pn.ALI_acquiringTime BETWEEN '$date 00:00:00' AND '$date 23:59:59'
OR isnull(ALI_sent,'') in ('sendfail','unsend','') "; OR isnull(ALI_sent,'') in ('sendfail','unsend','') ";
$this->search = $search_sql; $this->search = $search_sql;
$this->orderby=" ORDER BY CASE pn.ALI_sent WHEN 'sendfail' THEN 1 ELSE 2 END ,pn.ALI_sn DESC "; $this->orderby=" ORDER BY CASE pn.ALI_sent WHEN 'sendfail' THEN 1 ELSE 2 END ,pn.ALI_sn DESC ";
@ -127,7 +127,7 @@ class Alipay_note_model extends CI_Model {
)); ));
$insertid = $this->INFO->last_id('AlipayLog'); $insertid = $this->INFO->last_id('AlipayLog');
$ret = "SELECT TOP 1 * FROM AlipayLog WHERE ALI_dealId='$ALI_dealId' ORDER BY ALI_sn DESC "; $ret = "SELECT TOP 1 * FROM AlipayLog WHERE ALI_dealId='$ALI_dealId' ORDER BY ALI_sn DESC ";
return $this->INFO->query($ret)->row(); return $this->set_fundsource( $this->INFO->query($ret)->row());
} }
public function get_list() { public function get_list() {
@ -161,12 +161,29 @@ class Alipay_note_model extends CI_Model {
if ($this->topnum === 1) { if ($this->topnum === 1) {
if ($query->num_rows() > 0) { if ($query->num_rows() > 0) {
$row = $query->row(); $row = $query->row();
$this->set_fundsource($row);
return $row; return $row;
} else { } else {
return FALSE; return FALSE;
} }
} else { } else {
return $query->result(); $result = $query->result();
array_walk($result, 'Alipay_note_model::set_fundsource');
return $result;
}
}
private $code_fundsource = array(
"2021004129643221" => "Trippest",
"2017092108849921" => "", // "CHT",
);
public function set_fundsource(&$ele)
{
$ele->fundsource = "";
$raw = json_decode($ele->ALI_memo);
$app_id = isset($raw->app_id) ? $raw->app_id : '2017092108849921';
if ($this->code_fundsource[$app_id]) {
$ele->fundsource = $this->code_fundsource[$app_id];
} }
} }

@ -45,7 +45,7 @@ class Online_payment_account_model extends CI_Model {
$query = $this->HT->query($sql); $query = $this->HT->query($sql);
$result = $query->result(); $result = $query->result();
if ($handpick === TRUE) { if ($handpick === TRUE) {
$result = array($result[0]); $result = empty($result) ? [] : array($result[0]);
} }
} }

@ -85,6 +85,9 @@ class Online_payment_note_model extends CI_Model {
$this->init_query(); $this->init_query();
$this->topnum = $num; $this->topnum = $num;
$this->search = $method===null ? "" : " AND OPN_accountMethod=$method "; $this->search = $method===null ? "" : " AND OPN_accountMethod=$method ";
// 1小时前
$date = date("Y-m-d H:i:s", time() - 3600);
$this->search .= $num !== false ? " AND OPN_noticeSendTime < '$date' " : '';
$this->send = " AND OPN_noticeSendStatus='sendfail' "; $this->send = " AND OPN_noticeSendStatus='sendfail' ";
return $this->query_note(); return $this->query_note();
} }

@ -63,6 +63,9 @@
.input-group-btn{border: 1px solid #ccc;padding: 5px;} .input-group-btn{border: 1px solid #ccc;padding: 5px;}
.search-btn{cursor: pointer; background: url(//data.chinahighlights.com/css/images/global/site-search-button.png) no-repeat center center;} .search-btn{cursor: pointer; background: url(//data.chinahighlights.com/css/images/global/site-search-button.png) no-repeat center center;}
.center-block{display: block;margin: 0 auto;} .center-block{display: block;margin: 0 auto;}
.brand_text {color: #fff; padding: 2px 3px; border-radius: 4px;font-style: italic;}
.cht-color {background-color: #A31022;}
.trippest-color {background-color: #E83201;}
</style> </style>
<style type="text/css" media="screen and (max-width:767px)"> <style type="text/css" media="screen and (max-width:767px)">
.pay_form .form-group{padding-left: 0!important;padding-right: 0!important;} .pay_form .form-group{padding-left: 0!important;padding-right: 0!important;}
@ -141,6 +144,10 @@
<li class="col-sm-1 nopadding-L" style="overflow:hidden;word-break: break-all;height: 25px;"><?php echo ($key + 1); ?></li> <li class="col-sm-1 nopadding-L" style="overflow:hidden;word-break: break-all;height: 25px;"><?php echo ($key + 1); ?></li>
<li class="col-sm-6 nopadding-L" style="overflow:hidden;word-break: break-all;height: 25px;"> <li class="col-sm-6 nopadding-L" style="overflow:hidden;word-break: break-all;height: 25px;">
<span class="brand_text <?php echo strtolower(str_replace(" ","",$item->fundsource))."-color"; ?>"><?php echo $item->fundsource; ?></span>
<?php if ($item->ALI_dealId) { ?> <?php if ($item->ALI_dealId) { ?>
<a class="seen" target="_blank" href="/webht.php/apps/pay/AlipayTradeService/receipt/<?php echo $item->ALI_dealId; ?>"> <a class="seen" target="_blank" href="/webht.php/apps/pay/AlipayTradeService/receipt/<?php echo $item->ALI_dealId; ?>">
<?php } else {?> <?php } else {?>

@ -29,6 +29,9 @@
.modal {background-color: rgba(0,0,0,0.075);} .modal {background-color: rgba(0,0,0,0.075);}
.cht-color {background-color: #A31022;} .cht-color {background-color: #A31022;}
.trippest-color {background-color: #E83201;} .trippest-color {background-color: #E83201;}
.app-color {background-color: #EC3A4F;}
.hly-color {background-color: #009fe9;}
</style> </style>
<style type="text/css" media="screen and (max-width:767px)"> <style type="text/css" media="screen and (max-width:767px)">
.navbar-header h1 {display: block; font-size: 20px;} .navbar-header h1 {display: block; font-size: 20px;}
@ -199,12 +202,12 @@
<table class="table table-bordered table-hover"> <table class="table table-bordered table-hover">
<thead> <thead>
<tr> <tr>
<th>#</th> <th >#</th>
<th>主题</th> <th >主题</th>
<th class="hidden-xs">付款人</th> <th width="260" class="hidden-xs">subject</th>
<th class="hidden-xs">交易号</th> <th width="280" class="hidden-xs">交易号</th>
<th>收单时间</th> <th width="150">收单时间</th>
<th class="hidden-xs">通知时间</th> <th width="150" class="hidden-xs">通知时间</th>
<th>状态[通知/记录]</th> <th>状态[通知/记录]</th>
</tr> </tr>
</thead> </thead>
@ -216,10 +219,14 @@
<td><?php echo $key+1; ?></td> <td><?php echo $key+1; ?></td>
<td><span class="brand_text <?php echo strtolower(str_replace(" ","",$item->brand_name))."-color"; ?>"><?php echo $item->brand_name; ?></span> <td><span class="brand_text <?php echo strtolower(str_replace(" ","",$item->brand_name))."-color"; ?>"><?php echo $item->brand_name; ?></span>
<span class="brand_text <?php echo strtolower(str_replace(" ","",$item->OPN_fundSource))."-color"; ?>"><?php echo $item->OPN_fundSource; ?></span> <span class="brand_text <?php echo strtolower(str_replace(" ","",$item->OPN_fundSource))."-color"; ?>"><?php echo $item->OPN_fundSource; ?></span>
<?php echo $item->OPN_orderId . ' / ' . $item->OPN_orderAmount . $item->OPN_currency; ?></td> <?php echo $item->OPN_orderId . ' / ' . $item->OPN_orderAmount . $item->OPN_currency; ?></td>
<td class="hidden-xs"> <td class="hidden-xs">
<span class="brand_text <?php echo strtolower(str_replace(" ","",$item->app_name))."-color"; ?>"><?php echo $item->app_name; ?></span>
<?php <?php
echo $item->OPN_payerEmail; echo $item->OPN_subject;
?> ?>
</td> </td>
<td class="hidden-xs"><?php echo $item->OPN_transactionId; ?></td> <td class="hidden-xs"><?php echo $item->OPN_transactionId; ?></td>

@ -835,7 +835,7 @@ class Index extends CI_Controller {
$is_webhook = true; $is_webhook = true;
} }
if (empty($pn_txn_id) && true === $is_webhook) { if (empty($pn_txn_id) && true === $is_webhook) {
$this->Note_model->update_send($item->pn_txn_id, 'send', $item->pn_sn); $this->Note_model->update_send($item->pn_txn_id, 'send-wh', $item->pn_sn);
continue; continue;
} }
@ -916,11 +916,10 @@ class Index extends CI_Controller {
$advisor_info_from_tmp = $this->Paypal_model->get_order($orderid_info->orderid, false, 'M', $handpick); $advisor_info_from_tmp = $this->Paypal_model->get_order($orderid_info->orderid, false, 'M', $handpick);
/** /**
* 传统订单, 网站支付 * 传统订单, 网站支付
* 已经录入, 后来重新生成订单号, 不再邮件通知了
* @author LYT * @author LYT
*/ */
if (empty($advisor_info) && ! empty($advisor_info_from_tmp) && $orderid_info->ordertype == 'T') { if (empty($advisor_info) && ! empty($advisor_info_from_tmp) && $orderid_info->ordertype == 'T') {
$this->Note_model->update_send($item->pn_txn_id, 'closeRecord', $item->pn_sn); // $this->Note_model->update_send($item->pn_txn_id, 'closeRecord', $item->pn_sn);
$this->Note_model->set_invoice($item->pn_txn_id, $advisor_info_from_tmp->COLI_ID . '_' . $orderid_info->ordertype); $this->Note_model->set_invoice($item->pn_txn_id, $advisor_info_from_tmp->COLI_ID . '_' . $orderid_info->ordertype);
continue; continue;
} }
@ -1068,6 +1067,19 @@ class Index extends CI_Controller {
//根据订单号查找外联信息 //根据订单号查找外联信息
$advisor_info = $this->Paypal_model->get_order($orderid_info->orderid, false, $orderid_info->ordertype, $handpick); $advisor_info = $this->Paypal_model->get_order($orderid_info->orderid, false, $orderid_info->ordertype, $handpick);
//根据订单号查找外联信息, 从临时表
$advisor_info_from_tmp = $this->Paypal_model->get_order($orderid_info->orderid, false, 'M', $handpick);
/**
* 传统订单, 网站支付
* @author LYT
*/
if (empty($advisor_info) && ! empty($advisor_info_from_tmp) && $orderid_info->ordertype == 'T') {
// $this->Note_model->update_send($item->pn_txn_id, 'closeRecord', $item->pn_sn);
$this->Note_model->set_invoice($item->pn_txn_id, $advisor_info_from_tmp->COLI_ID . '_' . $orderid_info->ordertype);
continue;
}
//查不到订单信息 //查不到订单信息
if (empty($advisor_info)) { if (empty($advisor_info)) {
$this->Note_model->update_send($item->pn_txn_id, 'sendfail'); $this->Note_model->update_send($item->pn_txn_id, 'sendfail');
@ -1301,12 +1313,27 @@ class Index extends CI_Controller {
public function note_status_list($status) { public function note_status_list($status) {
$this->permission->is_admin(true); $this->permission->is_admin(true);
$data = array(); $data = array();
$data['date'] = $this->input->get('date');
empty($data['date']) ? $data['date'] = date('Y-m-d') : false;
$data['notelist'] = $this->Note_model->notestatus(200, $status); $data['notelist'] = $this->Note_model->notestatus(200, $status);
$this->load->view('n-header', $data); $this->load->view('n-header', $data);
$this->load->view('note_list'); $this->load->view('note_list');
$this->load->view('n-footer'); $this->load->view('n-footer');
} }
/**
* 按账户查找
* @author LYT
*/
public function note_account_list($status) {
$this->permission->is_admin(true);
$data = array();
$data['notelist'] = $this->Note_model->noteaccount(200, $status);
$this->load->view('n-header', $data);
$this->load->view('note_list');
$this->load->view('n-footer');
}
//获取note详情修改各项数据 //获取note详情修改各项数据
public function note_modal($pn_txn_id, $pn_id=false, $pn_invoice=false) { public function note_modal($pn_txn_id, $pn_id=false, $pn_invoice=false) {
$this->permission->is_admin(true); $this->permission->is_admin(true);

@ -55,22 +55,35 @@ class Note_model extends CI_Model {
public function notestatus($topnum = 2, $status = '') { public function notestatus($topnum = 2, $status = '') {
$this->init(); $this->init();
$this->topnum = $topnum; $this->topnum = $topnum;
$sql = " AND pn_memo NOT LIKE '{\"id\":\"WH-%' ";
$x_status = strtolower($status) === 'reversal' ? 'revers' : $status; $x_status = strtolower($status) === 'reversal' ? 'revers' : $status;
$sql1 = in_array(strtolower($status), ["completed", 'pending']) ? " AND (pn_payment_status='$status' ) " : ""; $sql1 = in_array(strtolower($status), ["completed", 'pending']) ? " AND (pn_payment_status='$status' ) " : "";
$sql2 = in_array(strtolower($status), ["refunded", "reversal"]) ? " AND (pn_payment_status like '%$x_status%' ) " : ""; $sql2 = in_array(strtolower($status), ["refunded", "reversal"]) ? " AND (pn_payment_status like '%$x_status%' ) " : "";
$sql3 = in_array(strtolower($status), ["others"]) ? " AND (pn_payment_status='failed' OR pn_payment_status='denied' ) " : ""; $sql3 = in_array(strtolower($status), ["others"]) ? " AND (pn_payment_status='failed' OR pn_payment_status='denied' ) " : "";
$sql4 = in_array(strtolower($status), ["case"]) ? " AND (pn_memo like '{\"txn_type\":\"new_case\"%' AND pn_mc_gross = '0' ) " : ""; $sql4 = in_array(strtolower($status), ["case"]) ? " AND (pn_memo like '{\"txn_type\":\"new_case\"%' AND pn_mc_gross = '0' ) " : "";
$this->pn_send = $sql1 . $sql2 . $sql3 . $sql4; $this->pn_send = $sql1 . $sql2 . $sql3 . $sql4 . $sql;
// $this->orderby=" ORDER BY pn_payment_date DESC, pn.pn_sn ASC "; // $this->orderby=" ORDER BY pn_payment_date DESC, pn.pn_sn ASC ";
$this->orderby=" ORDER BY CASE pn.pn_send WHEN 'sendfail' THEN 1 ELSE 2 END ,pn.pn_sn DESC "; $this->orderby=" ORDER BY CASE pn.pn_send WHEN 'sendfail' THEN 1 ELSE 2 END ,pn.pn_sn DESC ";
return $this->get_list(); return $this->get_list();
} }
public function noteaccount($topnum = 2, $account = '') {
$this->init();
$this->topnum = $topnum;
$x_str = strtolower($account);
$sql4 = " AND (pn_memo like '%\"business\":\"$x_str\"%') ";
$this->pn_send = $sql4;
return $this->get_list();
}
public function search_date($date) { public function search_date($date) {
$this->init(); $this->init();
$search_sql = " AND (pn.pn_datetime BETWEEN '$date 00:00:00' AND '$date 23:59:59' OR isnull(pn_send,'') in ('sendfail','unsend','')) "; $search_sql = " AND (pn.pn_datetime BETWEEN '$date 00:00:00' AND '$date 23:59:59' OR isnull(pn_send,'') in ('sendfail','unsend','')) AND pn_memo NOT LIKE '{\"id\":\"WH-%' "; // {"id":"WH-
$this->search = $search_sql; $this->search = $search_sql;
$this->orderby=" ORDER BY CASE pn.pn_send WHEN 'sendfail' THEN 1 ELSE 2 END ,pn.pn_sn DESC "; // $this->orderby=" ORDER BY CASE pn.pn_send WHEN 'sendfail' THEN 1 ELSE 2 END ,pn.pn_sn DESC ";
$this->orderby=" ORDER BY CASE WHEN pn.pn_send='sendfail' AND pn.pn_payment_status='Completed' THEN 1 WHEN pn.pn_send = 'sendfail' THEN 2 ELSE 9 END ,pn.pn_sn DESC ";
// WHEN pn.pn_send = 'sendfail' THEN 2
return $this->get_list(); return $this->get_list();
} }
@ -155,7 +168,27 @@ class Note_model extends CI_Model {
return FALSE; return FALSE;
} }
} else { } else {
return $query->result(); $result = $query->result();
array_walk($result, 'note_model::set_fundsource');
return $result;
}
}
private $code_fundsource = array(
"pay@trippest.com" => "Trippest", // business":"pay@trippest.com"
"pays@chinahighlights.com" => "", // "CHT",
"paypal@chinahighlights.com" => "2", // "CHT",
"0" => "unknown",
);
public function set_fundsource(&$ele)
{
$ele->fundsource = "";
$raw = json_decode($ele->pn_memo);
$business = isset($raw->business) ? $raw->business : (isset($raw->receiver_email) ? $raw->receiver_email : '0');
if ($this->code_fundsource[$business]) {
$ele->fundsource = $this->code_fundsource[$business];
}
if ( ! isset($raw->ipn_track_id) && (isset($raw->id) && strpos($raw->id, "WH-") === 0)) {
$ele->fundsource = '';
} }
} }

@ -49,6 +49,13 @@
.trigger_export_btn{position: absolute;top: 0;left: 17%;} .trigger_export_btn{position: absolute;top: 0;left: 17%;}
.modal-dialog{max-width: 1024px;} .modal-dialog{max-width: 1024px;}
</style> </style>
<style>
.brand_text {color: #fff; padding: 2px 3px; border-radius: 4px;font-style: italic;}
.webhooks-color{background-color: dimgrey; }
.unknown-color{background-color: dimgray; }
.cht-color {background-color: #A31022;}
.trippest-color {background-color: #E83201;}
</style>
<!-- Button trigger modal --> <!-- Button trigger modal -->
<button type="button" class="btn btn-primary trigger_export_btn hidden-xs" data-toggle="modal" data-target="#exampleModal"> <button type="button" class="btn btn-primary trigger_export_btn hidden-xs" data-toggle="modal" data-target="#exampleModal">
导出收款记录 &gt; 导出收款记录 &gt;
@ -210,6 +217,9 @@ echo "<option value=\"$vf->TEL_SN@" . strstr($vf->TEL_transactionDate, " ", true
<li class="col-sm-1 nopadding-L" style="overflow:hidden;word-break: break-all;height: 25px;"><?php echo ($key + 1); ?></li> <li class="col-sm-1 nopadding-L" style="overflow:hidden;word-break: break-all;height: 25px;"><?php echo ($key + 1); ?></li>
<li class="col-sm-7 nopadding-L" style="overflow:hidden;word-break: break-all;height: 25px;"> <li class="col-sm-7 nopadding-L" style="overflow:hidden;word-break: break-all;height: 25px;">
<span class="brand_text <?php echo strtolower(str_replace(" ","",$item->fundsource))."-color"; ?>"><?php echo $item->fundsource; ?></span>
<a class="seen" target="_blank" href="<?php echo site_url('apps/paypal/index/detail_ht/' . $item->pn_txn_id); ?>"> <a class="seen" target="_blank" href="<?php echo site_url('apps/paypal/index/detail_ht/' . $item->pn_txn_id); ?>">
<?php echo htmlentities($item->pn_invoice) . ' / ' . $item->pn_mc_gross . $item->pn_mc_currency . ' / ' . $item->pn_payer; ?> <?php echo htmlentities($item->pn_invoice) . ' / ' . $item->pn_mc_gross . $item->pn_mc_currency . ' / ' . $item->pn_payer; ?>
</a></li> </a></li>
@ -226,7 +236,7 @@ echo "<option value=\"$vf->TEL_SN@" . strstr($vf->TEL_transactionDate, " ", true
$raw_content = json_decode($item->pn_memo); $raw_content = json_decode($item->pn_memo);
$show_record = '查看录入状态'; $show_record = '查看录入状态';
if ($item->pn_send == 'send' || substr($item->pn_send, 0, 5) == "send-") { if ($item->pn_send == 'send' || substr($item->pn_send, 0, 5) == "send-") {
$show_send = $item->pn_send; $show_send = $item->pn_send . " / " . str_ireplace('completed', '', $item->pn_payment_status);
} elseif ($item->pn_send == 'closeRecord') { } elseif ($item->pn_send == 'closeRecord') {
$show_send = $show_record = '已忽略'; $show_send = $show_record = '已忽略';
} else if (strtolower($item->pn_payment_status) == 'completed') { } else if (strtolower($item->pn_payment_status) == 'completed') {

Loading…
Cancel
Save