纯代码实现WordPress邀请码功能

2018年6月10日 0 条评论 268 次阅读 0 人点赞

纯代码实现邀请码 :cool: 的思路:

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

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

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

数据表

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

数据库操作

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

<?php
//第一次启用主题时执行
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. 邀请码增加页面。

 

 

本文转载自挨踢牛的纯代码实现wordpress邀请码功能

小俊

这个人太懒什么东西都没留下

文章评论(0)