PluginProbe
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder / 3.1.3
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder v3.1.3
V-3.3.0 3.2.2 3.2.1 3.2.0 3.1.4 3.1.3 3.1.2 3.1.1 3.1.0 V3.0.3 V3.0.2 -3.0.1 V_3.0.0 1.1.1 1.1.8 1.2 1.3 1.4 1.4.18 1.5.2 1.9 2.0 2.10.0 2.10.1 2.10.2 All 137 releases
bit-form / includes / Core / Capability / Request.php

Request.php in Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder 3.1.3, at includes/Core/Capability/Request.php

63 lines 2.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace BitCode\BitForm\Core\Capability;
4
5 use BitCode\BitForm\Core\Util\FileDownloadProvider;
6
7 final class Request
8 {
9 public static function Check($type)
10 {
11 switch ($type) {
12 case 'admin':
13 return is_admin();
14
15 case 'ajax':
16 return defined('DOING_AJAX');
17
18 case 'cron':
19 return defined('DOING_CRON');
20
21 case 'api':
22 return defined('REST_REQUEST');
23
24 case 'frontend':
25 return (!is_admin() || defined('DOING_AJAX')) && !defined('DOING_CRON');
26 }
27 }
28
29 public static function isPluginPage()
30 {
31 // Plain permalinks put the file route in the query string (?post_type=bitforms&p=ID),
32 // pretty permalinks put it in the path (/bitforms/bitforms-file/). Match both, otherwise
33 // the download handler/shortcode never registers on plain-permalink sites.
34 $routes = get_option('bitforms_routes');
35 $fileRouteId = isset($routes['file']) ? (int) $routes['file'] : 0;
36
37 // Plain permalink: ?p=ID (post) or ?page_id=ID, with post_type=bitforms.
38 // Read-only: query vars inspected to detect plugin-managed URL. No state change.
39 if (!empty($fileRouteId)) {
40 $reqPostId = 0;
41 if (isset($_GET['p']) && !is_array($_GET['p'])) {
42 $reqPostId = (int) $_GET['p'];
43 } elseif (isset($_GET['page_id']) && !is_array($_GET['page_id'])) {
44 $reqPostId = (int) $_GET['page_id'];
45 }
46 if ($reqPostId === $fileRouteId) {
47 return true;
48 }
49 }
50
51 // Pretty permalink: compare request path against the download URL path.
52 $downloadUrl = FileDownloadProvider::getBaseDownloadURL();
53 $downloadPath = wp_parse_url($downloadUrl, PHP_URL_PATH);
54 // Read-only: REQUEST_URI parsed to check if current request targets a plugin-managed URL. No state change.
55 $reqPath = isset($_SERVER['REQUEST_URI']) ? wp_parse_url(wp_unslash($_SERVER['REQUEST_URI']), PHP_URL_PATH) : '';
56 if (empty($downloadPath) || empty($reqPath)) {
57 return false;
58 }
59
60 return untrailingslashit($downloadPath) === untrailingslashit($reqPath);
61 }
62 }
63