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 / Generic.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
Generic.php
59 lines
1 <?php
2
3 namespace WCML\Rest;
4
5 use WPML\FP\Fns;
6 use WPML\FP\Obj;
7 use WPML\API\Sanitize;
8
9 class Generic {
10
11 /**
12 * Prevent WPML redirection when using the default language as a parameter in the url
13 */
14 public static function preventDefaultLangUrlRedirect() {
15 $exp = explode( '?', $_SERVER['REQUEST_URI'] );
16 if ( ! empty( $exp[1] ) ) {
17 parse_str( $exp[1], $vars );
18 if ( isset( $vars['lang'] ) && $vars['lang'] === wpml_get_default_language() ) {
19 unset( $vars['lang'] );
20 $_SERVER['REQUEST_URI'] = $exp[0] . '?' . http_build_query( $vars );
21 }
22 }
23 }
24
25 /**
26 * @param \WP_Query $wp_query
27 */
28 public static function autoAdjustIncludedIds( \WP_Query $wp_query ) {
29 $lang = Sanitize::string( (string) Obj::prop( 'lang', $_GET ) );
30 $include = $wp_query->get( 'post__in' );
31 if ( empty( $lang ) && ! empty( $include ) ) {
32 $filtered_include = [];
33 foreach ( $include as $id ) {
34 $filtered_include[] = wpml_object_id_filter( $id, get_post_type( $id ), true );
35 }
36 $wp_query->set( 'post__in', $filtered_include );
37 }
38 }
39
40 /**
41 * We need an unfiltered 'home_url' so that the REST signature matches.
42 *
43 * Note that WPML already does this, but fails to recognize a REST
44 * request when we get a 'relative' home_url.
45 */
46 public static function removeHomeUrlFilterOnRestAuthentication() {
47 $returnTrue = Fns::always( true );
48
49 add_filter( 'determine_current_user', Fns::tap( function() use ( $returnTrue ) {
50 add_filter( 'wpml_skip_convert_url_string', $returnTrue );
51 } ), 10 );
52
53 add_filter( 'determine_current_user', Fns::tap( function() use ( $returnTrue ) {
54 remove_filter( 'wpml_skip_convert_url_string', $returnTrue );
55 } ), 20 );
56 }
57
58 }
59