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 / app / src / Routing / PermalinkServiceProvider.php
surecart / app / src / Routing Last commit date
AdminRouteService.php 2 years ago AdminRouteServiceProvider.php 3 years ago AdminURLService.php 1 year ago PermalinkService.php 3 years ago PermalinkServiceProvider.php 1 year ago PermalinkSettingService.php 2 years ago PermalinksSettingsService.php 2 years ago RouteConditionsServiceProvider.php 3 years ago
PermalinkServiceProvider.php
149 lines
1 <?php
2
3 namespace SureCart\Routing;
4
5 use SureCartCore\ServiceProviders\ServiceProviderInterface;
6
7 /**
8 * Provide custom route conditions.
9 * This is an example class so feel free to modify or remove it.
10 */
11 class PermalinkServiceProvider implements ServiceProviderInterface {
12 /**
13 * Register all dependencies in the IoC container.
14 *
15 * @param \Pimple\Container $container Service container.
16 * @return void
17 */
18 public function register( $container ) {
19 $container['surecart.settings.permalinks.product'] = function () {
20 return new PermalinkSettingService(
21 [
22 'slug' => 'product',
23 'label' => __( 'SureCart Product Permalinks', 'surecart' ),
24 /* translators: %s: Home URL */
25 'description' => sprintf( __( 'If you like, you may enter custom structures for your product page URLs here. For example, using <code>products</code> would make your product buy links like <code>%sproducts/sample-product/</code>.', 'surecart' ), esc_url( home_url( '/' ) ) ),
26 'options' => [
27 [
28 'value' => 'products',
29 'label' => __( 'Default', 'surecart' ),
30 ],
31 [
32 'value' => 'shop',
33 'label' => __( 'Shop', 'surecart' ),
34 ],
35 ],
36 ]
37 );
38 };
39
40 $container['surecart.settings.permalinks.buy'] = function () {
41 return new PermalinkSettingService(
42 [
43 'slug' => 'buy',
44 'label' => __( 'SureCart Instant Checkout Permalinks', 'surecart' ),
45 /* translators: %s: Home URL */
46 'description' => sprintf( __( 'If you like, you may enter custom structures for your instant checkout URLs here. For example, using <code>buy</code> would make your product buy links like <code>%sbuy/sample-product/</code>.', 'surecart' ), esc_url( home_url( '/' ) ) ),
47 'options' => [
48 [
49 'value' => 'buy',
50 'label' => __( 'Default', 'surecart' ),
51 ],
52 [
53 'value' => 'purchase',
54 'label' => __( 'Purchase', 'surecart' ),
55 ],
56 ],
57 ]
58 );
59 };
60
61 $container['surecart.settings.permalinks.collection'] = function () {
62 return new PermalinkSettingService(
63 [
64 'slug' => 'collection',
65 'label' => __( 'SureCart Product Collection Permalinks', 'surecart' ),
66 /* translators: %s: Home URL */
67 'description' => sprintf( __( 'If you like, you may enter custom structures for your product page URLs here. For example, using <code>collections</code> would make your product collection links like <code>%scollections/sample-collection/</code>.', 'surecart' ), esc_url( home_url( '/' ) ) ),
68 'options' => [
69 [
70 'value' => 'collections',
71 'label' => __( 'Default', 'surecart' ),
72 ],
73 [
74 'value' => 'product-collections',
75 'label' => __( 'Product Collections', 'surecart' ),
76 ],
77 ],
78 'sample_preview_text' => 'sample-collection',
79 ]
80 );
81 };
82
83 $container['surecart.settings.permalinks.upsell'] = function () {
84 return new PermalinkSettingService(
85 [
86 'slug' => 'upsell',
87 'label' => __( 'SureCart Upsell Permalinks', 'surecart' ),
88 /* translators: %s: Home URL */
89 'description' => sprintf( __( 'If you like, you may enter custom structures for your upsell URLs here. For example, using <code>offers</code> would make your upsell\'s links like <code>%soffers/upsell-id/</code>.', 'surecart' ), esc_url( home_url( '/' ) ) ),
90 'options' => [
91 [
92 'value' => 'offer',
93 'label' => __( 'Default', 'surecart' ),
94 ],
95 [
96 'value' => 'special-offer',
97 'label' => __( 'Special Offer', 'surecart' ),
98 ],
99 ],
100 ]
101 );
102 };
103 }
104
105 /**
106 * Bootstrap any services if needed.
107 *
108 * @param \Pimple\Container $container Service container.
109 * @return void
110 */
111 public function bootstrap( $container ) {
112 $container['surecart.settings.permalinks.product']->bootstrap();
113 // ( new PermalinkService() )
114 // ->params( [ 'sc_product_page_id' ] )
115 // ->url( untrailingslashit( \SureCart::settings()->permalinks()->getBase( 'product_page' ) ) . '/([a-z0-9-]+)[/]?$' )
116 // ->query( 'index.php?sc_product_page_id=$matches[1]' )
117 // ->create();
118
119 $container['surecart.settings.permalinks.buy']->bootstrap();
120 ( new PermalinkService() )
121 ->params( [ 'sc_checkout_product_id' ] )
122 ->url( untrailingslashit( \SureCart::settings()->permalinks()->getBase( 'buy_page' ) ) . '/([a-z0-9-]+)[/]?$' )
123 ->query( 'index.php?sc_checkout_product_id=$matches[1]' )
124 ->create();
125
126 // Upsell.
127 $container['surecart.settings.permalinks.upsell']->bootstrap();
128 ( new PermalinkService() )
129 ->params( [ 'sc_upsell_id' ] )
130 ->url( untrailingslashit( \SureCart::settings()->permalinks()->getBase( 'upsell_page' ) ) . '/([a-z0-9-]+)[/]?$' )
131 ->query( 'index.php?sc_upsell_id=$matches[1]' )
132 ->create();
133
134 // Checkout change mode redirection.
135 ( new PermalinkService() )
136 ->params( [ 'sc_checkout_change_mode', 'sc_checkout_post' ] )
137 ->url( 'surecart/change-checkout-mode' )
138 ->query( 'index.php?sc_checkout_change_mode=1&sc_checkout_post=1' )
139 ->create();
140
141 // Redirect.
142 ( new PermalinkService() )
143 ->params( [ 'sc_redirect' ] )
144 ->url( 'surecart/redirect' )
145 ->query( 'index.php?sc_redirect=1' )
146 ->create();
147 }
148 }
149