PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 1.2.1
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v1.2.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 / packages / blocks / Controllers / DownloadController.php
surecart / packages / blocks / Controllers Last commit date
BaseController.php 3 years ago ChargeController.php 3 years ago CustomerController.php 3 years ago DownloadController.php 3 years ago InvoiceController.php 3 years ago OrderController.php 3 years ago PaymentMethodController.php 3 years ago SubscriptionController.php 3 years ago UserController.php 3 years ago
DownloadController.php
156 lines
1 <?php
2 namespace SureCartBlocks\Controllers;
3
4 use SureCart\Models\Activation;
5 use SureCart\Models\Component;
6 use SureCart\Models\PortalSession;
7 use SureCart\Models\Purchase;
8 use SureCart\Models\User;
9
10 /**
11 * The subscription controller.
12 */
13 class DownloadController extends BaseController {
14 /**
15 * Preview.
16 *
17 * @param array $attributes Block attributes.
18 */
19 public function preview( $attributes = [] ) {
20 if ( ! is_user_logged_in() ) {
21 return;
22 }
23
24 return wp_kses_post(
25 Component::tag( 'sc-dashboard-downloads-list' )
26 ->id( 'customer-downloads-preview' )
27 ->with(
28 [
29 'allLink' => add_query_arg(
30 [
31 'tab' => $this->getTab(),
32 'model' => 'download',
33 'action' => 'index',
34 ],
35 remove_query_arg( array_keys( $_GET ) ) // phpcs:ignore WordPress.Security.NonceVerification.Recommended
36 ),
37 'requestNonce' => wp_create_nonce( 'customer-download' ),
38 'isCustomer' => User::current()->isCustomer(),
39 'query' => [
40 'customer_ids' => array_values( User::current()->customerIds() ),
41 'page' => 1,
42 'per_page' => 10,
43 ],
44 ]
45 )->render( $attributes['title'] ? "<span slot='heading'>" . $attributes['title'] . '</span>' : '' )
46 );
47 }
48
49 /**
50 * Index.
51 */
52 public function index() {
53 if ( ! is_user_logged_in() ) {
54 return;
55 }
56
57 return wp_kses_post(
58 Component::tag( 'sc-orders-list' )
59 ->id( 'customer-orders-index' )
60 ->with(
61 [
62 'heading' => __( 'Order History', 'surecart' ),
63 'isCustomer' => User::current()->isCustomer(),
64 'query' => [
65 'customer_ids' => array_values( User::current()->customerIds() ),
66 'status' => [ 'paid' ],
67 'page' => 1,
68 'per_page' => 10,
69 ],
70 ]
71 )->render()
72 );
73 }
74
75 public function show() {
76 if ( ! is_user_logged_in() ) {
77 return;
78 }
79
80 $purchase = Purchase::with( [ 'customer', 'checkout', 'license', 'product', 'product.downloads', 'download.media', 'license.activations' ] )->find( $this->getId() );
81
82 if ( empty( $purchase->customer->id ) || ! User::current()->hasCustomerId( $purchase->customer->id ) ) {
83 return null;
84 }
85
86 ob_start(); ?>
87
88 <sc-spacing style="--spacing: var(--sc-spacing-large)">
89 <sc-breadcrumbs>
90 <sc-breadcrumb href="<?php echo esc_url( add_query_arg( [ 'tab' => $this->getTab() ], remove_query_arg( array_keys( $_GET ) ) ) ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended ?>">
91 <?php esc_html_e( 'Dashboard', 'surecart' ); ?>
92 </sc-breadcrumb>
93 <sc-breadcrumb href="
94 <?php
95 echo esc_url(
96 add_query_arg(
97 [
98 'tab' => $this->getTab(),
99 'model' => 'order',
100 'action' => 'index',
101 ],
102 remove_query_arg( array_keys( $_GET ) ) // phpcs:ignore WordPress.Security.NonceVerification.Recommended
103 )
104 );
105 ?>
106 ">
107 <?php esc_html_e( 'Orders', 'surecart' ); ?>
108 </sc-breadcrumb>
109 <sc-breadcrumb>
110 <?php esc_html_e( 'Download', 'surecart' ); ?>
111 </sc-breadcrumb>
112 </sc-breadcrumbs>
113
114 <?php
115 echo wp_kses_post(
116 Component::tag( 'sc-downloads-list' )
117 ->id( 'customer-purchase' )
118 ->with(
119 [
120 'heading' => __( 'Downloads', 'surecart' ),
121 'customerId' => $purchase->customer->id ?? '',
122 'downloads' => array_values(
123 array_filter(
124 $purchase->product->downloads->data ?? [],
125 function( $download ) {
126 return ! $download->archived;
127 }
128 )
129 ),
130 ]
131 )->render()
132 );
133 ?>
134
135 <?php
136 if ( $purchase->license ) :
137 echo wp_kses_post(
138 Component::tag( 'sc-licenses-list' )
139 ->id( 'customer-licenses' )
140 ->with(
141 [
142 'heading' => __( 'License Keys', 'surecart' ),
143 'licenses' => [ $purchase->license ],
144 ]
145 )->render()
146 );
147 endif;
148 ?>
149
150 </sc-spacing>
151
152 <?php
153 return ob_get_clean();
154 }
155 }
156