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 / PermalinkService.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
PermalinkService.php
129 lines
1 <?php
2
3 namespace SureCart\Routing;
4
5 /**
6 * A service for registering custom routes.
7 */
8 class PermalinkService {
9 /**
10 * The regex url.
11 *
12 * @var string
13 */
14 protected $url = '';
15
16 /**
17 * The regex url.
18 *
19 * @var string
20 */
21 protected $query = '';
22
23 /**
24 * Holds the params we care about for this route.
25 *
26 * @var array
27 */
28 protected $params = [];
29
30 /**
31 * Query vars.
32 *
33 * @var array
34 */
35 protected $query_vars = [];
36
37 /**
38 * The priority of the new rule.
39 *
40 * @var string
41 */
42 protected $priority = 'top';
43
44 /**
45 * Set the url.
46 *
47 * @param string $url The url.
48 *
49 * @return $this
50 */
51 public function url( $url ) {
52 $this->url = $url;
53 return $this;
54 }
55
56 /**
57 * Set query.
58 *
59 * @param string $query The query.
60 *
61 * @return $this
62 */
63 public function query( $query ) {
64 $this->query = $query;
65 return $this;
66 }
67
68 /**
69 * Add any params we will use.
70 *
71 * @param array $params Array of params.
72 *
73 * @return $this
74 */
75 public function params( $params = [] ) {
76 $this->params = $params;
77 return $this;
78 }
79
80 /**
81 * Set the priority of the rule.
82 *
83 * @param "top"|"bottom" $priority The priority.
84 *
85 * @return $this
86 */
87 public function priority( $priority ) {
88 $this->priority = $priority;
89 return $this;
90 }
91
92 /**
93 * Add the rewrite rule.
94 *
95 * @return void
96 */
97 public function addRewriteRule() {
98 $rules = get_option( 'rewrite_rules' );
99 add_rewrite_rule( $this->url, $this->query, $this->priority );
100 if ( ! isset( $rules[ $this->url ] ) ) {
101 flush_rewrite_rules();
102 }
103 }
104
105 /**
106 * Add query vars.
107 *
108 * @param array $query_vars The query vars.
109 *
110 * @return array
111 */
112 public function addQueryVars( $query_vars ) {
113 return array_merge( $query_vars, $this->params );
114 }
115
116 /**
117 * Create the permalink.
118 * This handles adding the rewrite rule and query vars.
119 *
120 * @return mixed
121 */
122 public function create() {
123 // add the query vars.
124 add_filter( 'query_vars', [ $this, 'addQueryVars' ] );
125 // add the rewrite rule.
126 add_action( 'init', [ $this, 'addRewriteRule' ] );
127 }
128 }
129