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 / 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 2 years ago SubscriptionController.php 3 years ago UserController.php 3 years ago
DownloadController.php
173 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 ob_start(); ?>
58 <sc-spacing style="--spacing: var(--sc-spacing-large)">
59 <sc-breadcrumbs>
60 <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 ?>">
61 <?php esc_html_e( 'Dashboard', 'surecart' ); ?>
62 </sc-breadcrumb>
63 <sc-breadcrumb>
64 <?php esc_html_e( 'Downloads', 'surecart' ); ?>
65 </sc-breadcrumb>
66 </sc-breadcrumbs>
67
68 <?php
69 echo wp_kses_post(
70 Component::tag( 'sc-dashboard-downloads-list' )
71 ->id( 'customer-downloads-preview' )
72 ->with(
73 [
74 'requestNonce' => wp_create_nonce( 'customer-download' ),
75 'isCustomer' => User::current()->isCustomer(),
76 'query' => [
77 'customer_ids' => array_values( User::current()->customerIds() ),
78 'page' => 1,
79 'per_page' => 10,
80 ],
81 ]
82 )->render( ! empty( $attributes['title'] ) ? "<span slot='heading'>" . $attributes['title'] . '</span>' : '' )
83 );
84 ?>
85 </sc-spacing>
86
87 <?php
88 return ob_get_clean();
89 }
90
91 public function show() {
92 if ( ! is_user_logged_in() ) {
93 return;
94 }
95
96 $purchase = Purchase::with( [ 'customer', 'checkout', 'license', 'product', 'product.downloads', 'download.media', 'license.activations' ] )->find( $this->getId() );
97
98 if ( empty( $purchase->customer->id ) || ! User::current()->hasCustomerId( $purchase->customer->id ) ) {
99 return null;
100 }
101
102 ob_start();
103 ?>
104
105 <sc-spacing style="--spacing: var(--sc-spacing-large)">
106 <sc-breadcrumbs>
107 <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 ?>">
108 <?php esc_html_e( 'Dashboard', 'surecart' ); ?>
109 </sc-breadcrumb>
110 <sc-breadcrumb href="
111 <?php
112 echo esc_url(
113 add_query_arg(
114 [
115 'tab' => $this->getTab(),
116 'model' => 'download',
117 'action' => 'index',
118 ],
119 remove_query_arg( array_keys( $_GET ) ) // phpcs:ignore WordPress.Security.NonceVerification.Recommended
120 )
121 );
122 ?>
123 ">
124 <?php esc_html_e( 'Downloads', 'surecart' ); ?>
125 </sc-breadcrumb>
126 <sc-breadcrumb>
127 <?php esc_html_e( 'Download', 'surecart' ); ?>
128 </sc-breadcrumb>
129 </sc-breadcrumbs>
130
131 <?php
132 echo wp_kses_post(
133 Component::tag( 'sc-downloads-list' )
134 ->id( 'customer-purchase' )
135 ->with(
136 [
137 'heading' => __( 'Downloads', 'surecart' ),
138 'customerId' => $purchase->customer->id ?? '',
139 'downloads' => array_values(
140 array_filter(
141 $purchase->product->downloads->data ?? [],
142 function( $download ) {
143 return ! $download->archived;
144 }
145 )
146 ),
147 ]
148 )->render()
149 );
150 ?>
151
152 <?php
153 if ( $purchase->license ) :
154 echo wp_kses_post(
155 Component::tag( 'sc-licenses-list' )
156 ->id( 'customer-licenses' )
157 ->with(
158 [
159 'heading' => __( 'License Keys', 'surecart' ),
160 'licenses' => [ $purchase->license ],
161 ]
162 )->render()
163 );
164 endif;
165 ?>
166
167 </sc-spacing>
168
169 <?php
170 return ob_get_clean();
171 }
172 }
173