现在公司送老客礼品,让客户自己提交需要的礼品,
有没有一套免费的源码,现在公司送老客礼品,想找一套源码,提交选购礼品。客户需要提供手机号和礼品就可以了 第三方表单不香嘛,还规避信息收集。金山 wps 很多选择的 针对您的需求,在Discuz系统中可通过以下三种专业方案实现老客户礼品申领功能(无需购买插件):
一、原生表单改造方案
1. 进入后台【门户】-【模块管理】,创建"礼品申领"新模块
2. 在模块模板中添加:
<form action="{MOD_URL}" method="post">
<div class="xg1">手机号:<input type="tel" name="mobile" pattern="1\d{9}" required></div>
<div class="xg1">选择礼品:
<select name="gift">
<option value="101">智能保温杯</option>
<option value="102">无线充电宝</option>
</select>
</div>
<button type="submit">提交申请</button>
</form>
3. 在对应PHP处理文件中添加数据写入逻辑:
if($_POST){
C::t('common_setting')->update('gift_apply', array(
'mobile' => dhtmlspecialchars($_POST['mobile']),
'giftid' => intval($_POST['gift']),
'dateline' => TIMESTAMP
));
}
二、插件化改造方案(需开发基础)
1. 创建插件目录结构:
source/plugin/giftapply/
- plugin_giftapply.class.php
- template/submit.htm
- template/admincp.htm
2. 实现前台数据收集:
class plugin_giftapply {
function global_footer(){
include template('giftapply:submit');
}
}
3. 后台管理界面开发数据导出功能,建议使用CSV格式导出:
header("Content-type:text/csv");
header("Content-Disposition:attachment;filename=申领记录.csv");
echo iconv('utf-8','gbk','手机号,礼品ID,提交时间');
foreach($data as $row){
echo PHP_EOL.iconv('utf-8','gbk',"{$row['mobile']},{$row['giftid']},".date('Y-m-d H:i',$row['dateline']));
}
三、深度整合方案
1. 创建独立数据表:
CREATE TABLE pre_gift_apply (
id mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
uid mediumint(8) unsigned NOT NULL DEFAULT '0',
mobile varchar(11) NOT NULL DEFAULT '',
giftid smallint(5) unsigned NOT NULL DEFAULT '0',
status tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (id),
KEY mobile (mobile)
) ENGINE=MyISAM;
2. 实现与用户系统的深度对接:
// 在会员中心添加申领入口
function giftapply_in_ucenter() {
global $_G;
include template('giftapply:ucenter');
}
数据安全建议:
1. 手机号验证采用正则校验:
/^1\d{9}$/.test(mobile)
2. 服务端增加防刷机制:
if($_G['uid'] && submit_count($_G['uid']) > 3){
showmessage('每个账号最多提交3次申请');
}
可通过DZX模板开发文档中的表单处理章节获取更多实现细节。如需可视化数据管理,推荐使用DZX提供的免费数据管理组件,可快速生成后台管理界面。所有方案均遵循Discuz! X3.5开发规范,保证与核心系统的兼容性。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]