PluginProbe
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 2.29.4
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v2.29.4
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 / app / src / Controllers / Admin / AdminController.php
AdminController.php
96 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace SureCart\Controllers\Admin;
4
5 use SureCart\Controllers\Admin\TestModeToggle\TestModeToggleScriptsController;
6 use SureCartCore\Responses\RedirectResponse;
7
8 abstract class AdminController {
9 /**
10 * Preload API Request Paths
11 *
12 * @param array $preload_paths The preload paths.
13 *
14 * @return void
15 */
16 public function preloadPaths( $preload_paths ) {
17 wp_add_inline_script(
18 'wp-api-fetch',
19 sprintf(
20 'wp.apiFetch.use( wp.apiFetch.createPreloadingMiddleware( %s ) );',
21 wp_json_encode(
22 array_reduce(
23 $preload_paths,
24 'rest_preload_api_request',
25 array()
26 )
27 )
28 ),
29 'after'
30 );
31 }
32
33 /**
34 * The header.
35 *
36 * @param array $args The arguments.
37 *
38 * @return void
39 */
40 public function withHeader( $args ) {
41 if ( ! empty( $args['test_mode_toggle'] ) ) {
42 add_action( 'admin_enqueue_scripts', \SureCart::closure()->method( TestModeToggleScriptsController::class, 'enqueue' ) );
43 }
44
45 add_action(
46 'in_admin_header',
47 function() use ( $args ) {
48 return \SureCart::render(
49 'layouts/partials/admin-header',
50 [
51 'breadcrumbs' => $args['breadcrumbs'] ?? [],
52 'suffix' => $args['suffix'] ?? '',
53 'test_mode_toggle' => $args['test_mode_toggle'] ?? false,
54 'claim_url' => ! \SureCart::account()->claimed ? \SureCart::routeUrl( 'account.claim' ) : '',
55 ]
56 );
57 }
58 );
59 }
60
61 /**
62 * Add notices.
63 *
64 * @param array $items The notices.
65 *
66 * @return void
67 */
68 public function withNotices( $items ) {
69 add_action(
70 'admin_notices',
71 function() use ( $items ) {
72 foreach ( $items as $key => $item ) {
73 if ( (bool) ( $_REQUEST[ $key ] ?? false ) ) {
74 ?>
75 <div class="notice notice-success is-dismissible">
76 <p><?php echo esc_html( $item ); ?></p>
77 </div>
78 <?php
79 }
80 }
81 }
82 );
83 }
84
85 /**
86 * Redirect back to the previous page.
87 *
88 * @param @param \SureCartCore\Requests\RequestInterface $request Request.
89 *
90 * @return \SureCartCore\Responses\RedirectResponse
91 */
92 public function redirectBack( $request ) {
93 return ( new RedirectResponse( $request ) )->back();
94 }
95 }
96