子比主题 – 发布文章扣除积分
给子比主题用户发布文章扣除积分的功能,这个功能还是比较实用的,有些人开放了用户投稿的功能,那么可以使用这个投稿,发布一个文章那么扣积分!功能说明[*]普通用户发布文章需扣除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]