PluginProbe ʕ •ᴥ•ʔ
WPML Multilingual & Multicurrency for WooCommerce / trunk
WPML Multilingual & Multicurrency for WooCommerce vtrunk
5.3.8 5.3.9 5.4.3 5.4.4 5.4.5 5.5.1 5.5.1.1 5.5.2.2 5.5.2.3 5.5.3 5.5.3.1 5.5.4 5.5.5 5.5.6 trunk 0.9 1.0 1.1 1.2 1.3 1.4 1.5 2.0 2.2 2.3 2.3.1 2.3.2 3.0 3.0.1 3.1 3.2 3.2.1 3.2.2 3.3 3.3.1 3.3.2 3.3.3 3.3.4 3.4 3.4.1 3.4.2 3.4.3 3.5 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.6 3.6.1 3.6.10 3.6.11 3.6.2 3.6.3 3.6.4 3.6.5 3.6.5.1 3.6.6 3.6.7 3.6.8 3.6.9 3.7 3.7.1 3.7.10 3.7.11 3.7.12 3.7.13 3.7.14 3.7.15 3.7.16 3.7.2 3.7.3 3.7.4 3.7.5 3.7.6 3.7.7 3.7.8 3.7.9 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.9.0 3.9.1 3.9.1.1 3.9.2 3.9.3 3.9.4 3.9.5 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.10.4 4.11.2 4.11.3.2 4.11.5 4.11.6 4.12.1 4.12.4 4.12.5 4.12.6 4.2.0 4.2.0.1 4.2.1 4.2.1.1 4.2.10 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.7.1 4.2.8 4.2.8.1 4.2.9 4.3.0 4.3.1 4.3.2 4.3.2.1 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.4.0 4.4.1 4.4.2 4.4.2.1 4.5.0 4.6.0 4.6.1 4.6.2 4.6.2.1 4.6.3 4.6.5 4.6.6 4.6.7 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.7.5 4.7.6 4.7.7 4.7.8 4.7.9 4.8.0 4.9.0 4.9.1 5.0.1 5.0.2 5.1.1 5.1.2 5.1.3 5.2.0 5.2.1 5.3.2 5.3.3.1 5.3.4 5.3.5 5.3.6 5.3.7
woocommerce-multilingual / classes / Rest / Functions.php
woocommerce-multilingual / classes / Rest Last commit date
Exceptions 8 months ago Frontend 5 years ago Language 3 years ago Store 1 month ago Wrapper 4 months ago Functions.php 3 years ago Generic.php 1 year ago Hooks.php 2 years ago ProductSaveActions.php 8 months ago
Functions.php
103 lines
1 <?php
2
3 namespace WCML\Rest;
4
5 use WPML\FP\Obj;
6 use WPML\FP\Str;
7
8 class Functions {
9
10 const STORE_NAMESPACE = 'wc/store/v1';
11
12 /**
13 * Check if we are requesting a WooCommerce Analytics page.
14 *
15 * @return bool
16 */
17 public static function isAnalyticsPage() {
18 // phpcs:disable WordPress.Security.NonceVerification.Recommended,WordPress.VIP.SuperGlobalInputUsage.AccessDetected
19 return is_admin()
20 && 'wc-admin' === Obj::prop( 'page', $_GET )
21 && 0 === strpos( sanitize_text_field( wp_unslash( Obj::prop( 'path', $_GET ) ) ), '/analytics/' );
22 // phpcs:enable WordPress.Security.NonceVerification.Recommended,WordPress.VIP.SuperGlobalInputUsage.AccessDetected
23 }
24
25 /**
26 * Check if is request to the WooCommerce REST API.
27 *
28 * @return bool
29 */
30 public static function isRestApiRequest() {
31 return apply_filters( 'woocommerce_rest_is_request_to_rest_api', self::checkEndpoint( 'wc/v' . self::getApiRequestVersion() . '/' ) );
32 }
33
34 /**
35 * Check if is request to the WooCommerce Analytics REST API.
36 *
37 * @return bool
38 */
39 public static function isAnalyticsRestRequest() {
40 return self::checkEndpoint( 'wc-analytics/' );
41 }
42
43 /**
44 * Check if is request to the WooCommerce Store API.
45 *
46 * @return bool
47 */
48 public static function isStoreAPIRequest() {
49 return self::checkEndpoint( 'wc/store' );
50 }
51
52 /**
53 * Returns the version number of the API used for the current request
54 *
55 * @return int
56 */
57 public static function getApiRequestVersion() {
58
59 $version = 0;
60
61 if ( empty( $_SERVER['REQUEST_URI'] ) ) {
62 return $version;
63 }
64
65 $restPrefix = trailingslashit( rest_get_url_prefix() );
66 if ( preg_match( '@' . $restPrefix . 'wc/v([0-9]+)/@i', $_SERVER['REQUEST_URI'], $matches ) ) {
67 $version = intval( $matches[1] );
68 }
69
70 return $version;
71 }
72
73 /**
74 * @param string $endpoint
75 *
76 * @return bool
77 */
78 private static function checkEndpoint( $endpoint = 'wc/' ) {
79 if ( empty( $_SERVER['REQUEST_URI'] ) ) {
80 return false;
81 }
82
83 $rest_prefix = trailingslashit( rest_get_url_prefix() );
84 return ( false !== stripos( $_SERVER['REQUEST_URI'], $rest_prefix . $endpoint ) );
85 }
86
87 /**
88 * @param \WP_REST_Request $request
89 *
90 * @return string|null
91 */
92 public static function getStoreStrippedEndpoint( $request ) {
93 $route = trim( $request->get_route(), '/' );
94
95 if ( Str::startsWith( self::STORE_NAMESPACE, $route ) ) {
96 return Str::sub( Str::len( trailingslashit( self::STORE_NAMESPACE ) ), $route );
97 }
98
99 return null;
100 }
101
102 }
103