403Webshell
Server IP : 172.67.214.6  /  Your IP : 216.73.216.84
Web Server : LiteSpeed
System : Linux premium900.web-hosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64
User : redwjova ( 1790)
PHP Version : 8.1.32
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : ON |  Sudo : OFF |  Pkexec : OFF
Directory :  /home/redwjova/fyntric.com/wp-content/plugins/sphere-core/components/likes/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/redwjova/fyntric.com/wp-content/plugins/sphere-core/components/likes/module.php
<?php
namespace Sphere\Core\Likes;

use Bunyad;

/**
 * A likes/+1 system handler
 */
class Module
{
	public function __construct()
	{
        add_action('wp_ajax_sphere_likes', array($this, 'ajax_like'));
		add_action('wp_ajax_nopriv_sphere_likes', array($this, 'ajax_like'));
		
		// add_action('wp_enqueue_scripts', array($this, 'register_script'));

		// Register AJAX URL.
		add_filter('wp_head', function() {

			if (Bunyad::amp() && Bunyad::amp()->active()) {
				return;
			}

			printf(
				'<script>var Sphere_Plugin = %s;</script>', 
				wp_json_encode([
					'ajaxurl' => admin_url('admin-ajax.php')
				])
			);
		});
	}
	
	/**
	 * AJAX handler for likes
	 */
	public function ajax_like()
	{
		// Can the rating be added - perform all checks
		if (!$this->can_like(intval($_POST['id']))) {
			echo -1;
			wp_die();
		}
		
		$likes = $this->add_like($_POST['id']);
		
		echo json_encode(array('count' => $likes['count']));
		
		wp_die();
	}
	
	/**
	 * Get existing count 
	 * 
	 * @param integer|null $post_id
	 */
	public function get_count($post_id = null)
	{
		if (!$post_id) {
			$post_id = get_the_ID();
		}
		
		$votes = get_post_meta($post_id, '_sphere_user_likes', true);
		return (!empty($votes['count']) ? $votes['count'] : 0);
	}
	
	/**
	 * Add a like for the post 
	 */
	public function add_like($post_id = null)
	{
		if (!$post_id) {
			$post_id = get_the_ID();
		}
		
		if (!$this->can_like($post_id)) {
			return false;
		}
		
		$likes = get_post_meta($post_id, '_sphere_user_likes', true);
		
		// Defaults if no votes yet
		if (!is_array($likes)) {
			$likes = array('votes' => array(), 'count' => 0);
		}
		
		$likes['count']++;
		
		// Add IP Address - @deprecated for privacy
		// $likes['votes'][time()] = $this->get_user_ip();
		$likes['votes'][time()] = 1;
		
			
		// save meta data
		update_post_meta(intval($_POST['id']), '_sphere_user_likes', $likes);
		update_post_meta(intval($_POST['id']), '_sphere_user_likes_count', $likes['count']); 
		
		// set the cookie
		$ids = array();
		if (!empty($_COOKIE['sphere_user_likes'])) {
			$ids = (array) explode('|', $_COOKIE['sphere_user_likes']);
		}
		
		array_push($ids, $_POST['id']);
		setcookie('sphere_user_likes', implode('|', $ids), time() + 30 * DAY_IN_SECONDS, COOKIEPATH);
		
		return $likes;
	}
	
	/**
	 * Whether a user can like
	 * 
	 * @param integer|null $post_id
	 */
	public function can_like($post_id = null)
	{
		if (!$post_id) {
			$post_id = get_the_ID();
		}
		
		// Only supported for posts
		if (get_post_type($post_id) !== 'post') {
			return false;
		}

		// IP check - @deprecated since GDPR update
		// $votes = get_post_meta($post_id, '_sphere_user_likes', true);
		// $user_ip = $this->get_user_ip();
		
		// if (!empty($votes['votes'])) {
			
		// 	foreach ((array) $votes['votes'] as $time => $data) {
		// 		if (!empty($data[1]) && $data[1] == $user_ip) {
		// 			return false;
		// 		}
		// 	}
		// }
		
		// Cookie check
		if (!empty($_COOKIE['sphere_user_likes'])) {
			$ids = (array) explode('|', $_COOKIE['sphere_user_likes']);
			
			if (in_array($post_id, $ids)) {
				return false;
			}
		}
		
		return true;
	}
	
	/**
	 * Get user ip
	 * 
	 * @deprecated No longer used since GDPR update
	 */
	// public function get_user_ip()
	// {
	// 	if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
	// 		// check ip from share internet
	// 		$ip = $_SERVER['HTTP_CLIENT_IP'];	
	// 	}
	// 	elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
	// 		// to check ip is pass from proxy
	// 		$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
	// 	}
	// 	else {
	// 		$ip = $_SERVER['REMOTE_ADDR'];
	// 	}

	// 	return $ip;
	// }
}

Youez - 2016 - github.com/yon3zu
LinuXploit