分享好友 教程资讯首页 频道列表

DESTOON会员服务购买和升级改成月付模式

2023-10-08 17:001340

用过destoon的站长都知道,destoon的会员购买和升级模式是按年付费的,有很多用户不愿意一次花很多钱买年费,所以,我们就改成月付模式,但destoon默认不支持月付,没办法,只能搞个小二开了

其实也很简单,修改部分php代码和模板就可以,下面以默认程序和默认模板为例(如果你对应的程序文件和模板有修改过,请对照教程自行修改,记得先备份


1、修改 /module/member/account.inc.php  ,找到 case 'vip': 


  1. case 'vip':
  2. $user = userinfo($_username);
  3. if(!$MG['vip'] || !$MG['fee'] || $user['totime'] < $DT_TIME) dheader('?action=index');
  4. $auto = 0;
  5. $auth = isset($auth) ? decrypt($auth, DT_KEY.'CG') : '';
  6. if($auth && substr($auth, 0, 4) == 'vip|') {
  7. $auto = $submit = 1;
  8. $year = intval(substr($auth, 4));
  9. }
  10. if($submit) {
  11. $year = intval($year);
  12. in_array($year, array(1, 2, 3)) or $year = 1;
  13. $fee = dround($MG['fee']*$year);
  14. $fee > 0 or message($L['vip_msg_fee']);
  15. $fee <= $_money or message($L['money_not_enough']);
  16. if($fee <= $DT['quick_pay']) $auto = 1;
  17. if(!$auto) {
  18. is_payword($_username, $password) or message($L['error_payword']);
  19. }
  20. $totime = $user['totime'] + 365*86400*$year;
  21. money_add($_username, -$fee);
  22. money_record($_username, -$fee, $L['in_site'], 'system', $L['vip_renew'], lang($L['vip_record'], array($year, timetodate($totime, 3))));
  23. $db->query("UPDATE {$DT_PRE}company SET totime=$totime WHERe userid=$_userid");
  24. dmsg($L['vip_msg_success'], '?action=index');
  25. } else {
  26. $havedays = ceil(($user['totime'] - $DT_TIME)/86400);
  27. $todate = timetodate($user['totime'], 3);
  28. $year = 1;
  29. if($sum > 1 && $sum < 4) $year = $sum;
  30. $fee = dround($MG['fee']*$year);
  31. $head_title = $L['vip_renew'];
  32. }
  33. break;


把它换成



  1. case 'vip':
  2. $user = userinfo($_username);
  3. if(!$MG['vip'] || !$MG['fee'] || $user['totime'] < $DT_TIME) dheader('?action=index');
  4. $months = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 24, 36, 48, 60);  //2020.05.02
  5. $auto = 0;
  6. $monthsxh = 12;  //2020.05.02
  7. $auth = isset($auth) ? decrypt($auth, DT_KEY.'CG') : '';
  8. if($auth && substr($auth, 0, 4) == 'vip|') {
  9. $auto = $submit = 1;
  10. //$year = intval(substr($auth, 4));
  11. $month = intval($tmp[2]);  //2020.05.02
  12. }
  13. if($submit) {
  14. //$year = intval($year);
  15. //in_array($year, array(1, 2, 3)) or $year = 1;
  16. //$fee = dround($MG['fee']*$year);
  17. $month = intval($month);  //2020.05.02
  18. in_array($month, $months) or $month = 1;  //2020.05.02
  19. $fee = dround($MG['fee']/$monthsxh*$month);  //2020.05.02
  20. $fee > 0 or message($L['vip_msg_fee']);
  21. $fee <= $_money or message($L['money_not_enough']);
  22. if($fee <= $DT['quick_pay']) $auto = 1;
  23. if(!$auto) {
  24. is_payword($_username, $password) or message($L['error_payword']);
  25. }
  26. //$totime = $user['totime'] + 365*86400*$year;
  27. $totime = $user['totime'] + 86400*30*$month;  //2020.05.02
  28. money_add($_username, -$fee);
  29. //money_record($_username, -$fee, $L['in_site'], 'system', $L['vip_renew'], lang($L['vip_record'], array($year, timetodate($totime, 3))));
  30. money_record($_username, -$fee, $L['in_site'], 'system', $L['vip_renew'], lang($L['vip_record'], array($month, timetodate($totime, 3))));  //2020.05.02
  31. $db->query("UPDATE {$DT_PRE}company SET totime=$totime WHERe userid=$_userid");
  32. dmsg($L['vip_msg_success'], '?action=index');
  33. } else {
  34. $havedays = ceil(($user['totime'] - $DT_TIME)/86400);
  35. $todate = timetodate($user['totime'], 3);
  36. //$year = 1;
  37. //if($sum > 1 && $sum < 4) $year = $sum;
  38. //$fee = dround($MG['fee']*$year);
  39. $month = 1;  //2020.05.02
  40. if($sum > 1 && $sum < 4) $month = $sum;  //2020.05.02
  41. $fee = dround($MG['fee']*$month);  //2020.05.02
  42. $head_title = $L['vip_renew'];
  43. }
  44. break;



