PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 2.6.1
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v2.6.1
4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.11.1 1.11.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.5.0 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.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.13.0 2.14.0 2.14.1 2.15.0 2.15.1 2.16.0 2.16.1 2.16.2 2.16.3 2.17.0 2.17.1 2.17.2 2.18.0 2.19.0 2.19.2 2.19.3 2.19.4 2.2.0 2.2.1 2.20.0 2.20.1 2.20.2 2.20.3 2.20.4 2.20.5 2.20.6 2.21.0 2.22.0 2.22.1 2.23.0 2.24.0 2.25.0 2.25.1 2.25.2 2.26.0 2.27.0 2.27.1 2.28.0 2.29.0 2.29.1 2.29.2 2.29.3 2.29.4 2.3.0 2.3.1 2.30.0 2.31.0 2.31.1 2.31.2 2.31.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.40.0 2.40.1 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.9.0 3.0.0 3.0.0-RC1 3.0.0-RC2 3.0.0-beta1 3.0.0-beta2 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.10.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.1 3.13.2 3.13.3 3.13.4 3.14.0 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.17.0 3.17.1 3.17.2 3.17.3 3.17.4 3.17.5 3.17.6 3.18.0 3.19.0 3.19.1 3.19.2 3.2.0 3.2.1 3.2.2 3.20.0 3.20.1 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 trunk 4.1.0 0.2.19.1 4.1.1 1.0.0 4.2.0 1.0.1 1.0.2
surecart / app / src / Middleware / LoginLinkMiddleware.php
surecart / app / src / Middleware Last commit date
AccountClaimMiddleware.php 3 years ago ArchiveModelMiddleware.php 3 years ago BrandColorMiddleware.php 3 years ago CheckoutRedirectMiddleware.php 3 years ago ComponentAssetsMiddleware.php 3 years ago CustomerDashboardRedirectMiddleware.php 3 years ago EditModelMiddleware.php 3 years ago LoginLinkMiddleware.php 3 years ago LoginMiddleware.php 3 years ago NonceMiddleware.php 3 years ago OrderRedirectMiddleware.php 3 years ago PathRedirectMiddleware.php 3 years ago PaymentFailureRedirectMiddleware.php 3 years ago PurchaseRedirectMiddleware.php 3 years ago SubscriptionRedirectMiddleware.php 3 years ago WebhooksMiddleware.php 2 years ago
LoginLinkMiddleware.php
71 lines
1 <?php
2
3 namespace SureCart\Middleware;
4
5 use SureCart\Models\CustomerLink;
6 use SureCart\Models\User;
7 use Closure;
8 use SureCartCore\Requests\RequestInterface;
9 use SureCartCore\Responses\RedirectResponse;
10
11 /**
12 * Middleware for customer dashboard.
13 */
14 class LoginLinkMiddleware {
15 /**
16 * Handle the middleware.
17 *
18 * @param RequestInterface $request Request.
19 * @param Closure $next Next.
20 * @return method
21 */
22 public function handle( $request, Closure $next ) {
23 $link_id = $request->query( 'customer_link_id' );
24
25 // use original page view if no customer link id is found.
26 if ( ! $link_id ) {
27 return $next( $request );
28 }
29
30 // get the customer link by id.
31 $link = CustomerLink::with( [ 'customer' ] )->find( $link_id );
32 if ( is_wp_error( $link ) || false !== $link->expired ) {
33 return $next( $request );
34 }
35
36 // login the user using the customer id from the link.
37 $user = $link->getUser();
38 if ( $user ) {
39 $user->login();
40 return $next( $request );
41 }
42
43 $user = User::getUserBy( 'email', $link->customer->email );
44 if ( $user ) {
45 $user->login();
46 return $next( $request );
47 }
48
49 // there's no user with this email or customer id. Let's create one.
50 if ( $link->customer->email ?? false ) {
51 $user = User::create(
52 [
53 'user_name' => sanitize_user( $link->customer->email, true ),
54 'user_email' => $link->customer->email,
55 ]
56 );
57
58 if ( $user ) {
59 $linked = $user->setCustomerId( $link->customer->id, $link->customer->live_mode ? 'live' : 'test' );
60 if ( is_wp_error( $linked ) ) {
61 return $next( $request );
62 }
63 $user->login();
64 return $next( $request );
65 }
66 }
67
68 return $next( $request );
69 }
70 }
71