飞流 发表于 2025-10-8 21:09:47

子比主题 – 发布文章扣除积分

给子比主题用户发布文章扣除积分的功能,这个功能还是比较实用的,有些人开放了用户投稿的功能,那么可以使用这个投稿,发布一个文章那么扣积分!功能说明
[*]普通用户发布文章需扣除5积分
[*]黄金会员用户发布文章需扣除2积分
[*]钻石会员用户发布文章无需扣除积分
[*]若积分不足则弹出积分不足弹窗并将文章保存到草稿
[*]发布文章后用户中心积分列表显示发布文章扣分明细
代码部署将下面的代码放到:/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');
页: [1]
查看完整版本: 子比主题 – 发布文章扣除积分