在主题根目录的functions中加入以下代码: /** 用户购买某个商品自动从vip1升级到vip2的代码 */ ad…

在主题根目录的functions中加入以下代码:

/**
用户购买某个商品自动从vip1升级到vip2的代码
 */
add_filter('b2_order_callback_gx', 'update_vip', 0,2);
function update_vip($money,$data){
        $user_id = isset($data['user_id']) ? (int)$data['user_id'] : 0;
        $post_id = isset($data['post_id']) ? (int)$data['post_id'] : 0;
        
        //商品的ID
        if($post_id != 2573) return $data;

        $lv = get_user_meta($user_id,'zrz_vip',true);
        $lv = $lv ? $lv : false;

        //如果用户当前不是 vip1 支付以后不会升级到vip2
        if($lv !== 'vip0') return $data;

        $update_lv = 'vip1';//要变更的等级

        //重新计算vip用户数量
        $count = get_option('b2_vip_count');
        $count = is_array($count) ? $count : array();

        if($lv && $update_lv !== $lv){
            if(isset($count[$lv])){
                $count[$lv]--;
            }
        }

        if(isset($count[$update_lv])){
            $count[$update_lv]++;
        }else{
            $count[$update_lv] = 1;
        }

        update_option('b2_vip_count',$count);

        //更新到新等级
        update_user_meta($user_id,'zrz_vip',$update_lv);

        return $data;
}
2 条回复 A文章作者 M管理员
  1. 正在缓冲999

    老哥,子比的怎么弄啊

  2. 正在缓冲999

    /** 用户购买某个商品自动从vip0升级到vip n的代码(这是个升级版) */ add_filter('b2_order_callback_gx', 'update_vip', 0,2); function update_vip($money, $data) { $user_id = isset($data['user_id']) ? (int)$data['user_id'] : 0; $post_id = isset($data['post_id']) ? (int)$data['post_id'] : 0; // 商品的ID if ($post_id != 8 && $post_id != 15 && $post_id != 16 && $post_id != 29) return $data; $current_lv = get_user_meta($user_id, 'zrz_vip', true); $current_lv = $current_lv ? $current_lv : 'vip0'; $update_lv = 'vip0'; // 默认等级为vip0 // 根据当前等级确定要变更的等级 switch ($current_lv) { case 'vip0': $update_lv = 'vip1'; break; case 'vip1': $update_lv = 'vip2'; break; case 'vip2': $update_lv = 'vip3'; break; case 'vip3': // 如果已经是最高等级,不需要再升级 return $data; } // 重新计算VIP用户数量 $count = get_option('b2_vip_count'); $count = is_array($count) ? $count : array(); if ($current_lv && $update_lv !== $current_lv) { if (isset($count[$current_lv])) { $count[$current_lv]--; } } if (isset($count[$update_lv])) { $count[$update_lv]++; } else { $count[$update_lv] = 1; } update_option('b2_vip_count', $count); // 更新到新等级 update_user_meta($user_id, 'zrz_vip', $update_lv); return $data; }

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索