PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.5.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.5.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 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 / PermalinksSettingsService.php
surecart / app / src / Routing Last commit date
AdminRouteService.php 4 months ago AdminRouteServiceProvider.php 3 years ago AdminURLService.php 2 months ago PermalinkService.php 1 year ago PermalinkServiceProvider.php 1 year ago PermalinkSettingService.php 1 year ago PermalinksSettingsService.php 1 year ago RouteConditionsServiceProvider.php 3 years ago
PermalinksSettingsService.php
90 lines
1 <?php
2
3 namespace SureCart\Routing;
4
5 /**
6 * Permalinks settings service.
7 * Handles fetching, saving and updating permalink settings.
8 */
9 class PermalinksSettingsService {
10 /**
11 * Permalink settings.
12 *
13 * @var array
14 */
15 private $permalinks = [];
16
17 /**
18 * Get the current values of the permalinks.
19 */
20 public function __construct() {
21 $this->permalinks = $this->getSettings();
22 }
23
24 /**
25 * Get the permalink settings.
26 *
27 * @return array
28 */
29 public function getSettings() {
30 $settings = (array) get_option( 'surecart_permalinks', [] );
31 return wp_parse_args(
32 $settings,
33 [
34 'buy_page' => 'buy',
35 'product_page' => 'products',
36 'collection_page' => 'collections',
37 'upsell_page' => 'offer',
38 ]
39 );
40 }
41
42 /**
43 * Update the permalink settings.
44 *
45 * @param string $key The key to update.
46 * @param array $value The value to update.
47 *
48 * @return bool
49 */
50 public function updatePermalinkSettings( $key, $value ) {
51 $this->permalinks[ $key ] = $this->sanitize( $value );
52 return update_option( 'surecart_permalinks', $this->permalinks );
53 }
54
55 /**
56 * Sanitize the permalink.
57 *
58 * @param string $value The value to sanitize.
59 *
60 * @return string
61 */
62 public function sanitize( $value ): string {
63 global $wpdb;
64
65 $value = $wpdb->strip_invalid_text_for_column( $wpdb->options, 'option_value', $value ?? '' );
66
67 if ( is_wp_error( $value ) ) {
68 $value = '';
69 }
70
71 $value = sanitize_url( trim( $value ) );
72 $value = str_replace( 'http://', '', $value );
73 $value = str_replace( 'https://', '', $value );
74 $value = ltrim( $value, '/' );
75 return untrailingslashit( $value );
76 }
77
78
79 /**
80 * Get get the base for a slug.
81 *
82 * @param string $slug The slug of the base.
83 *
84 * @return string
85 */
86 public function getBase( $slug ) {
87 return $this->permalinks[ $slug ] ?? '';
88 }
89 }
90