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 / vendor / wpml-shared / wpml-lib-cache / src / cache / class-wpml-cache-directory.php
woocommerce-multilingual / vendor / wpml-shared / wpml-lib-cache / src / cache Last commit date
class-wpml-cache-directory.php 2 weeks ago
class-wpml-cache-directory.php
70 lines
1 <?php
2
3 class WPML_Cache_Directory {
4
5 const DIR_PERMISSIONS = 0775;
6 const MAIN_DIRECTORY_NAME = 'wpml';
7 const NOTICE_GROUP = 'wpml-cache-directory';
8 const NOTICE_INVALID_CACHE = 'invalid-cache';
9 private $cache_disabled = false;
10
11 private $wp_api;
12
13 private $filesystem;
14
15 public function __construct( WPML_WP_API $wp_api ) {
16 $this->wp_api = $wp_api;
17 $this->filesystem = $wp_api->get_wp_filesystem_direct();
18 }
19
20 private function get_main_directory_path() {
21 $main_directory_path = null;
22 $cache_path_root = $this->wp_api->constant( 'WPML_CACHE_PATH_ROOT' );
23
24 if ( $cache_path_root ) {
25 $main_directory_path = trailingslashit( $cache_path_root ) . self::MAIN_DIRECTORY_NAME;
26 return trailingslashit( $main_directory_path );
27 }else {
28 $upload_dir = wp_upload_dir();
29
30 if ( empty( $upload_dir['error'] ) ) {
31 $base_dir = $upload_dir['basedir'];
32 $main_directory_path = trailingslashit( $base_dir ) . 'cache/' . self::MAIN_DIRECTORY_NAME;
33 return trailingslashit( $main_directory_path );
34 }
35 }
36
37 return null;
38 }
39
40 private function maybe_create_directory( $absolute_path ) {
41 $result = true;
42
43 if ( ! $this->filesystem->is_dir( $absolute_path ) ) {
44 $result = wp_mkdir_p( $absolute_path );
45 }
46
47 return $result ? $absolute_path : false;
48 }
49
50 public function get( $relative_path = '' ) {
51 $absolute_path = false;
52 $main_directory_path = $this->maybe_create_directory( $this->get_main_directory_path() );
53
54 if ( $main_directory_path ) {
55 $absolute_path = trailingslashit( $main_directory_path . ltrim( $relative_path, '/\\' ) );
56 $absolute_path = $this->maybe_create_directory( $absolute_path );
57 }
58
59 return $absolute_path;
60 }
61
62 public function remove( $relative_path = '' ) {
63 $main_directory_path = $this->get_main_directory_path();
64 if ( $main_directory_path ) {
65 $absolute_path = trailingslashit( $main_directory_path . ltrim( $relative_path, '/\\' ) );
66 $this->filesystem->delete( $absolute_path, true );
67 }
68 }
69 }
70