wordpress 做一个简单发布文章消耗积分功能
文章出自:http://www.zzw666.com/Vlog/37.html 转载请注明
功能介绍:每个用户都有积分,默认为0。积分为0时,用户不能发布文章,每发布一篇文章减1积分。可以有效的解决wordpress机器人发稿的问题。 技术介绍
//数据库操作 wp_hsm_users表中,新增user_jifen字段,类型为Int(11)默认为0
//这个文件 /wp-admin/user-edit.php
//找到这段$errors = edit_user( $user_id );修改成 //增加更新积分 $wpdb->query( "UPDATE `wp_hsm_users` SET user_jifen = ".$_POST['jifen']." WHERE ID = '$user_id'"); $errors = edit_user( $user_id );
//找到这段<table class="form-table" role="presentation">修改成 <table class="form-table" role="presentation"> <tr class="user-jifen-wrap"> <th><label for="jifen">剩余积分</label></th> <td><input type="number" name="jifen" id="jifen" value="<?php $query = "select user_jifen from wp_hsm_users where ID=".$user_id;$tt=$wpdb->get_var( $query );echo $tt;?>" class="regular-number" /> <p class="description">每发布一篇文章,消耗1个积分</p></td> </tr>
//新增这个文件 /wp-admin/user/jifen.php <?php define( 'WP_USER_ADMIN', true ); require_once dirname( __DIR__ ) . '/admin.php'; $current_user = wp_get_current_user(); $query = "select user_jifen from wp_hsm_users where ID=".$current_user->ID; $tt=$wpdb->get_var( $query ); ?> document.write('<div style=" color: #f00; ">您的积分剩余:<span style=" font-size: 28px; font-weight: bold; "><?php echo $tt;?></span>,充值积分请联系管理员</div>');
//这个文件 /wp-content/themes/zibll/pages/newposts.php //找到这段<div class="content-layout">修改成 <div class="content-layout"> <script type='text/javascript' src='/wp-admin/user/jifen.php'></script>
//这个文件 /wp-content/themes/zibll/action/new_posts.php //找到这段$in_id = wp_insert_post($postarr, 1);修改成 $current_user = wp_get_current_user(); $query = "select user_jifen from wp_hsm_users where ID=".$current_user->ID; $tt=$wpdb->get_var( $query ); if($tt<=0){ echo (json_encode(array('error' => 1, 'ys' => 'danger', 'msg' => '您的积分不足,请联系管理员充值'))); exit(); }else{ $wpdb->get_var("UPDATE `wp_hsm_users` SET user_jifen = user_jifen-1 WHERE ID = ".$current_user->ID); $in_id = wp_insert_post($postarr, 1); }
//找到function zib_ajax_new_posts(){修改成 function zib_ajax_new_posts()
{ global $wpdb;
//这个文件 wp-content hemeszibllzibpayunctionsdmindmin.php //找到unset($columns['name']);改成 unset($columns['name']); $columns['user_jifen'] = '<span>积分</span>';
//找到switch ($column_name) {修改成 switch ($column_name) { case "user_jifen": return $user->user_jifen; break; |