/**
* 当用户进行搜索时扣除积分(如果用户积分充足)。
*/
function zib_deduct_points_on_search($query) {
if (!is_admin() && $query->is_search && _pz('points_s')) {
$user_id = get_current_user_id();
$points_needed = 30;
$user_points = zibpay_get_user_points($user_id);
if (!$user_id) {
get_header();
echo '<div class="zib-widget full-widget-sm flex jc" style="min-height:60vh;">';
echo zib_get_user_singin_page_box('box-body flex1', 'Hi!请先登录后再进行搜索');
echo '</div>';
get_footer();
exit();
}
// 检查用户是否有足够的积分
if ($user_points >= $points_needed) {
$data = array(
'order_num' => '', // 可能需要记录订单号或某些标识符
'value' => -$points_needed, // 扣除30积分
'type' => '资源搜索', // 根据你的积分使用类型调整
'desc' => '在本站搜索资源时将会扣除' . $points_needed . '积分', // 积分扣除的说明
);
zibpay_update_user_points($user_id, $data);
// 继续执行搜索查询
return $query;
} else {
get_header();
echo '<div class="zib-widget full-widget-sm flex jc" style="min-height:60vh;">';
echo zib_get_null('积分不足,搜索资源需要扣除' . $points_needed . '积分'); // 根据需要处理积分不足的显示或操作
echo '</div>';
get_footer();
exit();
}
}
return $query;
}
add_action('pre_get_posts', 'zib_deduct_points_on_search');