PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.15.3
GiveWP – Donation Plugin and Fundraising Platform v4.15.3
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / API / REST / V3 / Entities / Actions / RegisterPublicEntities.php
give / src / API / REST / V3 / Entities / Actions Last commit date
RegisterAdminEntities.php 7 months ago RegisterPublicEntities.php 7 months ago
RegisterPublicEntities.php
72 lines
1 <?php
2
3 namespace Give\API\REST\V3\Entities\Actions;
4
5 use Give\Framework\Support\Facades\Scripts\ScriptAsset;
6 use Give\Helpers\Language;
7
8 /**
9 * @since 4.13.1
10 */
11 class RegisterPublicEntities
12 {
13 /**
14 * @since 4.13.1
15 */
16 public function __invoke()
17 {
18 $handleName = 'givewp-entities-public';
19 $scriptAsset = ScriptAsset::get(GIVE_PLUGIN_DIR . 'build/entitiesPublic.asset.php');
20
21 wp_register_script(
22 $handleName,
23 GIVE_PLUGIN_URL . 'build/entitiesPublic.js',
24 $scriptAsset['dependencies'],
25 $scriptAsset['version'],
26 true
27 );
28
29 // Prevent unnecessary current-user fetch/noise for logged-out visitors.
30 if (!is_user_logged_in()) {
31 $this->disableCurrentUserFetch();
32 }
33
34 wp_enqueue_script($handleName);
35
36 Language::setScriptTranslations($handleName);
37 }
38
39 /**
40 * Adds an inline wp.apiFetch middleware that prevents unauthenticated requests
41 * to the current-user REST endpoint from being sent.
42 *
43 * Why
44 * - Core packages (e.g., preferences-persistence, core-data) may call
45 * `/wp/v2/users/me` on the front end. When the visitor is not logged in,
46 * WordPress responds with 401 `rest_not_logged_in`, which creates noisy
47 * console errors.
48 *
49 * What it does
50 * - Hooks into the global `wp.apiFetch` pipeline and normalizes the request
51 * target from `options.path` or `options.url` to a path+query string.
52 * - If the target contains `/wp/v2/users/me` (with or without query
53 * parameters), it immediately resolves with `null`, avoiding the network
54 * call and the resulting console error.
55 * - Otherwise, it delegates to the next middleware.
56 *
57 * Scope
58 * - Only applied for logged-out visitors (see caller).
59 * - Does not affect logged-in users or other endpoints.
60 *
61 * @since 4.13.1
62 */
63 private function disableCurrentUserFetch()
64 {
65 wp_add_inline_script(
66 'wp-api-fetch',
67 '(function(){if(!window.wp||!wp.apiFetch||!wp.apiFetch.use){return;}wp.apiFetch.use(function(options,next){var p=String((options&&(options.path||options.url))||"");try{var u=new URL(p,window.location.origin);p=(u.pathname||"")+(u.search||"");}catch(e){}if(p.indexOf("/wp/v2/users/me")!==-1){return Promise.resolve(null);}return next(options);});})();',
68 'after'
69 );
70 }
71 }
72