Fix couple of issues

This commit is contained in:
DariusIII
2025-12-03 10:01:29 +01:00
parent 939a85c83f
commit ba14bc9c5b
2 changed files with 17 additions and 6 deletions
+12 -3
View File
@@ -63,10 +63,19 @@ class BtcPaymentController extends BasePageController
if ($checkOrder !== null) {
$user = User::query()->where('email', '=', $checkOrder->email)->first();
if ($user) {
$roleName = $checkOrder->item_description;
User::updateUserRole($user->id, $roleName);
// Extract role name and addYears from item_description using regex
// Matches patterns like "User 1", "Admin ++ 2", "Friend 3"
if (preg_match('/(?P<role>\w+(\s\+\+)?)[\s]+(?P<addYears>\d+)/i', $checkOrder->item_description, $matches)) {
$roleName = $matches['role'];
$addYears = (int) $matches['addYears'];
} else {
$roleName = $checkOrder->item_description;
$addYears = null;
}
User::updateUserRole($user->id, $roleName, addYears: $addYears);
$checkOrder->update(['invoice_status' => 'Settled']);
Log::channel('btc_payment')->info('User: '.$user->username.' upgraded to '.$roleName.' for BTCPay webhook: '.$checkOrder->webhook_id);
Log::channel('btc_payment')->info('User: '.$user->username.' upgraded to '.$roleName.' (+'.$addYears.' years) for BTCPay webhook: '.$checkOrder->webhook_id);
return response('OK', 200);
}