| Server IP : 146.190.157.162 / Your IP : 216.73.217.6 Web Server : Apache System : Linux ubuntu-s-2vcpu-4gb-amd-sfo3-01-KIT-DIGITAL 6.5.0-44-generic #44-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 7 15:10:09 UTC 2024 x86_64 User : businessweek ( 639) PHP Version : 8.2.10-2ubuntu2.2 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_signal,pcntl_signal_dispatch,pcntl_getpriority,pcntl_setpriority,dl,putenv,parse_ini_file,show_source MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/html/hernandeztaberna/wp-content/plugins/polylang/integrations/wp-offload-media/ |
Upload File : |
<?php
/**
* @package Polylang
*/
/**
* A class to manage the integration with WP Offload Media Lite.
* Version tested: 2.1.1
*
* @since 2.6
*/
class PLL_AS3CF {
/**
* Stores if a media is translated when it is deleted.
*
* @var bool[]
*/
private $is_media_translated = array();
/**
* Initializes filters and actions.
*
* @since 2.6
*/
public function init() {
add_filter( 'pll_copy_post_metas', array( $this, 'copy_post_metas' ) );
add_action( 'delete_attachment', array( $this, 'check_translated_media' ), 5 ); // Before Polylang deletes the translations information.
add_action( 'delete_attachment', array( $this, 'prevent_file_deletion' ), 15 ); // Between Polylang and WP Offload Media.
}
/**
* Synchronizes post metas
*
* @since 2.6
*
* @param array $metas List of custom fields names.
* @return array
*/
public function copy_post_metas( $metas ) {
$metas[] = 'amazonS3_info';
$metas[] = 'as3cf_filesize_total';
return $metas;
}
/**
* Checks if the deleted attachment was translated and stores the information.
*
* @since 2.6
*
* @param int $post_id Id of the attachment being deleted.
*/
public function check_translated_media( $post_id ) {
$this->is_media_translated[ $post_id ] = ( count( pll_get_post_translations( $post_id ) ) > 1 );
}
/**
* Deletes the WP Offload Media information from the attachment being deleted.
* That way WP Offload Media won't delete the file stored in the cloud.
* Done after Polylang has deleted the translations information, to avoid the synchronization of the deletion
* and of course before WP Offload Media deletes the file, normally at priority 20.
*
* @since 2.6
*
* @param int $post_id Id of the attachment being deleted.
*/
public function prevent_file_deletion( $post_id ) {
if ( ! empty( $this->is_media_translated[ $post_id ] ) ) {
delete_post_meta( $post_id, 'amazonS3_info' );
delete_post_meta( $post_id, 'as3cf_filesize_total' );
}
}
}