PluginProbe
Elementor Website Builder – more than just a page builder / 3.35.0
Elementor Website Builder – more than just a page builder v3.35.0
4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 4.0.7 All 451 releases
elementor / includes / template-library / classes / class-media-mapper.php

class-media-mapper.php in Elementor Website Builder – more than just a page builder 3.35.0, at includes/template-library/classes/class-media-mapper.php

68 lines 1.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace Elementor\TemplateLibrary\Classes;
3
4 use Elementor\Plugin;
5
6 if ( ! defined( 'ABSPATH' ) ) {
7 exit; // Exit if accessed directly.
8 }
9
10 /**
11 * Elementor media mapper.
12 *
13 * Maps media URLs to their corresponding filenames.
14 */
15 class Media_Mapper {
16
17 const TRANSIENT_KEY = 'elementor_media_mapping';
18
19 public static function set_mapping( $mapping, $media_dir = '' ) {
20 $mapping = is_array( $mapping ) ? $mapping : [];
21
22 if ( ! empty( $mapping ) ) {
23 set_transient( self::TRANSIENT_KEY, [
24 'mapping' => $mapping,
25 'media_dir' => $media_dir,
26 ], HOUR_IN_SECONDS );
27 }
28 }
29
30 public static function get_local_file_path( $original_url ) {
31 $stored_mapping = get_transient( self::TRANSIENT_KEY );
32
33 if ( ! $stored_mapping || ! is_array( $stored_mapping ) || empty( $original_url ) ) {
34 return $original_url;
35 }
36
37 $mapping = $stored_mapping['mapping'] ?? [];
38 $media_dir = $stored_mapping['media_dir'] ?? '';
39
40 if ( empty( $mapping ) ) {
41 return $original_url;
42 }
43
44 $filename = $mapping[ $original_url ] ?? null;
45 if ( $filename && $media_dir ) {
46 $file_path = $media_dir . '/' . $filename;
47 if ( file_exists( $file_path ) ) {
48 return $file_path;
49 }
50 }
51
52 return $original_url;
53 }
54
55 public static function clear_mapping() {
56 $stored_mapping = get_transient( self::TRANSIENT_KEY );
57
58 if ( $stored_mapping && is_array( $stored_mapping ) ) {
59 $media_dir = $stored_mapping['media_dir'] ?? '';
60 if ( $media_dir ) {
61 Plugin::$instance->uploads_manager->remove_file_or_dir( $media_dir );
62 }
63 }
64
65 delete_transient( self::TRANSIENT_KEY );
66 }
67 }
68