PluginProbe
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 1.2.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v1.2.0
4.7.2 4.7.1 4.7.0 4.6.6 4.6.5 4.6.4 4.6.3 4.6.2 4.6.1 4.6.0 4.5.1 4.5.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 All 281 releases
surecart / packages / blocks / Controllers / DownloadController.php
DownloadController.php
156 lines 3.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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