概述
在 B2 支付流程中叠加优惠券与积分抵扣,可显著提升转化。本文给出服务端校验与前端展示的完整思路。
一、优惠券数据结构
将优惠券存为 CPT 或 option,关键字段:面额、门槛、有效期、每人限用次数:
Text
array(
'code' => 'JI2026',
'amount' => 20,
'min' => 100,
'expire' => '2026-12-31',
'per_user' => 1,
)
二、结算时校验
Text
function ji_apply_coupon($code, $price, $uid) {
$cp = get_option('ji_coupon_' . $code);
if (!$cp || $cp['expire'] < date('Y-m-d')) return $price;
if ($price = $cp['per_user']) return $price;
return max(0, $price - $cp['amount']);
}
三、积分抵扣
积分与金额按站点比例兑换,支付时优先抵扣:
Text
// 100 积分 = 1 元
$points = (int) get_user_meta($uid, 'ji_points', true);
$maxDeduct = min($points / 100, $price);
$final = $price - $maxDeduct;
注意事项
- 优惠券与积分抵扣必须服务端二次校验,前端展示仅为体验。
- 支付成功后要核销优惠券与扣除积分,保证幂等。

