PluginProbe
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder / 2.15.3
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder v2.15.3
3.3.1 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 All 138 releases
← All changes | includes/Core/Capability/Request.php +11 -26 3.1.02.15.3 View file →
@@ -27,36 +27,21 @@
27 27 }
28 28
29 29 public static function isPluginPage()
30 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;
31 + $queryToRemove = ['formID', 'entryID', 'fileID', 'download'];
32 + $parsed_url = wp_parse_url(home_url());
33 + $site_url = $parsed_url['scheme'] . '://' . $parsed_url['host'];
36 34
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) {
35 + $reqUrl = $site_url . remove_query_arg($queryToRemove, $_SERVER['REQUEST_URI']);
36 + $downloadUrl = FileDownloadProvider::getBaseDownloadURL();
37 + $reqUrl = '/' !== \substr($reqUrl, -1) ? $reqUrl . '/' : $reqUrl;
38 + $downloadUrl = '/' !== \substr($downloadUrl, -1) ? $downloadUrl . '/' : $downloadUrl;
39 + switch ($reqUrl) {
40 + case $downloadUrl:{
47 41 return true;
48 42 }
43 + default:
44 + return false;
49 45 }
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 46 }
62 47 }