# surecart/4.2.2/app/src/Middleware/CheckoutFormModeMiddleware.php

SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, &amp; Payments, version 4.2.2. 36 lines.

- Page: https://pluginprobe.com/plugins/surecart/4.2.2/code/app/src/Middleware/CheckoutFormModeMiddleware.php
- Raw: https://pluginprobe.com/plugins/surecart/4.2.2/raw/app/src/Middleware/CheckoutFormModeMiddleware.php
- Modified: 2026-04-27T21:41:26+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/surecart/4.2.2/code/app/src/Middleware/CheckoutFormModeMiddleware.php#L10-L20`.

```php
<?php

namespace SureCart\Middleware;

use Closure;
use SureCartCore\Requests\RequestInterface;

/**
 * Middleware for handling checkout mode.
 */
class CheckoutFormModeMiddleware {
	/**
	 * Handle the request.
	 *
	 * @param RequestInterface $request Request.
	 * @param Closure          $next Next.
	 * @return function
	 */
	public function handle( RequestInterface $request, Closure $next ) {
		// Check nonce.
		if ( ! $request->query( 'nonce' ) || ! wp_verify_nonce( $request->query( 'nonce' ), 'update_checkout_mode' ) ) {
			wp_die( esc_html__( 'Your session expired - please try again.', 'surecart' ) );
		}

		// Check permission to edit the post.
		if (
			! current_user_can( 'edit_post', $request->query( 'sc_checkout_post' ) ) ||
			! current_user_can( 'edit_post', $request->query( 'sc_checkout_change_mode' ) )
		) {
			wp_die( esc_html__( 'You do not have permission to do this.', 'surecart' ) );
		}

		return $next( $request );
	}
}

```
