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 / BaseController.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
BaseController.php
139 lines
1 <?php
2 namespace SureCartBlocks\Controllers;
3
4 use SureCart\Models\User;
5
6 /**
7 * Base controller for dashboard pages.
8 */
9 abstract class BaseController {
10 /**
11 * The middleware for this controller.
12 *
13 * @var array
14 */
15 protected $middleware = array();
16
17 /**
18 * Block controller middleware.
19 *
20 * @param string[] $middleware Middleware.
21 * @param string $action Action.
22 * @param Closure $next Next.
23 *
24 * @return function
25 */
26 public function executeMiddleware( $middleware, $action = null, $next = null ) {
27 $next = null === $next ? $action : $next;
28
29 if ( empty( $this->middleware[ $action ] ) && null === $middleware ) {
30 return $this->$next();
31 }
32
33 $middleware = null === $middleware ? $this->middleware[ $action ] : $middleware;
34
35 $top_middleware = array_shift( $middleware );
36
37 if ( null === $top_middleware ) {
38 return $this->$next();
39 }
40
41 $top_middleware_next = function () use ( $middleware, $action, $next ) {
42 return $this->executeMiddleware( $middleware, $action, $next );
43 };
44
45 $instance = new $top_middleware();
46
47 return call_user_func_array( array( $instance, 'handle' ), array( $action, $top_middleware_next ) );
48 }
49
50 /**
51 * Handle the request.
52 *
53 * @param string $action The action.
54 *
55 * @return $this
56 */
57 public function handle( $action ) {
58 return $this->executeMiddleware( null, $action );
59 }
60
61 /**
62 * Get a query param.
63 *
64 * @param string $name The query param name.
65 * @param mixed $fallback The fallback value.
66 *
67 * @return string|false
68 */
69 protected function getParam( $name, $fallback = false ) {
70 return isset( $_GET[ $name ] ) ? sanitize_text_field( wp_unslash( $_GET[ $name ] ) ) : $fallback;
71 }
72
73 /**
74 * Get the current tab.
75 *
76 * @return string|false
77 */
78 protected function getTab() {
79 return $this->getParam( 'tab' );
80 }
81
82 /**
83 * Get the current page.
84 *
85 * @return integer
86 */
87 protected function getPage() {
88 return $this->getParam( 'page', 1 );
89 }
90
91 /**
92 * Get the current id.
93 *
94 * @return integer|false
95 */
96 protected function getId() {
97 return $this->getParam( 'id' );
98 }
99
100 /**
101 * Get the users customer ids.
102 *
103 * @return array
104 */
105 protected function customerIds() {
106 return array_values( (array) User::current()->customerIds() );
107 }
108
109 /**
110 * Render not found view.
111 *
112 * @return string
113 */
114 protected function notFound() {
115 return '<sc-alert type="danger" open>' . esc_html__( 'Not found.', 'surecart' ) . '</sc-alert>';
116 }
117
118 /**
119 * Render not found view.
120 *
121 * @return string
122 */
123 protected function noAccess() {
124 return '<sc-alert type="danger" open>' . esc_html__( 'You do not have permission to do this.', 'surecart' ) . '</sc-alert>';
125 }
126
127 /**
128 * Check if this is in live mode.
129 *
130 * @return boolean
131 */
132 protected function isLiveMode() {
133 if ( 'false' === sanitize_text_field( wp_unslash( $_GET['live_mode'] ?? '' ) ) ) {
134 return false;
135 }
136 return true;
137 }
138 }
139