MOON
Server: Apache
System: Linux server.royaltuning.hu 4.18.0-425.13.1.el8_7.x86_64 #1 SMP Tue Feb 21 04:20:52 EST 2023 x86_64
User: royaltuning (1001)
PHP: 8.2.31
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/royaltuning/www/public/wp-content/plugins/vp-woo-review-reminder/class-vp.php
<?php
defined( 'ABSPATH' ) || exit;

if( ! class_exists( 'VP_Update_Checker' ) ) {

	class VP_Update_Checker{

		public $plugin_slug;
		public $settings_link;
		public $api_url;
		public function __construct($plugin_slug, $settings_link) {
			$this->plugin_slug = $plugin_slug;
			$this->settings_link = $settings_link;
			$this->api_url = 'https://visztpeter.me/wp-json/vp_woo_plugin/'.$this->plugin_slug;
			add_filter('update_plugins_'.$this->plugin_slug, array($this, 'update'), 10, 4);
			add_filter('plugins_api', array( $this, 'info' ), 20, 3 );
			add_filter( 'plugin_row_meta', array( $this, 'plugin_row_meta' ), 10, 2 );
			add_filter( 'plugin_action_links_' . $this->plugin_slug.'/index.php', array( $this, 'plugin_action_links' ) );
		}

		public function update($update, $plugin_data, $plugin_file, $locales) {
			$remote = wp_remote_get($this->api_url);
			$remote = json_decode( wp_remote_retrieve_body( $remote ) );
			return $remote;
		}

		public function info($res, $action, $args){
			if('plugin_information' === $action && $args->slug == $this->plugin_slug) {
				$remote = wp_remote_get($this->api_url);
				$res = json_decode( wp_remote_retrieve_body( $remote ) );
				$res->sections = json_decode(json_encode($res->sections), true);
				$res->banners = json_decode(json_encode($res->banners), true);			
			}
			return $res;
		}

		public function plugin_row_meta( $links, $file ) {
			if ( strpos($file, $this->plugin_slug) !== false) {
				$row_meta = array(
					'documentation' => '<a href="https://visztpeter.me/dokumentacio/'.$this->plugin_slug.'" target="_blank" aria-label="' . esc_attr__( 'Documentation', $this->plugin_slug ) . '">' . esc_html__( 'Documentation', $this->plugin_slug ) . '</a>'
				);	
				$links = array_merge($links, $row_meta);
			}
			return $links;
		}

		public function plugin_action_links( $links ) {
			$action_links = array(
				'settings' => '<a href="' . esc_url(admin_url( $this->settings_link )) . '" aria-label="' . esc_attr__( 'Settings', $this->plugin_slug ) . '">' . esc_html__( 'Settings', $this->plugin_slug ) . '</a>',
			);
	
			return array_merge( $action_links, $links );
		}

	}

}