网站实现邀请码功能有很多很多用处,具体什么用处,相信大家都知道,就不多说了,直接说怎么实现吧。以下代码来自 @阿树工作室 。

思路:

需要新建一个数据表来保存邀请码。

后台需要两个页面:邀请码列表、添加邀请码。

添加邀请码的时候需要能设置前缀,一次生成多个邀请码,邀请码长度可自定义,每个邀请码使用次数可设置。

数据表

code:邀请码、max:邀请码使用次数、users:使用这个验证码的所有用户、status:验证码是否可用。

数据库操作部分代码包括:1. 建立数据库。2.对数据的获取、增加、删除、更改等操作。

//第一次启用主题时执行

function ashuwp_load_theme() {

global $pagenow;

if ( is_admin() && 'themes.php' == $pagenow && isset( $_GET['activated'] ) ){

ashuwp_invitation_code_install();

}

}

add_action( 'load-themes.php', 'ashuwp_load_theme' );

//建立数据表

function ashuwp_invitation_code_install(){

global $wpdb;

$table_name = $wpdb->prefix . 'invitation_code';

if( $wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name ) :

$sql = " CREATE TABLE `".$wpdb->prefix."invitation_code` (

`id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY ,

`code` varchar(40),

`max` INT NOT NULL,

`users` varchar(20),

`status` tinyint

) ENGINE = MYISAM DEFAULT CHARSET=utf8;";

require_once(ABSPATH . 'wp-admin/includes/upgrade.php');

dbDelta($sql);

endif;

}

//插入数据

function ashuwp_insert_invitation_code( $code, $max = 1, $users, $status){

global $wpdb;

if($code==''){

return false;

}

$code = trim($code);

$code_exists = ashuwp_check_invitation_code($code);

if(!$code_exists){

$insert = "insert into ".$wpdb->prefix."invitation_code (code,max,users,status) values( '$code', '$max', '','1')";

$wpdb->query($insert);

return true;

}else{

return false;

}

}

//检查邀请码是否已存在

function ashuwp_check_invitation_code( $code ){

global $wpdb;

$sql = "select * from ".$wpdb->prefix."invitation_code where code='$code'";

$result = $wpdb->get_results($sql);

if(!empty($result)){

return true;

}else{

return false;

}

}

//获取邀请码

function ashuwp_get_invitation_code($per_page=50, $page=1){

global $wpdb;

$page = (int)$page;

$per_page = (int)$per_page;

if(!$page){

$page = 1;

}

if(!$per_page){

$per_page = 50;

}

$begin = $per_page*($page-1);

$end = $per_page*$page;

$sql = "select * from ".$wpdb->prefix."invitation_code limit $begin,$end";

$results = $wpdb->get_results($sql,'ARRAY_A');

return $results;

}

//邀请码的删除、启用、禁用。

function ashuwp_operation_invitation_code( $id, $action ){

global $wpdb;

$id = (int)$id;

if(!$id){

return false;

}

if(!in_array($action,array('delete','deactive','active'))){

return false;

}

if($action =='delete'){

$sql = "delete from ".$wpdb->prefix ."invitation_code where id='$id'";

}

if($action =='deactive'){

$sql = "update ".$wpdb->prefix ."invitation_code set status=0 where id='$id'";

}

if($action =='active'){

$sql = "update ".$wpdb->prefix ."invitation_code set status=1 where id='$id'";

}

$result = $wpdb->query($sql);

if($result){

return true;

}else{

return false;

}

}

网站后台

网站后台部分代码包括:1. 邀请码列表页面。2. 邀请码增加页面。

class ashuwp_invitation_code_admin {

static public $instance;

public function __construct(){

add_action( 'admin_menu', array(&$this, 'ashuwp_invitation_code_menu') );

}

function ashuwp_invitation_code_menu(){

add_menu_page( '邀请码', '邀请码', 'manage_options', 'invitation_code', array(&$this, 'invitation_code_list'),'',27);

add_submenu_page('invitation_code', '添加邀请码', '添加邀请码', 'manage_options', 'invitation_code_add', array(&$this, 'invitation_code_add'));

}

function invitation_code_list(){

if( isset($_GET['code_action']) && in_array($_GET['code_action'],array('delete','deactive','active')) && isset($_GET['code_id']) ){

$code_id = (int)$_GET['code_id'];

if(!$code_id){

return;

}

$result = ashuwp_operation_invitation_code( $code_id, $_GET['code_action'] );

}

$code_lists = ashuwp_get_invitation_code(999,1);

?>

邀请码

添加


if(isset($result)){

if($result){

?>

操作成功。

}else{

?>

操作失败。

}

}

?>

  • 全部(<?php echo count($code_lists); ?>)

ID邀请码统计(最大使用数/已使用)用户操作

if($code_lists){

foreach($code_lists as $code){

$users = array();

if(!empty($code['users'])){

$users = explode( ',', $code['users'] );

}

$used = count($users);

?>

<?php echo $code['id']; ?>

if(empty($code['status']) || !$code['status']){

echo '-已禁用';

}

?>

foreach( $users as $user_id ){

$user = get_user_by('id', $user_id);

if(!empty($user)){

?>

<?php echo $user->user_login; ?>,

}

}

?>

删除

if(empty($code['status']) || !$code['status']){

?>

启用

}else{

?>

禁用

}

?>

}

}

?>

ID邀请码统计用户操作

}

function invitation_code_add(){

$data_codes = ashuwp_get_invitation_code(999,1);

$code_list = array();

foreach($data_codes as $code){

$code_list[] = $code['code'];

}

if(isset($_REQUEST['submit']) && isset($_REQUEST['ashuwp_invitation_code_field']) && check_admin_referer('ashuwp_invitation_code_action', 'ashuwp_invitation_code_field') ) {

$code_prefix = '';

if(!empty($_POST['code_prefix'])){

$code_prefix = trim($_POST['code_prefix']);

}

$code_length = '';

if(!empty($_POST['code_length'])){

$code_length = (int)$_POST['code_length'];

}

if(!$code_length){

$code_length = 8;

}

$code_number = 1;

if(!empty($_POST['code_number'])){

$code_number = (int)$_POST['code_number'];

}

if(!$code_number){

$code_number = 1;

}

$code_counter = '';

if(!empty($_POST['code_counter'])){

$code_counter = (int)$_POST['code_counter'];

}

if(!$code_counter){

$code_counter = 1;

}

$i=1;

$code_tem = array();

while ( $i <= $code_number ){

$tem = strtoupper( $code_prefix . wp_generate_password( $code_length, false ) );

if(!in_array($tem,$code_list)){

$i++;

$code_tem[] = $tem;

ashuwp_insert_invitation_code( $tem, $code_counter, '', 1);

}

}

}

?>

添加邀请码

添加


if(!empty($code_tem)){

?>

邀请码添加成功:

foreach($code_tem as $text){

echo '

'.$text.'

';

}

?>

}

?>

邀请码前缀

前缀可不填。

邀请码字符长度

字符长度不包括前缀,默认8个字符。

邀请码个数

本次生成多少个邀请码,默认1个。

允许使用的次数

每个邀请码允许使用的次数,默认1次。

}

}

$invitation_code = new ashuwp_invitation_code_admin();

效果展示

1. 增加邀请码

2. 邀请码列表

上面范例代码,仅做参考使用,可根据实际自行优化,具体如何使用邀请码也请自行斟酌。

php邀请码演示代码,WordPress主题纯代码实现邀请码功能相关推荐

  1. 如何禁止WordPress主题纯英文评论教程

    据观察,WordPress 主题的博客中,大部分的垃圾评论都是全英文评论或者和含有日文字符的评论. 如果能够禁止这些评论的提交,也就基本上达到了 WordPress 主题防止垃圾评论的目的了. 那么, ...

  2. 2023最新【Zibll/子比主题】V7.1版本源码-开心版-Wordpress主题

    支持最新版wordpress6.2,压缩包内有详细安装教程 V7.1更新日志: 小工具模块:幻灯片模块新增视频背景功能 导航栏幻灯片新增视频背景功能 导航栏幻灯片新增叠加搜索组件功能 导航栏幻灯片新增 ...

  3. java图片灯箱,[WordPress教程]纯代码实现图片灯箱lightbox效果

    今天在群里唠嗑的时候,有个朋友问有没有推荐的图片点击放大预览的WordPress插件,我心想这不就是图片灯箱的效果吗,这玩意儿还要用插件吗? 于是便本着助人为乐的心态给答应他用代码整一个,其实也挺简单 ...

  4. php自动轮播图代码,教你纯代码实现wordpress主题幻灯片轮播图片功能小工具

    class Yu_banner extends WP_Widget { //继承了 WP_Widget 这个类来创建新的小工具(Widget) function Yu_banner() { // 主要 ...

  5. php源码 自定义字段,wordpress主题制作:设置自定义选项字段

    在主题制作时,有时需要将一些文字和样式提出来,做成一个选项给用户设置. customize_register这个可以帮到你 定义一个可编辑内容,并且可以设置颜色.代码如下,必须在functions.p ...

  6. WordPress主题 酱茄模块源码

    使用说明: 方法1:下载的压缩包先解压 → 重新压缩jqfree为zip → wp后台 → 外观/主题/添加 → 上传安装并启用: 方法2:当然也可以FTP上传到/wp-content/themes目 ...

  7. WordPress主题LensNews1.8模板源码,WP多功能新闻积分商城主题

    介绍 LensNews是一款新闻.画廊.视频.商城.积分和用户中心的多功能CMS主题,添加了众多功能和优化,响应式.多自定义类型文章.文章点赞.文章收藏.弹窗登录.简繁体切换.AJAX加载更多.图片延 ...

  8. 纯代码实现的分割线____简单而有效的html画线代码hr实例,纯代码实现的分割线____简单而有效的html画线代码“hr”实例...

    代码: 代码: 代码: 代码: 用代码生成文章分割线 2006-09-21 16:27:27 大 中 小 在前面的文章里,我曾介绍过用线条图来装饰文章的方法.一.实例与代码 1.两头渐变透明: 代码 ...

  9. php 操作 腾讯企业邮箱设置发邮件,纯代码实现WordPress使用腾讯企业邮箱发送邮件...

    为什么选择腾讯企业邮箱,其中有个非常优秀的功能,就是可以绑定在腾讯云购买的域名为邮箱的域名,这样子看起来邮箱会更加的正统一点.另一个就是可以直接绑定到QQ邮箱,相对来说平时读邮件的时候回显得更加方便. ...

最新文章

  1. 和AI结对编程!OpenAI与GitHub联手推出AI代码生成工具,比GPT-3更强大
  2. exchange online share mailbox senditem
  3. Leetcode: Top K Frequent Elements
  4. java的System.gc()的理解
  5. 概率论-3.3 多维随机变量函数的分布
  6. Qt for Android 开发大坑
  7. Jack Dorsey二度卸任推特CEO,原CTO接棒,立即生效!
  8. C语言 exit() _exit()
  9. swift 如何在IOS应用图标上添加消息数
  10. eclipse中设置JVM内存
  11. iocomp iPlot使用说明4 通道对象
  12. otf VS ttf images
  13. H5面试题---HTTP状态码知道哪些
  14. CC2430调试接口与JTAG的区别
  15. 程序员个人修养和职业规划
  16. Dubbo入门基础与实例讲解(超详细)
  17. tomcat修改主页
  18. 京东Deco 智能代码体验版正式上线啦,快来体验设计稿一键生成代码~
  19. python loc和iloc_DataFrame的iloc与loc的区别是什么?
  20. catia制作物料明细_CATIA导出装配文件的部件列表BOM清单到Excel文件 | 坐倚北风

热门文章

  1. Python+pandas使用交叉表分析超市营业额数据
  2. python调用robotframework api_python+robot framework接口自动化测试
  3. c语言求阶层的某位数,求10000的阶乘(c语言代码实现)
  4. 策略模式应用场景_朱迪 | 混合研究方法的方法论、研究策略及应用:以消费模式研究为例...
  5. 桌面整理工具不显示文件夹_Win10桌面图标显示不正常变成了白色
  6. java .class 实例对象_通过Class类获取对象(实例讲解)
  7. python ssh模块stdout.read 和recv_paramiko SSH 模块简单应用。
  8. Java获取元注解_Java 元注解
  9. 2440 linux文件写,添加yaffs2文件系统 - Linux2.6.39在S3C2440上的移植_Linux编程_Linux公社-Linux系统门户网站...
  10. java开发http协议接口_java开发接口利用http协议传输数据