子比主题给扣除积分动作后增加一条积分变动的记录

我们在二次开发子比主题的时候,很多时候我们在通过定义的变量$donation_amount扣除积分后,那么这个时候子比的用户中心积分记录中是无法看到所扣除的积分的,那么这个时候我们需要构建一个积分变动信息数组,通过这个积分变动的信息组来传递参数给积分变动函数。

一、分析

  1. 首先,根据需要定义了一个包含积分变动信息的关联数组 $points_record。
  2. 在该数组中,包含了以下字段:
  •     ‘value’:扣除的积分值,这里设置为负数,即 -10。
        ‘type’:变动类型标识,这里是设置为 “投稿文章”。
        ‘desc’:变动描述,这里是设置为 “扣除10积分”。
        ‘time’:变动发生时间,使用 current_time(‘mysql’) 获取当前时间。
        ‘points’:变动后的积分总额,这里使用 $current_user_points 表示变动之后的积分值。
  1. 接下来,通过调用相关函数和方法,将新的积分变动记录添加到用户的积分记录中:
  2.  使用 (array) get_user_meta($current_user_id, ‘points_record’, true) 获取当前用户的积分记录数组。
  3. 使用 array_unshift($points_records, $points_record) 将新的积分变动记录添加到积分记录数组的开头。
  4. 最后,使用 update_user_meta($current_user_id, ‘points_record’, $points_records) 更新用户的积分记录。

二、具体代码

下面代码构建的是一个扣除10积分后,增加的扣除积分的变动记录,这段代码需要放到扣除积分操作执行后的函数里

			// 构建积分变动信息数组
		$points_record = array(
			'value' => -$donation_amount, // 扣除的积分值,此处为负数
			'type' => '投稿文章', // 变动类型标识
			'desc' => '扣除10积分', // 变动描述
			'time' => current_time('mysql'), // 变动发生时间
			'points' => $current_user_points // 变动后的积分总额
		);

		// 获取当前用户的积分记录
		$points_records = (array) get_user_meta($current_user_id, 'points_record', true);

		// 将新的积分变动记录添加到积分记录数组的开头
		array_unshift($points_records, $points_record);

		// 更新用户的积分记录
		update_user_meta($current_user_id, 'points_record', $points_records);

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

给TA打赏
共{{data.count}}人
人已打赏
php

子比主题普通用户前台投稿时扣除一定数量积分

2023-6-20 18:08:51

php

子比主题根据不同角色前台投稿文章扣除不同的积分

2023-6-27 23:07:48

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索