PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 1.4.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v1.4.0
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 / CheckoutRedirectMiddleware.php
surecart / app / src / Middleware Last commit date
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 3 years ago
CheckoutRedirectMiddleware.php
93 lines
1 <?php
2
3 namespace SureCart\Middleware;
4
5 use Closure;
6 use SureCart\Models\Checkout;
7 use SureCartCore\Requests\RequestInterface;
8 use SureCartCore\Responses\RedirectResponse;
9
10 /**
11 * Middleware for handling model archiving.
12 */
13 class CheckoutRedirectMiddleware {
14 /**
15 * Enqueue component assets.
16 *
17 * @param RequestInterface $request Request.
18 * @param Closure $next Next.
19 * @return function
20 */
21 public function handle( RequestInterface $request, Closure $next ) {
22 $id = $request->query( 'checkout_id' );
23
24 // no checkout id, next request.
25 if ( empty( $id ) ) {
26 return $next( $request );
27 }
28
29 $checkout = Checkout::find( $id );
30
31 // get checkout from page id.
32 if ( ! empty( $checkout->metadata->page_id ) ) {
33 $url = get_permalink( (int) $checkout->metadata->page_id );
34 if ( $url ) {
35 return ( new RedirectResponse( $request ) )->to(
36 esc_url_raw( $this->buildUrl( $url, $request ) )
37 );
38 }
39 }
40
41 // get checkout from page_url.
42 if ( ! empty( $checkout->metadata->page_url ) ) {
43 return ( new RedirectResponse( $request ) )->to(
44 esc_url_raw( $this->buildUrl( $checkout->metadata->page_url, $request ) )
45 );
46 }
47
48 // these don't exist, use the default checkout page.
49 if ( ! empty( \SureCart::pages()->url( 'checkout' ) ) ) {
50 return ( new RedirectResponse( $request ) )->to(
51 esc_url_raw( $this->buildUrl( \SureCart::pages()->url( 'checkout' ), $request ) )
52 );
53 }
54
55 // cannot find checkout page.
56 return $next( $request );
57 }
58
59 /**
60 * Build the url.
61 *
62 * @return string
63 */
64 public function buildUrl( $url, RequestInterface $request ) {
65 if ( empty( $url ) ) {
66 return $url;
67 }
68
69 // add checkout id.
70 $id = $request->query( 'checkout_id' );
71 if ( $id ) {
72 $url = add_query_arg(
73 [
74 'checkout_id' => $id,
75 ],
76 $url
77 );
78 }
79
80 $promotion_code = $request->query( 'promotion_code' );
81 if ( $promotion_code ) {
82 $url = add_query_arg(
83 [
84 'coupon' => $promotion_code,
85 ],
86 $url
87 );
88 }
89
90 return $url;
91 }
92 }
93