# spinupwp/1.3/src/AdminBar.php

SpinupWP, version 1.3. 83 lines.

- Page: https://pluginprobe.com/plugins/spinupwp/1.3/code/src/AdminBar.php
- Raw: https://pluginprobe.com/plugins/spinupwp/1.3/raw/src/AdminBar.php
- Modified: 2021-02-03T16:10:12+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/spinupwp/1.3/code/src/AdminBar.php#L10-L20`.

```php
<?php

namespace DeliciousBrains\SpinupWp;

class AdminBar {

	/**
	 * @var array
	 */
	private $items = array();

	/**
	 * @var string
	 */
	public $url;

	/**
	 * AdminBar constructor.
	 *
	 * @param string $url
	 */
	public function __construct( $url ) {
		$this->url = $url;
	}

	/**
	 * Init
	 */
	public function init() {
		add_action( 'admin_bar_menu', array( $this, 'render' ), 100 );
		add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
	}

	/**
	 * Enqueue admin scripts.
	 */
	public function enqueue_scripts() {
		wp_enqueue_style( 'spinupwp-admin', $this->url . 'assets/css/admin.css', array(), '1.0' );
	}

	/**
	 * Render the admin bar menu.
	 *
	 * @param $wp_admin_bar
	 */
	public function render( $wp_admin_bar ) {
		if ( empty( $this->items ) ) {
			return;
		}

		if ( ! current_user_can( apply_filters( 'spinupwp_purge_cache_capability', 'manage_options' ) ) ) {
			return;
		}

		$wp_admin_bar->add_node( array(
			'id'    => 'spinupwp',
			'title' => apply_filters( 'spinupwp_admin_bar_title', __( 'Cache', 'spinupwp' ) ),
		) );

		foreach ( $this->items as $item ) {
			$wp_admin_bar->add_node( array(
				'parent' => 'spinupwp',
				'id'     => strtolower( str_replace( ' ', '-', $item['title'] ) ),
				'title'  => $item['title'],
				'href'   => wp_nonce_url( add_query_arg( 'spinupwp_action', $item['action'], admin_url() ), $item['action'] ),
			) );
		}
	}

	/**
	 * Add an item to the admin bar.
	 *
	 * @param string $title
	 * @param string $action
	 */
	public function add_item( $title, $action ) {
		$this->items[] = array(
			'title'  => $title,
			'action' => $action,
		);
	}
}

```
