网站实现邀请码功能有很多很多用处,具体什么用处,相信大家都知道,就不多说了,直接说怎么实现吧。以下代码来自 @阿树工作室 。
思路:
需要新建一个数据表来保存邀请码。
后台需要两个页面:邀请码列表、添加邀请码。
添加邀请码的时候需要能设置前缀,一次生成多个邀请码,邀请码长度可自定义,每个邀请码使用次数可设置。
数据表
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 = "