PluginProbe ʕ •ᴥ•ʔ
WPML Multilingual & Multicurrency for WooCommerce / 5.5.7
WPML Multilingual & Multicurrency for WooCommerce v5.5.7
5.5.7 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 / Language / Set.php
woocommerce-multilingual / classes / Rest / Language Last commit date
Set.php 1 week ago
Set.php
54 lines
1 <?php
2
3 namespace WCML\Rest\Language;
4
5 use WPML\API\Sanitize;
6 use WPML\FP\Obj;
7
8 class Set {
9
10 public static function fromUrlQueryVar() {
11 $lang = self::sanitize( Obj::prop( 'lang', $_GET ) );
12
13 if ( $lang ) {
14 wpml_switch_language_action( $lang );
15 }
16 }
17
18 public static function beforeCallbacks( $response, $handler, \WP_REST_Request $request ) {
19 $lang = self::getFromRequestParams( $request )
20 ?: self::getFromProduct( $handler, $request );
21
22 if ( $lang ) {
23 wpml_switch_language_action( $lang );
24 }
25
26 return $response;
27 }
28
29 private static function getFromRequestParams( \WP_REST_Request $request ) {
30 return self::sanitize( $request->get_param( 'lang' ) );
31 }
32
33 private static function getFromProduct( $handler, \WP_REST_Request $request ) {
34 $callback = Obj::prop( 'callback', $handler );
35
36 if (
37 is_array( $callback )
38 && Obj::prop( 0, $callback ) instanceof \WC_REST_Products_Controller
39 && $request->get_param( 'id' )
40 ) {
41 return (string) Obj::prop(
42 'language_code',
43 apply_filters( 'wpml_post_language_details', [], $request->get_param( 'id' ) )
44 );
45 }
46
47 return '';
48 }
49
50 private static function sanitize( $lang ) {
51 return Sanitize::string( $lang );
52 }
53 }
54