: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
namespace AMPforWP\AMPVendor;
if ( ! defined( 'ABSPATH' ) ) {
class AMPFORWP_Tree_Shaking_Transient{
public static function ampforwp_get_proper_transient_name($transient){
}elseif(ampforwp_is_blog()){
}elseif(ampforwp_is_front_page()){
$transient = "post-".ampforwp_get_frontpage_id();
}elseif(!empty($post) && is_object($post) && is_singular()){
$transient = "post-".intval($post->ID);
$page_id = get_queried_object_id();
$transient = "archive-".intval($page_id);
if( is_user_logged_in() ){
$transient = $transient.'-admin';
public static function ampforwp_set_file_transient( $transient, $value, $expiration = 0 ) {
$transient = self::ampforwp_get_proper_transient_name($transient);
$expiration = (int) $expiration;
$value = apply_filters( "pre_set_transient_{$transient}", $value, $expiration, $transient );
$expiration = apply_filters( "expiration_of_transient_{$transient}", $expiration, $value, $transient );
if ( wp_using_ext_object_cache() ) {
$result = wp_cache_set( $transient, $value, 'transient', $expiration );
$transient_timeout = '_transient_timeout_' . $transient;
$transient_option = '_transient_' . $transient;
$upload_dir = wp_upload_dir();
$user_dirname = $upload_dir['basedir'] . '/' . 'ampforwp-tree-shaking';
if(!file_exists($user_dirname)) wp_mkdir_p($user_dirname);
$new_file = $user_dirname."/".$transient_option.".css";
$ifp = @fopen( $new_file, 'w+' );
return ( array( 'error' => sprintf( __( 'Could not write file %s' ), $new_file ) ));
$result = @fwrite( $ifp, wp_json_encode($value) );
public static function ampforwp_get_file_transient( $transient ) {
$transient = self::ampforwp_get_proper_transient_name($transient);
$pre = apply_filters( "pre_transient_{$transient}", false, $transient );
if ( wp_using_ext_object_cache() ) {
$value = wp_cache_get( $transient, 'transient' );
$transient_option = '_transient_' . $transient;
/*if ( ! wp_installing() ) {
// If option is not in alloptions, it is not autoloaded and thus has a timeout
$alloptions = wp_load_alloptions();
if ( !isset( $alloptions[$transient_option] ) ) {
$transient_timeout = '_transient_timeout_' . $transient;
$timeout = get_option( $transient_timeout );
if ( false !== $timeout && $timeout < time() ) {
delete_option( $transient_option );
delete_option( $transient_timeout );
if ( ! isset( $value ) ){
$upload_dir = wp_upload_dir();
$user_dirname = $upload_dir['basedir'] . '/' . 'ampforwp-tree-shaking';
if(!file_exists($user_dirname)) wp_mkdir_p($user_dirname);
$new_file = $user_dirname."/".$transient_option.".css";
if(file_exists($user_dirname)){
$files = glob($user_dirname . '/*');
//Loop through the file list.
foreach($files as $file){
$file_time = filectime($file);
$file_date = date("Y-m-d",$file_time);
$datetime1 = date_create($file_date);
$get_current_date = date('Y-m-d');
$datetime2 = date_create($get_current_date);
$interval = date_diff($datetime1, $datetime2);
$day_diff = $interval->format('%a');
//Make sure that this is a file and not a directory.
if(is_file($file) && strpos($file, '_transient')!==false ){
//Use the unlink function to delete the file.
if(file_exists($new_file) && filesize($new_file)>0){
$ifp = @fopen( $new_file, 'r' );
$value = fread($ifp, filesize($new_file));
//$value = get_option( $transient_option );
$value = isset($value) ? $value : '';
return apply_filters( "transient_{$transient}", json_decode($value, true), $transient );