????
Current Path : /home/innovagencyco/www/abtest.innovagency.co.za/wp-content/plugins/speedycache/main/ |
Current File : /home/innovagencyco/www/abtest.innovagency.co.za/wp-content/plugins/speedycache/main/gravatar.php |
<?php namespace SpeedyCache; if(!defined('ABSPATH')){ die('Hacking Attempt'); } class Gravatar{ // Gets gravatar data static function get_avatar_data($args, $id_or_email){ if(empty($args) || empty($args['found_avatar'])){ return $args; } if(empty($args['url'])){ return $args; } // Path to Gravatars $path = \SpeedyCache\Util::cache_path('gravatars'); if(!is_dir($path)){ mkdir($path, 0755, true); touch($path . 'index.html'); } $email_hash = self::get_email_hash($id_or_email); if(empty($email_hash)){ $email_hash = 'default'; } $file_name = $email_hash . 'x' . $args['size'] . '.jpg'; $file = $path . $file_name; if(file_exists($file)){ $url = self::convert_path_to_link($path) . $file_name; $args['url'] = esc_url($url); return $args; } $res = wp_remote_get($args['url']); if(empty($res) || is_wp_error($res)){ return $args; } if(empty($res['body'])){ return $args; } // If we fail to write return the same URL; if(!file_put_contents($file, $res['body'])){ return $args; } $url = self::convert_path_to_link($path) . $file_name; $args['url'] = esc_url($url); return $args; } // Gets the Email hash which is used in the URL. static function get_email_hash($id_or_email){ if(is_numeric($id_or_email)){ $user = get_user_by('id', $id_or_email); if(empty($user) || !is_a($user, 'WP_User')){ return false; } } elseif(is_a($id_or_email, 'WP_User')){ $user = $id_or_email; } elseif(is_a($id_or_email, 'WP_Post')){ $user = get_user_by('id', (int) $id_or_email->post_author); } elseif(is_a($id_or_email, 'WP_Comment')){ if(!empty($id_or_email->user_id)){ $user = get_user_by('id', (int) $id_or_email->user_id); } if((empty($user) || is_wp_error($user)) && !empty($id_or_email->comment_author_email)){ $id_or_email = $id_or_email->comment_author_email; } if(is_a($id_or_email, 'WP_Comment')){ return false; } } if(!empty($user) && is_a($user, 'WP_User')){ $id_or_email = $user->user_email; } // We need an email which should be a string if something else is being passed then just return if(!is_string($id_or_email)){ return false; } $email_hash = md5(strtolower(trim($id_or_email))); return $email_hash; } // Deletes all the gravatar stored static function delete(){ $path = \SpeedyCache\Util::cache_path('gravatars'); if(!file_exists($path)){ return; } $files = scandir($path); if(empty($files)){ return __('No file present to delete', 'speedycache'); } foreach($files as $file){ // We dont want to delete index.html or any directory. if(file_exists($path . $file) && !is_dir($path . $file) && $file != 'index.html'){ @unlink($path . $file); } } return __('Gravatar files deleted', 'speedycache'); } static function convert_path_to_link($path){ preg_match('/\/cache\/speedycache\/.+/', $path, $out); $prefix_link = str_replace(array('http:', 'https:'), '', content_url()); return $prefix_link . $out[0]; } }