# depicter/1.2.0/vendor/htmlburger/wpemerge/src/Middleware/UserLoggedInMiddleware.php

Depicter — Popup &amp; Slider Builder, version 1.2.0. 54 lines.

- Page: https://pluginprobe.com/plugins/depicter/1.2.0/code/vendor/htmlburger/wpemerge/src/Middleware/UserLoggedInMiddleware.php
- Raw: https://pluginprobe.com/plugins/depicter/1.2.0/raw/vendor/htmlburger/wpemerge/src/Middleware/UserLoggedInMiddleware.php
- Modified: 2022-06-01T06:26:20+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/depicter/1.2.0/code/vendor/htmlburger/wpemerge/src/Middleware/UserLoggedInMiddleware.php#L10-L20`.

```php
<?php
/**
 * @package   WPEmerge
 * @author    Atanas Angelov <hi@atanas.dev>
 * @copyright 2017-2019 Atanas Angelov
 * @license   https://www.gnu.org/licenses/gpl-2.0.html GPL-2.0
 * @link      https://wpemerge.com/
 */

namespace WPEmerge\Middleware;

use Closure;
use WPEmerge\Requests\RequestInterface;
use WPEmerge\Responses\ResponseService;

/**
 * Redirect non-logged in users to a specific URL.
 */
class UserLoggedInMiddleware {
	/**
	 * Response service.
	 *
	 * @var ResponseService
	 */
	protected $response_service = null;

	/**
	 * Constructor.
	 *
	 * @codeCoverageIgnore
	 * @param ResponseService $response_service
	 */
	public function __construct( ResponseService $response_service ) {
		$this->response_service = $response_service;
	}

	/**
	 * {@inheritDoc}
	 */
	public function handle( RequestInterface $request, Closure $next, $url = '' ) {
		if ( is_user_logged_in() ) {
			return $next( $request );
		}

		if ( empty( $url ) ) {
			$url = wp_login_url( $request->getUrl() );
		}

		$url = apply_filters( 'wpemerge.middleware.user.logged_in.redirect_url', $url, $request );

		return $this->response_service->redirect( $request )->to( $url );
	}
}

```
