Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/mets-rebuild.corals.io/wp-content/plugins/favorites/app/Entities/Post/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/mets-rebuild.corals.io/wp-content/plugins/favorites/app/Entities/Post/AdminColumns.php
<?php
namespace Favorites\Entities\Post;

use Favorites\Config\SettingsRepository;
use Favorites\Entities\PostType\PostTypeRepository;

/**
* Add Post Favorite Counts to Admin Columns
*/
class AdminColumns
{
	/**
	* Settings Repository
	*/
	private $settings_repo;

	/**
	* Post Type Repository
	*/
	private $post_type_repo;

	/**
	* Post Type
	*/
	private $post_types;

	public function __construct()
	{
		$this->settings_repo = new SettingsRepository;
		$this->post_type_repo = new PostTypeRepository;
		$this->setPostTypes();
		$this->addHooks();
	}

	/**
	* Set the Post Types
	*/
	private function setPostTypes()
	{
		$this->post_types = [];
		foreach ( $this->post_type_repo->getAllPostTypes() as $key => $posttype ) : 
			$display = $this->settings_repo->displayInPostType($posttype);
			if ( isset($display['admincolumns']) ) array_push($this->post_types, $key);
		endforeach;
	}

	/**
	* Add Hooks
	*/
	private function addHooks()
	{
		foreach($this->post_types as $type){
			add_filter('manage_' . $type . '_posts_columns', [$this, 'addColumn']);
			add_action('manage_' . $type . '_posts_custom_column', [$this, 'addColumnData'], 10, 2);
		}
	}

	/**
	* Add the column
	*/
	public function addColumn($columns)
	{
		$new_column = ['favorites' => __('Favorites', 'favorites')];
		return array_merge($columns, $new_column);
	}

	/**
	* Add the column data
	*/
	public function addColumnData($column, $post_id)
	{
		if ( $column !== 'favorites' ) return;
		echo get_favorites_count($post_id);
	}
}

Spamworldpro Mini