图例:



2、总后台的显示修改

找到 /module/member/admin/template/group_edit.tpl.php   搜索 “收费设置”  把年改成 月

如图:



3、修改升级提交后 后台审核时的到期时间以 月 为单位

找到/module/member/admin/grade.inc.php  搜索 $days = 364; 改成 $days = 30;

如图:


完成这3步,php就修改完成了。


接着修改前端模板部分(我们以默认模板为例)

1、打开 template/default/member/account.htm  找打  服务费用 


  1. <tr>
  2. <td class="tl">服务费用</td>
  3. <td class="tr"><span class="f_red">{$MG[fee]}</span> {$DT[money_unit]}/年</td>
  4. </tr>
  5. <tr>
  6. <td class="tl"><span class="f_red">*</span> 续费年限</td>
  7. <td class="tr">
  8. <select name="year" id="year"$('#money').html(this.value*{$MG[fee]});">
  9. <option value="1"<?php if($year == 1) echo ' selected';?>>1年</option>
  10. <option value="2"<?php if($year == 2) echo ' selected';?>>2年</option>
  11. <option value="3"<?php if($year == 3) echo ' selected';?>>3年</option>
  12. </select>
  13. </td>
  14. </tr>




换成


  1. <tr>
  2. <td class="tl">服务费用</td>
  3. <td class="tr"><span class="f_red">{$MG[fee]}</span> {$DT[money_unit]}/月</td>
  4. </tr>
  5. <tr>
  6. <td class="tl"><span class="f_red">*</span> 续费期限</td>
  7. <td class="tr">
  8. <select name="month" id="month" onchange="$('#money').html(this.value*{$MG[fee]});">
  9. <option value="1"<?php if($month == 1) echo ' selected';?>>1月</option>
  10. <option value="2"<?php if($month == 2) echo ' selected';?>>2月</option>
  11. <option value="3"<?php if($month == 3) echo ' selected';?>>3月</option>
  12. <option value="4"<?php if($month == 4) echo ' selected';?>>4月</option>
  13. <option value="5"<?php if($month == 5) echo ' selected';?>>5月</option>
  14. <option value="6"<?php if($month == 6) echo ' selected';?>>6月</option>
  15. <option value="7"<?php if($month == 7) echo ' selected';?>>7月</option>
  16. <option value="8"<?php if($month == 8) echo ' selected';?>>8月</option>
  17. <option value="9"<?php if($month == 9) echo ' selected';?>>9月</option>
  18. <option value="10"<?php if($month == 10) echo ' selected';?>>10月</option>
  19. <option value="11"<?php if($month == 11) echo ' selected';?>>11月</option>
  20. <option value="12"<?php if($month == 12) echo ' selected';?>>12月</option>
  21. <option value="13"<?php if($month == 24) echo ' selected';?>>24月</option>
  22. <option value="14"<?php if($month == 36) echo ' selected';?>>36月</option>
  23. <option value="15"<?php if($month == 48) echo ' selected';?>>48月</option>
  24. <option value="16"<?php if($month == 60) echo ' selected';?>>60月</option>
  25. </select>
  26. </td>
  27. </tr>




