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