-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathusersMethods.php
57 lines (41 loc) · 1.31 KB
/
usersMethods.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
/*
USERS-METHODS
----
https://getkirby.com/docs/reference/plugins/extensions/users-methods
*/
return [
// MAKE NON-STRIPE KIRBY USERS TO STRIPE CUSTOMERS --------------------------------------------------------------------------
'migrateStripeCustomers' => function () {
$users = kirby()->users();
$counter = 0;
// THIS IS A TASK FOR THE ADMIN
if (kirby()->user()->isAdmin()) {
$stripe = new \Stripe\StripeClient(option('kreativ-anders.memberkit.secretKey'));
// NO TRY CATCH BLOCK - LET EXCEPTION ARISE
foreach($users as $user) {
if ($user->stripe_customer()->isEmpty()) {
// CREATE STRIPE CUSTOMER
$customer = $stripe->customers->create([
'email' => $user->email()
]);
// UPDATE KIRBY USER - ROOT TIER (INDEX=0)
$kirby = kirby();
$kirby->impersonate('kirby');
$kirby->user($user->email())->update([
'stripe_customer' => $customer->id,
'tier' => option('kreativ-anders.memberkit.tiers')[0]['name']
]);
$kirby->impersonate();
$counter++;
}
}
} else {
throw new Exception('This is an admin task!');
}
return [
'users' => count($users),
'migrations' => $counter
];
}
];