PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / trunk
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress vtrunk
4.16.18 4.16.17 4.16.16 trunk 1.0 1.0.1 1.0.2 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5a 1.1.6 1.1.7 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.4 1.4.1 1.4.2 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.1.9 2.2.10 2.2.11 2.2.12 2.2.13 2.2.14 2.2.15 2.2.16 2.2.2 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 3.0 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.13.4 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.15.0 4.15.1 4.15.10 4.15.11 4.15.12 4.15.13 4.15.14 4.15.15 4.15.16 4.15.17 4.15.18 4.15.19 4.15.2 4.15.20 4.15.20.1 4.15.21 4.15.22 4.15.23 4.15.24 4.15.25 4.15.3 4.15.4 4.15.5 4.15.6 4.15.7 4.15.8 4.15.9 4.16.0 4.16.1 4.16.10 4.16.11 4.16.12 4.16.13 4.16.14 4.16.15 4.16.2 4.16.3 4.16.4 4.16.5 4.16.6 4.16.7 4.16.8 4.16.9 4.2.0 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.7.0 4.8.0 4.9.0
wp-user-avatar / src / Membership / Init.php
wp-user-avatar / src / Membership Last commit date
Controllers 1 week ago DigitalProducts 5 months ago Emails 3 months ago Models 1 month ago PaymentMethods 1 month ago Repositories 2 months ago Services 4 months ago CheckoutFields.php 1 month ago CurrencyFormatter.php 9 months ago Init.php 2 years ago StatSync.php 1 year ago index.php 3 years ago
Init.php
105 lines
1 <?php
2
3 namespace ProfilePress\Core\Membership;
4
5 use ProfilePress\Core\Admin\SettingsPages\Membership\FileDownloads;
6 use ProfilePress\Core\Membership\Controllers\CheckoutController;
7 use ProfilePress\Core\Membership\Controllers\FrontendController;
8 use ProfilePress\Core\Membership\Emails\NewOrderAdminNotification;
9 use ProfilePress\Core\Membership\Emails\NewOrderReceipt;
10 use ProfilePress\Core\Membership\Emails\RenewalOrderReceipt;
11 use ProfilePress\Core\Membership\Emails\SubscriptionAfterExpiredNotification;
12 use ProfilePress\Core\Membership\Emails\SubscriptionCancelledNotification;
13 use ProfilePress\Core\Membership\Emails\SubscriptionCompletedNotification;
14 use ProfilePress\Core\Membership\Emails\SubscriptionExpirationReminder;
15 use ProfilePress\Core\Membership\Emails\SubscriptionExpiredNotification;
16 use ProfilePress\Core\Membership\Emails\SubscriptionRenewalReminder;
17 use ProfilePress\Core\Membership\Models\Customer\CustomerFactory;
18 use ProfilePress\Core\Membership\PaymentMethods\PaymentMethods;
19 use ProfilePress\Core\Membership\Repositories\CustomerRepository;
20 use ProfilePress\Core\Membership\Repositories\SubscriptionRepository;
21
22 class Init
23 {
24 public static function init()
25 {
26 PaymentMethods::get_instance();
27 FileDownloads::get_instance();
28
29 FrontendController::get_instance();
30 CheckoutController::get_instance();
31
32 DigitalProducts\Init::get_instance();
33
34 NewOrderReceipt::init();
35 NewOrderAdminNotification::init();
36 RenewalOrderReceipt::init();
37 SubscriptionCancelledNotification::init();
38 SubscriptionExpiredNotification::init();
39 SubscriptionCompletedNotification::init();
40 SubscriptionRenewalReminder::init();
41 SubscriptionExpirationReminder::init();
42 SubscriptionAfterExpiredNotification::init();
43
44 StatSync::init();
45
46 add_action('ppress_before_login_redirect', function ($username) {
47 self::log_last_login($username);
48 });
49
50 add_action('ppress_before_auto_login_redirect', function ($login_id, $user_id) {
51 self::log_last_login($user_id);
52 }, 10, 2);
53
54 add_action('wp_login', function ($user_login) {
55 self::log_last_login($user_login);
56 }, 10, 2);
57
58 add_action('ppress_myaccount_before_delete_user', [__CLASS__, 'cancel_subs_on_user_delete']);
59
60 add_action('ppress_ec_before_delete_unconfirmed_users', [__CLASS__, 'cancel_subs_on_user_delete']);
61 }
62
63 public static function cancel_subs_on_user_delete($user_id)
64 {
65 $customer = CustomerFactory::fromUserId($user_id);
66
67 if ($customer->exists()) {
68
69 $subs = SubscriptionRepository::init()->retrieveBy([
70 'customer_id' => $customer->get_id()
71 ]);
72
73 foreach ($subs as $sub) {
74 $sub->cancel(true);
75 }
76 }
77 }
78
79 public static function log_last_login($user_login_or_id)
80 {
81 static $flag = false;
82
83 if ($flag === true) return;
84
85 if (is_numeric($user_login_or_id)) {
86 $user = get_user_by('id', $user_login_or_id);
87 } elseif (is_email($user_login_or_id)) {
88 $user = get_user_by('email', $user_login_or_id);
89 } else {
90 $user = get_user_by('login', $user_login_or_id);
91 }
92
93 if ($user instanceof \WP_User) {
94
95 CustomerRepository::init()->updateColumn(
96 CustomerFactory::fromUserId($user->ID)->id,
97 'last_login',
98 gmdate('Y-m-d H:i:s')
99 );
100
101 $flag = true;
102 }
103 }
104 }
105