网站开发 · 2025年4月26日

zencart在pc与移动端显示不同的支付方式

需求: zencart根据在pc端 \ 移动应用端 \ 移动网页端 , 显示不同的支付方式:   在includes/templates/template_default/templates/下修改  tpl_checkout_payment_default.php文件, 先根据 userAgent判断是否是移动应用访问 , 在根据条件判断是否显示支付选项:  1.修改支付选项前面的radiobuttion是否显示,将   <?php echo zen_draw_radio_field(‘payment’, $selection[$i][‘id’], ($selection[$i][‘id’] == $_SESSION[‘payment’] ? true : false), ‘id=”pmt-‘.$selection[$i][‘id’].'”‘); ?> 1 修改为:   <?php  if(strpos($_SERVER[‘HTTP_USER_AGENT’],’FLAG_APP’) !== false){//如果不为false,说明是移动应用访问     if ($selection[$i][‘id’] == ‘alipaydirect’) {//如果是alipayapp     //什么 都不做     }else if ($selection[$i][‘id’] == ‘alipayapp’){//如果是alipaydirect,设置为默认         echo zen_draw_radio_field(‘payment’, $selection[$i][‘id’], ($selection[$i][‘id’] == $_SESSION[‘payment’] ? true : false), ‘id=”pmt-‘.$selection[$i][‘id’].'” checked=”checked”‘);      }else{         echo zen_draw_radio_field(‘payment’, $selection[$i][‘id’], ($selection[$i][‘id’] == $_SESSION[‘payment’] ? true : false), ‘id=”pmt-‘.$selection[$i][‘id’].'”‘);      } }else{     if ($selection[$i][‘id’] == ‘alipayapp’) {//如果是alipayapp         //什么 都不做     }else if ($selection[$i][‘id’] == ‘alipaydirect’){//如果是alipaydirect,设置为默认         echo zen_draw_radio_field(‘payment’, $selection[$i][‘id’], ($selection[$i][‘id’] == $_SESSION[‘payment’] ? true : false), ‘id=”pmt-‘.$selection[$i][‘id’].'” checked=”checked”‘);     }else{         echo zen_draw_radio_field(‘payment’, $selection[$i][‘id’], ($selection[$i][‘id’] == $_SESSION[‘payment’] ? true : false), ‘id=”pmt-‘.$selection[$i][‘id’].'”‘);     } } ?>   修改radiobuttion后面的支付方式logo和文字是否显示:  将: <label for=”pmt-<?php echo $selection[$i][‘id’]; ?>” class=”radioButtonLabel”><?php echo $selection[$i][‘module’]; ?>   改为   <!– 下面判断lable的是判断是否显示alipaydirect的图标和名称  –> <?php if(strpos($_SERVER[‘HTTP_USER_AGENT’],’FLAG_APP’) !== false){//如果不为false,说明是移动应用访问 ?> <label for=”pmt-<?php if ($selection[$i][‘id’] !== ‘alipaydirect’){  echo $selection[$i][‘id’]; }?>” class=”radioButtonLabel”><?php  if ($selection[$i][‘id’] !== ‘alipaydirect’){ echo $selection[$i][‘module’];} ?></label> <?php }else{?> <label for=”pmt-<?php if ($selection[$i][‘id’] !== ‘alipayapp’){  echo $selection[$i][‘id’]; }?>” class=”radioButtonLabel”><?php  if ($selection[$i][‘id’] !== ‘alipayapp’){ echo $selection[$i][‘module’];} ?></label> <?php }?>     注:  1 . 以上的 selection[i][‘id’] == ‘alipaydirect’ , 里面的alipaydirect是关键 , 即支付方式  取includes\modules\payment\ 文件夹下相应通道接口文件名即可。  如 paypal.php,alipayapp.php 的为 paypal,alipayapp   <?php if ($selection[$i][‘id’] == ‘paypal’) { ?>   <?php if ($selection[$i][‘id’] == ‘alipayapp’) { ?>   以上的