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 / app / src / Routing / AdminURLService.php
surecart / app / src / Routing Last commit date
AdminRouteService.php 2 years ago AdminRouteServiceProvider.php 3 years ago AdminURLService.php 3 years ago PermalinkService.php 3 years ago PermalinkServiceProvider.php 3 years ago PermalinkSettingService.php 3 years ago PermalinksSettingsService.php 3 years ago RouteConditionsServiceProvider.php 3 years ago
AdminURLService.php
167 lines
1 <?php
2
3 namespace SureCart\Routing;
4
5 /**
6 * Generates links for specific amdin urls.
7 */
8 class AdminURLService {
9 /**
10 * Stores the admin page names.
11 *
12 * @var array
13 */
14 protected $page_names = [];
15
16 /**
17 * Initialize page names
18 *
19 * @param array $page_names Array of page names and their admin query names.
20 */
21 public function __construct( $page_names ) {
22 $this->page_names = $page_names;
23 }
24
25 /**
26 * New page url
27 *
28 * @param string $name Model lowercase name.
29 * @return string URL for the page.
30 */
31 public function new( $name ) {
32 return esc_url(
33 add_query_arg(
34 [
35 'action' => 'edit',
36 ],
37 admin_url( 'admin.php?page=' . $this->page_names[ $name ] ?? '' )
38 )
39 );
40 }
41
42 /**
43 * Edit page url
44 *
45 * @param string $name Model lowercase name.
46 * @param string $id Model id.
47 *
48 * @return string URL for the page.
49 */
50 public function edit( $name, $id = null ) {
51 return esc_url(
52 add_query_arg(
53 [
54 'action' => 'edit',
55 'id' => $id,
56 ],
57 admin_url( 'admin.php?page=' . $this->page_names[ $name ] ?? '' )
58 )
59 );
60 }
61
62 /**
63 * Show page url
64 *
65 * @param string $name Model lowercase name.
66 * @param string $id Model id.
67 *
68 * @return string URL for the page.
69 */
70 public function show( $name, $id = null ) {
71 return esc_url(
72 add_query_arg(
73 [
74 'action' => 'show',
75 'id' => $id,
76 ],
77 admin_url( 'admin.php?page=' . $this->page_names[ $name ] ?? '' )
78 )
79 );
80 }
81
82 /**
83 * Admin index page url
84 *
85 * @param string $name Model lowercase name.
86 * @return string URL for the page.
87 */
88 public function index( $name ) {
89 return esc_url( admin_url( 'admin.php?page=' . $this->page_names[ $name ] ) );
90 }
91
92 /**
93 * Archive page url
94 *
95 * @param string $name Model lowercase name.
96 * @param string $id Model id.
97 *
98 * @return string URL for the page.
99 */
100 public function toggleArchive( $name, $id ) {
101 return esc_url(
102 add_query_arg(
103 [
104 'action' => 'toggle_archive',
105 'nonce' => wp_create_nonce( "archive_$name" ),
106 'id' => $id,
107 ],
108 $this->index( $name )
109 )
110 );
111 }
112
113 /**
114 * Edit model action
115 */
116 public function editModel( $action, $id, $redirect_url = '' ) {
117 return esc_url(
118 add_query_arg(
119 [
120 'action' => $action,
121 'nonce' => wp_create_nonce( $action ),
122 'id' => $id,
123 ],
124 $redirect_url
125 )
126 );
127 }
128
129 /**
130 * Build the checkout url.
131 *
132 * @param array $line_items Line items.
133 * @return string url
134 */
135 public function checkout( $line_items = [] ) {
136 $checkout = \SureCart::pages()->url( 'checkout' );
137 if ( ! $checkout ) {
138 return '';
139 }
140
141 return add_query_arg(
142 [
143 ...( $line_items ? [ 'line_items' => $this->lineItems( $line_items ?? [] ) ] : [] ),
144 ],
145 $checkout
146 );
147 }
148
149 /**
150 * Build the line items array.
151 *
152 * @param array $line_items Line items.
153 * @return array Line items.
154 */
155 public function lineItems( $line_items ) {
156 return array_map(
157 function( $item ) {
158 return [
159 'price_id' => $item['id'],
160 'quantity' => $item['quantity'],
161 ];
162 },
163 $line_items ?? []
164 );
165 }
166 }
167