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.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 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 / Blocks / Dashboard / CustomerSubscriptions / Block.php
surecart / packages / blocks / Blocks / Dashboard / CustomerSubscriptions Last commit date
Block.php 3 years ago block.json 3 years ago
Block.php
119 lines
1 <?php
2
3 namespace SureCartBlocks\Blocks\Dashboard\CustomerSubscriptions;
4
5 use SureCart\Models\Subscription;
6 use SureCart\Models\User;
7 use SureCartBlocks\Blocks\Dashboard\DashboardPage;
8 use SureCartBlocks\Controllers\SubscriptionController;
9
10 /**
11 * Checkout block
12 */
13 class Block extends DashboardPage {
14 /**
15 * Render the block
16 *
17 * @param array $attributes Block attributes.
18 * @param string $content Post content.
19 *
20 * @return function
21 */
22 public function render( $attributes, $content ) {
23 if ( ! is_user_logged_in() ) {
24 return false;
25 }
26 return ( new SubscriptionController() )->preview( $attributes );
27 }
28
29 /**
30 * Show and individual checkout session.
31 *
32 * @param string $id Session ID.
33 *
34 * @return function
35 */
36 public function show( $id ) {
37 return \SureCart::blocks()->render(
38 'web/dashboard/subscriptions/show',
39 [
40 'id' => $id,
41 ]
42 );
43 }
44
45 /**
46 * Show and individual checkout session.
47 *
48 * @return function
49 */
50 public function edit() {
51 $id = isset( $_GET['id'] ) ? sanitize_text_field( wp_unslash( $_GET['id'] ) ) : false;
52 $tab = isset( $_GET['tab'] ) ? sanitize_text_field( wp_unslash( $_GET['tab'] ) ) : false;
53 $subscription = Subscription::with( [ 'price', 'price.product', 'current_period', 'product.product_group' ] )->find( $id );
54
55 \SureCart::assets()->addComponentData(
56 'sc-subscription',
57 '#customer-subscription',
58 [
59 'heading' => $attributes['title'] ?? __( 'Update Plan', 'surecart' ),
60 'subscription' => $subscription,
61 ]
62 );
63 \SureCart::assets()->addComponentData(
64 'sc-subscription-switch',
65 '#customer-subscription-switch',
66 [
67 'heading' => $attributes['title'] ?? __( 'Update Plan', 'surecart' ),
68 'product-group' => $subscription->price->product->product_group ?? null,
69 'subscription' => $subscription,
70 ]
71 );
72 ob_start(); ?>
73 <sc-spacing style="--spacing: var(--sc-spacing-large)">
74 <sc-breadcrumbs>
75 <sc-breadcrumb href="<?php echo esc_url( add_query_arg( [ 'tab' => $tab ], \SureCart::pages()->url( 'dashboard' ) ) ); ?>">
76 <?php esc_html_e( 'Dashboard', 'surecart' ); ?>
77 </sc-breadcrumb>
78 <sc-breadcrumb>
79 <?php esc_html_e( 'Plan', 'surecart' ); ?>
80 </sc-breadcrumb>
81 </sc-breadcrumbs>
82
83 <sc-subscription id="customer-subscription"></sc-subscription>
84 <sc-subscription-switch id="customer-subscription-switch"></sc-subscription-switch>
85 </sc-spacing>
86
87 <?php
88 return ob_get_clean();
89 }
90
91 /**
92 * Show and individual checkout session.
93 *
94 * @param array $attributes Block attributes.
95 *
96 * @return function
97 */
98 public function index( $attributes ) {
99 if ( ! is_user_logged_in() ) {
100 return false;
101 }
102 \SureCart::assets()->addComponentData(
103 'sc-subscriptions-list',
104 '#customer-subscriptions-index',
105 [
106 'heading' => $attributes['title'] ?? __( 'Plans', 'surecart' ),
107 'isCustomer' => User::current()->isCustomer(),
108 'query' => [
109 'customer_ids' => array_values( User::current()->customerIds() ),
110 'status' => [ 'active', 'trialing' ],
111 'page' => 1,
112 'per_page' => 10,
113 ],
114 ]
115 );
116 return '<sc-subscriptions-list id="customer-subscriptions-index"></sc-subscriptions-list>';
117 }
118 }
119