wordpress注册邀请码的实现

思路:

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

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

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

数据表

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

wordpress注册邀请码的实现

数据库操作

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

  1. <?php
  2. //第一次启用主题时执行
  3. function ashuwp_load_theme() {
  4.   global $pagenow;
  5.   if ( is_admin() && ‘themes.php’ == $pagenow && isset( $_GET[‘activated’] ) ){
  6.     ashuwp_invitation_code_install();
  7.   }
  8. }
  9. add_action( ‘load-themes.php’, ‘ashuwp_load_theme’ );
  10. //建立数据表
  11. function ashuwp_invitation_code_install(){
  12.   global $wpdb;
  13.   $table_name = $wpdb->prefix . ‘invitation_code’;
  14.   if$wpdb->get_var(“SHOW TABLES LIKE ‘$table_name'”) != $table_name ) :
  15.     $sql = ” CREATE TABLE `”.$wpdb->prefix.“invitation_code` (
  16.       `id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  17.       `code` varchar(40),
  18.       `max` INT NOT NULL,
  19.       `users` varchar(20),
  20.       `status` tinyint
  21.       ) ENGINE = MYISAM DEFAULT CHARSET=utf8;”;
  22.     require_once(ABSPATH . ‘wp-admin/includes/upgrade.php’);
  23.     dbDelta($sql);
  24.   endif;
  25. }
  26. //插入数据
  27. function ashuwp_insert_invitation_code( $code$max = 1, $users$status){
  28.   global $wpdb;
  29.   if($code==){
  30.     return false;
  31.   }
  32.   $code = trim($code);
  33.   $code_exists = ashuwp_check_invitation_code($code);
  34.   if(!$code_exists){
  35.     $insert = “insert into “.$wpdb->prefix.“invitation_code (code,max,users,status) values( ‘$code’, ‘$max’, ”,’1′)”;
  36.     $wpdb->query($insert);
  37.     return true;
  38.   }else{
  39.     return false;
  40.   }
  41. }
  42. //检查邀请码是否已存在
  43. function ashuwp_check_invitation_code( $code ){
  44.   global $wpdb;
  45.   $sql = “select * from “.$wpdb->prefix.“invitation_code where code=’$code'”;
  46.   $result = $wpdb->get_results($sql);
  47.   if(!empty($result)){
  48.     return true;
  49.   }else{
  50.     return false;
  51.   }
  52. }
  53. //获取邀请码
  54. function ashuwp_get_invitation_code($per_page=50, $page=1){
  55.   global $wpdb;
  56.   $page = (int)$page;
  57.   $per_page = (int)$per_page;
  58.   if(!$page){
  59.     $page = 1;
  60.   }
  61.   if(!$per_page){
  62.     $per_page = 50;
  63.   }
  64.   $begin = $per_page*($page-1);
  65.   $end = $per_page*$page;
  66.   $sql = “select * from “.$wpdb->prefix.“invitation_code limit $begin,$end”;
  67.   $results = $wpdb->get_results($sql,’ARRAY_A’);
  68.   return $results;
  69. }
  70. //邀请码的删除、启用、禁用。
  71. function ashuwp_operation_invitation_code( $id$action ){
  72.   global $wpdb;
  73.   $id = (int)$id;
  74.   if(!$id){
  75.     return false;
  76.   }
  77.   if(!in_array($action%
    微信公众号:rizhuti
    关注我们,获取更多的全网素材资源,有趣有料!
    12000人已关注
    分享到:
    赞(0) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