PluginProbe
Packeta / 2.3.2
Packeta v2.3.2
2.3.2 2.3.1 trunk 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3.0 1.3.1 1.3.2 1.4 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 All 56 releases
packeta / src / Packetery / Module / Framework / WcSessionTrait.php

WcSessionTrait.php in Packeta 2.3.2, at src/Packetery/Module/Framework/WcSessionTrait.php

77 lines 1.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare( strict_types=1 );
4
5 namespace Packetery\Module\Framework;
6
7 use WC_Session;
8 use WC_Session_Handler;
9
10 use function is_array;
11 use function is_string;
12
13 trait WcSessionTrait {
14 public function initializeSession(): void {
15 WC()->initialize_session();
16 }
17
18 /**
19 * @return WC_Session|WC_Session_Handler|null
20 */
21 public function session() {
22 return WC()->session;
23 }
24
25 /**
26 * Phpdoc is not reliable.
27 *
28 * @return mixed
29 */
30 private function sessionGet( string $key ) {
31 return WC()->session->get( $key );
32 }
33
34 /**
35 * Minimal logic to ensure strict typing.
36 */
37 public function sessionGetString( string $key ): ?string {
38 $sessionValue = $this->sessionGet( $key );
39 if ( is_string( $sessionValue ) ) {
40 return $sessionValue;
41 }
42
43 return null;
44 }
45
46 /**
47 * Minimal logic to ensure strict typing.
48 */
49 public function sessionGetArray( string $key ): ?array {
50 $sessionValue = $this->sessionGet( $key );
51 if ( is_array( $sessionValue ) ) {
52 return $sessionValue;
53 }
54
55 return null;
56 }
57
58 /**
59 * @param string $key
60 * @param mixed $value
61 *
62 * @return void
63 */
64 public function sessionSet( string $key, $value ): void {
65 WC()->session->set( $key, $value );
66 }
67
68 /**
69 * Phpdoc is not reliable.
70 *
71 * @return int|string
72 */
73 public function sessionGetCustomerId() {
74 return WC()->session->get_customer_id();
75 }
76 }
77