继续找 大约 293行 {elseif $action == 'vip'}

  1. {elseif $action == 'vip'}
  2. function check() {
  3. var money = $('#year').val()*{$MG[fee]};
  4. if(money > {$_money}) {
  5. Go('charge.php?action=pay&reason=vip|'+$('#year').val()+'&amount='+money+'&bank='+$('#bank').val());
  6. return false;
  7. }
  8. if(money > {$DT[quick_pay]}){
  9. if(Dd('password').value.length < 6) {
  10. Dmsg('请填写支付密码', 'password');
  11. return false;
  12. }
  13. }
  14. return true;
  15. }
  16. window.setInterval(
  17. function() {
  18. var money = $('#year').val()*{$MG[fee]};
  19. if(money > {$_money} || {$_money} < 0.01) {
  20. $('#mymoney').hide();$('#paytype').show();$('#payword').hide();
  21. } else {
  22. $('#mymoney').show();$('#paytype').hide();if(money > {$DT[quick_pay]}){$('#payword').show();}
  23. }
  24. },
  25. 500);
  26. {/if}

改成

  1. {elseif $action == 'vip'}
  2. function check() {
  3. var money = $('#month').val()*{$MG[fee]};
  4. if(money > {$_money}) {
  5. Go('charge.php?action=pay&reason=vip|'+$('#month').val()+'&amount='+money+'&bank='+$('#bank').val());
  6. return false;
  7. }
  8. if(money > {$DT[quick_pay]}){
  9. if(Dd('password').value.length < 6) {
  10. Dmsg('请填写支付密码', 'password');
  11. return false;
  12. }
  13. }
  14. return true;
  15. }
  16. window.setInterval(
  17. function() {
  18. var money = $('#month').val()*{$MG[fee]};
  19. if(money > {$_money} || {$_money} < 0.01) {
  20. $('#mymoney').hide();$('#paytype').show();$('#payword').hide();
  21. } else {
  22. $('#mymoney').show();$('#paytype').hide();if(money > {$DT[quick_pay]}){$('#payword').show();}
  23. }
  24. },
  25. 500);
  26. {/if}

2、打开 template/default/member/grade.htm  找到 收费模式 ,如

  1. <tr align="center">
  2. <td>收费模式</td>
  3. {loop $GROUPS $k $v}{if $k > 4}
  4. <td>{if $v[fee_mode]}<span class="f_red">包年</span>{else}<span class="f_green">免费</span>{/if}</td>
  5. {/if}{/loop}
  6. </tr>
  7.  
  8. <tr align="center">
  9. <td>年 费</td>
  10. {loop $GROUPS $k $v}{if $k > 4}
  11. <td>{if $v[fee]}<span class="f_price">{$DT[money_sign]}<strong>{$v[fee]}</strong>{$DT[money_unit]}/年</span>{else}--{/if}</td>
  12. {/if}{/loop}
  13. </tr>

改成

  1. <tr align="center">
  2. <td>收费模式</td>
  3. {loop $GROUPS $k $v}{if $k > 4}
  4. <td>{if $v[fee_mode]}<span class="f_red">包月</span>{else}<span class="f_green">免费</span>{/if}</td>
  5. {/if}{/loop}
  6. </tr>
  7.  
  8. <tr align="center">
  9. <td>月 费</td>
  10. {loop $GROUPS $k $v}{if $k > 4}
  11. <td>{if $v[fee]}<span class="f_price">{$DT[money_sign]}<strong>{$v[fee]}</strong>{$DT[money_unit]}/月</span>{else}--{/if}</td>
  12. {/if}{/loop}
  13. </tr>

这样前端,后台就修改完成了 ,自己去体验吧,图为例





反对 0
举报 0
收藏 0
打赏 0
评论 0
如何生成背景透明的微信小程序二维码
如何生成背景透明的微信小程序二维码透明背景参数is_hyaline 是否需要透明底色, is_hyaline 为true时,生成透明底色的小程序码publicfunctiongetQRCodeB($scene

0评论2023-10-08181

destoon标签调取相应的信息内容及图片
本教程合适于没有分表的情况下第一步:打开根目录/include/tag.func.php找到 isset($showpage) or $showpage = 0; 这句。在其上行或其下行添上(isset($showconte

0评论2023-10-08185

DESTOON搜索关键词记录过滤拼音以及全英文搜索
网站搜索关键词记录总有英文的恶意关键词搜索提交,导致destoon后台的搜索关键词记录一大堆垃圾无效的搜索关键词,所以就重新在官方默认的基础上修改过滤英文及

0评论2023-10-08151

DESTOON系统框架根据标题调取百度下拉+淘宝下拉词函数,增强页面相关性
写了一个destoon根据标题调取百度下拉+淘宝下拉词函数,增强页面相关性,也可以用于自动分词,提取相关词,适用于destoon任意版本,废话不多说。上代码!首先在/

0评论2023-10-08145