PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / 4.17.3
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress v4.17.3
4.17.3 4.17.2 4.17.1 4.17.0 4.16.19 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 20 hours ago DigitalProducts 1 month ago Emails 2 weeks ago Models 1 month ago PaymentMethods 2 weeks ago Repositories 20 hours ago Services 1 month ago CheckoutFields.php 3 months ago CurrencyFormatter.php 1 month ago Init.php 1 month ago StatSync.php 1 year ago index.php 3 years ago
Init.php
107 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\SubscriptionPaymentFailedNotification;
17 use ProfilePress\Core\Membership\Emails\SubscriptionRenewalReminder;
18 use ProfilePress\Core\Membership\Models\Customer\CustomerFactory;
19 use ProfilePress\Core\Membership\PaymentMethods\PaymentMethods;
20 use ProfilePress\Core\Membership\Repositories\CustomerRepository;
21 use ProfilePress\Core\Membership\Repositories\SubscriptionRepository;
22
23 class Init
24 {
25 public static function init()
26 {
27 PaymentMethods::get_instance();
28 FileDownloads::get_instance();
29
30 FrontendController::get_instance();
31 CheckoutController::get_instance();
32
33 DigitalProducts\Init::get_instance();
34
35 NewOrderReceipt::init();
36 NewOrderAdminNotification::init();
37 RenewalOrderReceipt::init();
38 SubscriptionCancelledNotification::init();
39 SubscriptionExpiredNotification::init();
40 SubscriptionCompletedNotification::init();
41 SubscriptionRenewalReminder::init();
42 SubscriptionExpirationReminder::init();
43 SubscriptionAfterExpiredNotification::init();
44 SubscriptionPaymentFailedNotification::init();
45
46 StatSync::init();
47
48 add_action('ppress_before_login_redirect', function ($username) {
49 self::log_last_login($username);
50 });
51
52 add_action('ppress_before_auto_login_redirect', function ($login_id, $user_id) {
53 self::log_last_login($user_id);
54 }, 10, 2);
55
56 add_action('wp_login', function ($user_login) {
57 self::log_last_login($user_login);
58 }, 10, 2);
59
60 add_action('ppress_myaccount_before_delete_user', [__CLASS__, 'cancel_subs_on_user_delete']);
61
62 add_action('ppress_ec_before_delete_unconfirmed_users', [__CLASS__, 'cancel_subs_on_user_delete']);
63 }
64
65 public static function cancel_subs_on_user_delete($user_id)
66 {
67 $customer = CustomerFactory::fromUserId($user_id);
68
69 if ($customer->exists()) {
70
71 $subs = SubscriptionRepository::init()->retrieveBy([
72 'customer_id' => $customer->get_id()
73 ]);
74
75 foreach ($subs as $sub) {
76 $sub->cancel(true);
77 }
78 }
79 }
80
81 public static function log_last_login($user_login_or_id)
82 {
83 static $flag = false;
84
85 if ($flag === true) return;
86
87 if (is_numeric($user_login_or_id)) {
88 $user = get_user_by('id', $user_login_or_id);
89 } elseif (is_email($user_login_or_id)) {
90 $user = get_user_by('email', $user_login_or_id);
91 } else {
92 $user = get_user_by('login', $user_login_or_id);
93 }
94
95 if ($user instanceof \WP_User) {
96
97 CustomerRepository::init()->updateColumn(
98 CustomerFactory::fromUserId($user->ID)->id,
99 'last_login',
100 gmdate('Y-m-d H:i:s')
101 );
102
103 $flag = true;
104 }
105 }
106 }
107