PluginProbe
Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization / 3.11.1
Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization v3.11.1
4.2.13 4.2.12 4.2.11 4.2.10 4.2.9 4.2.8 4.2.7 4.2.6 4.2.5 2.5.5 2.5.6 2.5.7 3.0.0 3.0.1 3.1.0 3.1.1 3.1.2 3.1.3 3.10.0 3.11.0 3.11.1 3.11.2 3.11.3 3.12.0 3.12.1 All 134 releases
optimole-wp / inc / compatibilities / wpml.php

wpml.php in Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization 3.11.1, at inc/compatibilities/wpml.php

60 lines 1.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Class Optml_wpml
5 *
6 * @reason Wpml duplicates everything so we need to offload/update every image/page attachment.
7 */
8 class Optml_wpml extends Optml_compatibility {
9
10
11 /**
12 * Should we load the integration logic.
13 *
14 * @return bool Should we load.
15 */
16 function should_load() {
17 include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
18 return is_plugin_active( 'sitepress-multilingual-cms/sitepress.php' ) && Optml_Main::instance()->admin->settings->get( 'offload_media' ) === 'enabled';
19 }
20
21 /**
22 * Register integration details.
23 */
24 public function register() {
25 add_filter( 'optml_offload_duplicated_images', [ $this, 'wpml_get_duplicates' ], PHP_INT_MAX, 2 );
26 }
27
28 /**
29 * Ads the duplicated pages/images when offloading.
30 *
31 * @param array $duplicated_attachments The duplicated attachments array.
32 * @param string $attachment_id The attachment id that is first offloaded.
33 *
34 * @return array The images array with the specific bakery images.
35 */
36 public function wpml_get_duplicates( $duplicated_attachments, $attachment_id ) {
37
38 // Get the TRID (Translation ID) from element. REF: https://wpml.org/wpml-hook/wpml_element_trid/
39 $trid = apply_filters( 'wpml_element_trid', null, $attachment_id, 'post_attachment' );
40
41 // Get all translations (elements with the same TRID). REF: https://wpml.org/wpml-hook/wpml_get_element_translations/
42 $translations = apply_filters( 'wpml_get_element_translations', null, $trid, 'post_attachment' );
43
44 foreach ( $translations as $translation ) {
45 if ( isset( $translation->element_id ) ) {
46 $duplicated_attachments[] = $translation->element_id;
47 }
48 }
49 return $duplicated_attachments;
50 }
51 /**
52 * Should we early load the compatibility?
53 *
54 * @return bool Whether to load the compatibility or not.
55 */
56 public function should_load_early() {
57 return true;
58 }
59 }
60