|
|
|
|
交易无需等待,成交就是现在,全面资源整合网络大咖云集,让你轻松玩转互联网!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
给子比主题用户发布文章扣除积分的功能,这个功能还是比较实用的,有些人开放了用户投稿的功能,那么可以使用这个投稿,发布一个文章那么扣积分!
[h1]功能说明[/h1]- 普通用户发布文章需扣除5积分
- 黄金会员用户发布文章需扣除2积分
- 钻石会员用户发布文章无需扣除积分
- 若积分不足则弹出积分不足弹窗并将文章保存到草稿
- 发布文章后用户中心积分列表显示发布文章扣分明细
[h1]代码部署[/h1]将下面的代码放到:/wp-content/themes/zibll/func.php文件里面,没有这个文件自己创一个,记得加php头,要不然会报错,将下面的代码放到里面- function posts_zib_new_post_points($post_id, $post) {
- if ($post->post_type === 'post') {
- $user_id = get_current_user_id();
- $vip_level = get_user_meta($user_id, 'vip_level', true);
- switch ($vip_level) {
- case 0: $points_to_kouchu = 5;
- break;
- case 1: $points_to_kouchu = 2;
- break;
- case 2: $points_to_kouchu = 0;
- break;
- default: $points_to_kouchu = 5;
- }
- $user_points = zibpay_get_user_points($user_id);
- if ($user_points >= $points_to_kouchu && $points_to_kouchu > 0) {
- $new_points = $user_points - $points_to_kouchu;
- $data = array( 'value' => -$points_to_kouchu, 'points' => $new_points, 'type' => '发布文章扣除', 'desc' => '发布文章扣除积分', 'time' => current_time('Y-m-d H:i:s'), 'order_num' => '' );
- zibpay_update_user_points($user_id, $data, $new_points);
- }
- }
- }
- add_action('save_post', 'posts_zib_new_post_points', 10, 2);
- function output_check_points_script() {
- ?> <script type="text/javascript"> (function($) {
- $(document).ready(function() {
- $(document).on('click', '.new-posts-submit', function(event) {
- $.ajax( {
- url: '<?php echo admin_url('admin-ajax.php'); ?>', type: 'POST', data: {
- action: 'get_points_info'
- }
- , success: function(response) {
- var user_points = response.user_points;
- var points_to_kouchu = response.points_to_kouchu;
- if (user_points < points_to_kouchu) {
- event.preventDefault();
- alert("积分不足,无法发布文章");
- }
- }
- , error: function() {
- event.preventDefault();
- alert("请求出错,请稍后再试");
- }
- }
- );
- }
- );
- }
- );
- }
- )(jQuery);
- </script> <?php
- }
- add_action('admin_footer-post-new.php', 'output_check_points_script');
- add_action('admin_footer-post.php', 'output_check_points_script');
- function handle_ajax_get_points_info() {
- $user_id = get_current_user_id();
- $vip_level = get_user_meta($user_id, 'vip_level', true);
- switch ($vip_level) {
- case 0: $points_to_kouchu = 5;
- break;
- case 1: $points_to_kouchu = 2;
- break;
- case 2: $points_to_kouchu = 0;
- break;
- default: $points_to_kouchu = 5;
- }
- $user_points = zibpay_get_user_points($user_id);
- wp_send_json(array('user_points' => $user_points, 'points_to_kouchu' => $points_to_kouchu));
- }
- add_action('wp_ajax_get_points_info', 'handle_ajax_get_points_info');
复制代码
|
|