Edit File by line
/home/zeestwma/ajeebong.../wp-admin.../includes
File: plugin.php
foreach ( array_keys( (array) $submenu ) as $parent_page ) {
[2000] Fix | Delete
foreach ( $submenu[ $parent_page ] as $submenu_array ) {
[2001] Fix | Delete
if ( isset( $_wp_real_parent_file[ $parent_page ] ) ) {
[2002] Fix | Delete
$parent_page = $_wp_real_parent_file[ $parent_page ];
[2003] Fix | Delete
}
[2004] Fix | Delete
[2005] Fix | Delete
if ( ! empty( $typenow ) && "$pagenow?post_type=$typenow" === $submenu_array[2] ) {
[2006] Fix | Delete
$parent_file = $parent_page;
[2007] Fix | Delete
return $parent_page;
[2008] Fix | Delete
} elseif ( empty( $typenow ) && $pagenow === $submenu_array[2]
[2009] Fix | Delete
&& ( empty( $parent_file ) || ! str_contains( $parent_file, '?' ) )
[2010] Fix | Delete
) {
[2011] Fix | Delete
$parent_file = $parent_page;
[2012] Fix | Delete
return $parent_page;
[2013] Fix | Delete
} elseif ( isset( $plugin_page ) && $plugin_page === $submenu_array[2] ) {
[2014] Fix | Delete
$parent_file = $parent_page;
[2015] Fix | Delete
return $parent_page;
[2016] Fix | Delete
}
[2017] Fix | Delete
}
[2018] Fix | Delete
}
[2019] Fix | Delete
[2020] Fix | Delete
if ( empty( $parent_file ) ) {
[2021] Fix | Delete
$parent_file = '';
[2022] Fix | Delete
}
[2023] Fix | Delete
return '';
[2024] Fix | Delete
}
[2025] Fix | Delete
[2026] Fix | Delete
/**
[2027] Fix | Delete
* Gets the title of the current admin page.
[2028] Fix | Delete
*
[2029] Fix | Delete
* @since 1.5.0
[2030] Fix | Delete
*
[2031] Fix | Delete
* @global string $title The title of the current screen.
[2032] Fix | Delete
* @global array $menu
[2033] Fix | Delete
* @global array $submenu
[2034] Fix | Delete
* @global string $pagenow The filename of the current screen.
[2035] Fix | Delete
* @global string $typenow The post type of the current screen.
[2036] Fix | Delete
* @global string $plugin_page
[2037] Fix | Delete
*
[2038] Fix | Delete
* @return string The title of the current admin page.
[2039] Fix | Delete
*/
[2040] Fix | Delete
function get_admin_page_title() {
[2041] Fix | Delete
global $title, $menu, $submenu, $pagenow, $typenow, $plugin_page;
[2042] Fix | Delete
[2043] Fix | Delete
if ( ! empty( $title ) ) {
[2044] Fix | Delete
return $title;
[2045] Fix | Delete
}
[2046] Fix | Delete
[2047] Fix | Delete
$hook = get_plugin_page_hook( $plugin_page, $pagenow );
[2048] Fix | Delete
[2049] Fix | Delete
$parent = get_admin_page_parent();
[2050] Fix | Delete
$parent1 = $parent;
[2051] Fix | Delete
[2052] Fix | Delete
if ( empty( $parent ) ) {
[2053] Fix | Delete
foreach ( (array) $menu as $menu_array ) {
[2054] Fix | Delete
if ( isset( $menu_array[3] ) ) {
[2055] Fix | Delete
if ( $menu_array[2] === $pagenow ) {
[2056] Fix | Delete
$title = $menu_array[3];
[2057] Fix | Delete
return $menu_array[3];
[2058] Fix | Delete
} elseif ( isset( $plugin_page ) && $plugin_page === $menu_array[2] && $hook === $menu_array[5] ) {
[2059] Fix | Delete
$title = $menu_array[3];
[2060] Fix | Delete
return $menu_array[3];
[2061] Fix | Delete
}
[2062] Fix | Delete
} else {
[2063] Fix | Delete
$title = $menu_array[0];
[2064] Fix | Delete
return $title;
[2065] Fix | Delete
}
[2066] Fix | Delete
}
[2067] Fix | Delete
} else {
[2068] Fix | Delete
foreach ( array_keys( $submenu ) as $parent ) {
[2069] Fix | Delete
foreach ( $submenu[ $parent ] as $submenu_array ) {
[2070] Fix | Delete
if ( isset( $plugin_page )
[2071] Fix | Delete
&& $plugin_page === $submenu_array[2]
[2072] Fix | Delete
&& ( $pagenow === $parent
[2073] Fix | Delete
|| $plugin_page === $parent
[2074] Fix | Delete
|| $plugin_page === $hook
[2075] Fix | Delete
|| 'admin.php' === $pagenow && $parent1 !== $submenu_array[2]
[2076] Fix | Delete
|| ! empty( $typenow ) && "$pagenow?post_type=$typenow" === $parent )
[2077] Fix | Delete
) {
[2078] Fix | Delete
$title = $submenu_array[3];
[2079] Fix | Delete
return $submenu_array[3];
[2080] Fix | Delete
}
[2081] Fix | Delete
[2082] Fix | Delete
if ( $submenu_array[2] !== $pagenow || isset( $_GET['page'] ) ) { // Not the current page.
[2083] Fix | Delete
continue;
[2084] Fix | Delete
}
[2085] Fix | Delete
[2086] Fix | Delete
if ( isset( $submenu_array[3] ) ) {
[2087] Fix | Delete
$title = $submenu_array[3];
[2088] Fix | Delete
return $submenu_array[3];
[2089] Fix | Delete
} else {
[2090] Fix | Delete
$title = $submenu_array[0];
[2091] Fix | Delete
return $title;
[2092] Fix | Delete
}
[2093] Fix | Delete
}
[2094] Fix | Delete
}
[2095] Fix | Delete
if ( empty( $title ) ) {
[2096] Fix | Delete
foreach ( $menu as $menu_array ) {
[2097] Fix | Delete
if ( isset( $plugin_page )
[2098] Fix | Delete
&& $plugin_page === $menu_array[2]
[2099] Fix | Delete
&& 'admin.php' === $pagenow
[2100] Fix | Delete
&& $parent1 === $menu_array[2]
[2101] Fix | Delete
) {
[2102] Fix | Delete
$title = $menu_array[3];
[2103] Fix | Delete
return $menu_array[3];
[2104] Fix | Delete
}
[2105] Fix | Delete
}
[2106] Fix | Delete
}
[2107] Fix | Delete
}
[2108] Fix | Delete
[2109] Fix | Delete
return $title;
[2110] Fix | Delete
}
[2111] Fix | Delete
[2112] Fix | Delete
/**
[2113] Fix | Delete
* Gets the hook attached to the administrative page of a plugin.
[2114] Fix | Delete
*
[2115] Fix | Delete
* @since 1.5.0
[2116] Fix | Delete
*
[2117] Fix | Delete
* @param string $plugin_page The slug name of the plugin page.
[2118] Fix | Delete
* @param string $parent_page The slug name for the parent menu (or the file name of a standard
[2119] Fix | Delete
* WordPress admin page).
[2120] Fix | Delete
* @return string|null Hook attached to the plugin page, null otherwise.
[2121] Fix | Delete
*/
[2122] Fix | Delete
function get_plugin_page_hook( $plugin_page, $parent_page ) {
[2123] Fix | Delete
$hook = get_plugin_page_hookname( $plugin_page, $parent_page );
[2124] Fix | Delete
if ( has_action( $hook ) ) {
[2125] Fix | Delete
return $hook;
[2126] Fix | Delete
} else {
[2127] Fix | Delete
return null;
[2128] Fix | Delete
}
[2129] Fix | Delete
}
[2130] Fix | Delete
[2131] Fix | Delete
/**
[2132] Fix | Delete
* Gets the hook name for the administrative page of a plugin.
[2133] Fix | Delete
*
[2134] Fix | Delete
* @since 1.5.0
[2135] Fix | Delete
*
[2136] Fix | Delete
* @global array $admin_page_hooks
[2137] Fix | Delete
*
[2138] Fix | Delete
* @param string $plugin_page The slug name of the plugin page.
[2139] Fix | Delete
* @param string $parent_page The slug name for the parent menu (or the file name of a standard
[2140] Fix | Delete
* WordPress admin page).
[2141] Fix | Delete
* @return string Hook name for the plugin page.
[2142] Fix | Delete
*/
[2143] Fix | Delete
function get_plugin_page_hookname( $plugin_page, $parent_page ) {
[2144] Fix | Delete
global $admin_page_hooks;
[2145] Fix | Delete
[2146] Fix | Delete
$parent = get_admin_page_parent( $parent_page );
[2147] Fix | Delete
[2148] Fix | Delete
$page_type = 'admin';
[2149] Fix | Delete
if ( empty( $parent_page ) || 'admin.php' === $parent_page || isset( $admin_page_hooks[ $plugin_page ] ) ) {
[2150] Fix | Delete
if ( isset( $admin_page_hooks[ $plugin_page ] ) ) {
[2151] Fix | Delete
$page_type = 'toplevel';
[2152] Fix | Delete
} elseif ( isset( $admin_page_hooks[ $parent ] ) ) {
[2153] Fix | Delete
$page_type = $admin_page_hooks[ $parent ];
[2154] Fix | Delete
}
[2155] Fix | Delete
} elseif ( isset( $admin_page_hooks[ $parent ] ) ) {
[2156] Fix | Delete
$page_type = $admin_page_hooks[ $parent ];
[2157] Fix | Delete
}
[2158] Fix | Delete
[2159] Fix | Delete
$plugin_name = preg_replace( '!\.php!', '', $plugin_page );
[2160] Fix | Delete
[2161] Fix | Delete
return $page_type . '_page_' . $plugin_name;
[2162] Fix | Delete
}
[2163] Fix | Delete
[2164] Fix | Delete
/**
[2165] Fix | Delete
* Determines whether the current user can access the current admin page.
[2166] Fix | Delete
*
[2167] Fix | Delete
* @since 1.5.0
[2168] Fix | Delete
*
[2169] Fix | Delete
* @global string $pagenow The filename of the current screen.
[2170] Fix | Delete
* @global array $menu
[2171] Fix | Delete
* @global array $submenu
[2172] Fix | Delete
* @global array $_wp_menu_nopriv
[2173] Fix | Delete
* @global array $_wp_submenu_nopriv
[2174] Fix | Delete
* @global string $plugin_page
[2175] Fix | Delete
* @global array $_registered_pages
[2176] Fix | Delete
*
[2177] Fix | Delete
* @return bool True if the current user can access the admin page, false otherwise.
[2178] Fix | Delete
*/
[2179] Fix | Delete
function user_can_access_admin_page() {
[2180] Fix | Delete
global $pagenow, $menu, $submenu, $_wp_menu_nopriv, $_wp_submenu_nopriv,
[2181] Fix | Delete
$plugin_page, $_registered_pages;
[2182] Fix | Delete
[2183] Fix | Delete
$parent = get_admin_page_parent();
[2184] Fix | Delete
[2185] Fix | Delete
if ( ! isset( $plugin_page ) && isset( $_wp_submenu_nopriv[ $parent ][ $pagenow ] ) ) {
[2186] Fix | Delete
return false;
[2187] Fix | Delete
}
[2188] Fix | Delete
[2189] Fix | Delete
if ( isset( $plugin_page ) ) {
[2190] Fix | Delete
if ( isset( $_wp_submenu_nopriv[ $parent ][ $plugin_page ] ) ) {
[2191] Fix | Delete
return false;
[2192] Fix | Delete
}
[2193] Fix | Delete
[2194] Fix | Delete
$hookname = get_plugin_page_hookname( $plugin_page, $parent );
[2195] Fix | Delete
[2196] Fix | Delete
if ( ! isset( $_registered_pages[ $hookname ] ) ) {
[2197] Fix | Delete
return false;
[2198] Fix | Delete
}
[2199] Fix | Delete
}
[2200] Fix | Delete
[2201] Fix | Delete
if ( empty( $parent ) ) {
[2202] Fix | Delete
if ( isset( $_wp_menu_nopriv[ $pagenow ] ) ) {
[2203] Fix | Delete
return false;
[2204] Fix | Delete
}
[2205] Fix | Delete
if ( isset( $_wp_submenu_nopriv[ $pagenow ][ $pagenow ] ) ) {
[2206] Fix | Delete
return false;
[2207] Fix | Delete
}
[2208] Fix | Delete
if ( isset( $plugin_page ) && isset( $_wp_submenu_nopriv[ $pagenow ][ $plugin_page ] ) ) {
[2209] Fix | Delete
return false;
[2210] Fix | Delete
}
[2211] Fix | Delete
if ( isset( $plugin_page ) && isset( $_wp_menu_nopriv[ $plugin_page ] ) ) {
[2212] Fix | Delete
return false;
[2213] Fix | Delete
}
[2214] Fix | Delete
[2215] Fix | Delete
foreach ( array_keys( $_wp_submenu_nopriv ) as $key ) {
[2216] Fix | Delete
if ( isset( $_wp_submenu_nopriv[ $key ][ $pagenow ] ) ) {
[2217] Fix | Delete
return false;
[2218] Fix | Delete
}
[2219] Fix | Delete
if ( isset( $plugin_page ) && isset( $_wp_submenu_nopriv[ $key ][ $plugin_page ] ) ) {
[2220] Fix | Delete
return false;
[2221] Fix | Delete
}
[2222] Fix | Delete
}
[2223] Fix | Delete
[2224] Fix | Delete
return true;
[2225] Fix | Delete
}
[2226] Fix | Delete
[2227] Fix | Delete
if ( isset( $plugin_page ) && $plugin_page === $parent && isset( $_wp_menu_nopriv[ $plugin_page ] ) ) {
[2228] Fix | Delete
return false;
[2229] Fix | Delete
}
[2230] Fix | Delete
[2231] Fix | Delete
if ( isset( $submenu[ $parent ] ) ) {
[2232] Fix | Delete
foreach ( $submenu[ $parent ] as $submenu_array ) {
[2233] Fix | Delete
if ( isset( $plugin_page ) && $submenu_array[2] === $plugin_page ) {
[2234] Fix | Delete
return current_user_can( $submenu_array[1] );
[2235] Fix | Delete
} elseif ( $submenu_array[2] === $pagenow ) {
[2236] Fix | Delete
return current_user_can( $submenu_array[1] );
[2237] Fix | Delete
}
[2238] Fix | Delete
}
[2239] Fix | Delete
}
[2240] Fix | Delete
[2241] Fix | Delete
foreach ( $menu as $menu_array ) {
[2242] Fix | Delete
if ( $menu_array[2] === $parent ) {
[2243] Fix | Delete
return current_user_can( $menu_array[1] );
[2244] Fix | Delete
}
[2245] Fix | Delete
}
[2246] Fix | Delete
[2247] Fix | Delete
return true;
[2248] Fix | Delete
}
[2249] Fix | Delete
[2250] Fix | Delete
/* Allowed list functions */
[2251] Fix | Delete
[2252] Fix | Delete
/**
[2253] Fix | Delete
* Refreshes the value of the allowed options list available via the 'allowed_options' hook.
[2254] Fix | Delete
*
[2255] Fix | Delete
* See the {@see 'allowed_options'} filter.
[2256] Fix | Delete
*
[2257] Fix | Delete
* @since 2.7.0
[2258] Fix | Delete
* @since 5.5.0 `$new_whitelist_options` was renamed to `$new_allowed_options`.
[2259] Fix | Delete
* Please consider writing more inclusive code.
[2260] Fix | Delete
*
[2261] Fix | Delete
* @global array $new_allowed_options
[2262] Fix | Delete
*
[2263] Fix | Delete
* @param array $options
[2264] Fix | Delete
* @return array
[2265] Fix | Delete
*/
[2266] Fix | Delete
function option_update_filter( $options ) {
[2267] Fix | Delete
global $new_allowed_options;
[2268] Fix | Delete
[2269] Fix | Delete
if ( is_array( $new_allowed_options ) ) {
[2270] Fix | Delete
$options = add_allowed_options( $new_allowed_options, $options );
[2271] Fix | Delete
}
[2272] Fix | Delete
[2273] Fix | Delete
return $options;
[2274] Fix | Delete
}
[2275] Fix | Delete
[2276] Fix | Delete
/**
[2277] Fix | Delete
* Adds an array of options to the list of allowed options.
[2278] Fix | Delete
*
[2279] Fix | Delete
* @since 5.5.0
[2280] Fix | Delete
*
[2281] Fix | Delete
* @global array $allowed_options
[2282] Fix | Delete
*
[2283] Fix | Delete
* @param array $new_options
[2284] Fix | Delete
* @param string|array $options
[2285] Fix | Delete
* @return array
[2286] Fix | Delete
*/
[2287] Fix | Delete
function add_allowed_options( $new_options, $options = '' ) {
[2288] Fix | Delete
if ( '' === $options ) {
[2289] Fix | Delete
global $allowed_options;
[2290] Fix | Delete
} else {
[2291] Fix | Delete
$allowed_options = $options;
[2292] Fix | Delete
}
[2293] Fix | Delete
[2294] Fix | Delete
foreach ( $new_options as $page => $keys ) {
[2295] Fix | Delete
foreach ( $keys as $key ) {
[2296] Fix | Delete
if ( ! isset( $allowed_options[ $page ] ) || ! is_array( $allowed_options[ $page ] ) ) {
[2297] Fix | Delete
$allowed_options[ $page ] = array();
[2298] Fix | Delete
$allowed_options[ $page ][] = $key;
[2299] Fix | Delete
} else {
[2300] Fix | Delete
$pos = array_search( $key, $allowed_options[ $page ], true );
[2301] Fix | Delete
if ( false === $pos ) {
[2302] Fix | Delete
$allowed_options[ $page ][] = $key;
[2303] Fix | Delete
}
[2304] Fix | Delete
}
[2305] Fix | Delete
}
[2306] Fix | Delete
}
[2307] Fix | Delete
[2308] Fix | Delete
return $allowed_options;
[2309] Fix | Delete
}
[2310] Fix | Delete
[2311] Fix | Delete
/**
[2312] Fix | Delete
* Removes a list of options from the allowed options list.
[2313] Fix | Delete
*
[2314] Fix | Delete
* @since 5.5.0
[2315] Fix | Delete
*
[2316] Fix | Delete
* @global array $allowed_options
[2317] Fix | Delete
*
[2318] Fix | Delete
* @param array $del_options
[2319] Fix | Delete
* @param string|array $options
[2320] Fix | Delete
* @return array
[2321] Fix | Delete
*/
[2322] Fix | Delete
function remove_allowed_options( $del_options, $options = '' ) {
[2323] Fix | Delete
if ( '' === $options ) {
[2324] Fix | Delete
global $allowed_options;
[2325] Fix | Delete
} else {
[2326] Fix | Delete
$allowed_options = $options;
[2327] Fix | Delete
}
[2328] Fix | Delete
[2329] Fix | Delete
foreach ( $del_options as $page => $keys ) {
[2330] Fix | Delete
foreach ( $keys as $key ) {
[2331] Fix | Delete
if ( isset( $allowed_options[ $page ] ) && is_array( $allowed_options[ $page ] ) ) {
[2332] Fix | Delete
$pos = array_search( $key, $allowed_options[ $page ], true );
[2333] Fix | Delete
if ( false !== $pos ) {
[2334] Fix | Delete
unset( $allowed_options[ $page ][ $pos ] );
[2335] Fix | Delete
}
[2336] Fix | Delete
}
[2337] Fix | Delete
}
[2338] Fix | Delete
}
[2339] Fix | Delete
[2340] Fix | Delete
return $allowed_options;
[2341] Fix | Delete
}
[2342] Fix | Delete
[2343] Fix | Delete
/**
[2344] Fix | Delete
* Outputs nonce, action, and option_page fields for a settings page.
[2345] Fix | Delete
*
[2346] Fix | Delete
* @since 2.7.0
[2347] Fix | Delete
*
[2348] Fix | Delete
* @param string $option_group A settings group name. This should match the group name
[2349] Fix | Delete
* used in register_setting().
[2350] Fix | Delete
*/
[2351] Fix | Delete
function settings_fields( $option_group ) {
[2352] Fix | Delete
echo "<input type='hidden' name='option_page' value='" . esc_attr( $option_group ) . "' />";
[2353] Fix | Delete
echo '<input type="hidden" name="action" value="update" />';
[2354] Fix | Delete
wp_nonce_field( "$option_group-options" );
[2355] Fix | Delete
}
[2356] Fix | Delete
[2357] Fix | Delete
/**
[2358] Fix | Delete
* Clears the plugins cache used by get_plugins() and by default, the plugin updates cache.
[2359] Fix | Delete
*
[2360] Fix | Delete
* @since 3.7.0
[2361] Fix | Delete
*
[2362] Fix | Delete
* @param bool $clear_update_cache Whether to clear the plugin updates cache. Default true.
[2363] Fix | Delete
*/
[2364] Fix | Delete
function wp_clean_plugins_cache( $clear_update_cache = true ) {
[2365] Fix | Delete
if ( $clear_update_cache ) {
[2366] Fix | Delete
delete_site_transient( 'update_plugins' );
[2367] Fix | Delete
}
[2368] Fix | Delete
wp_cache_delete( 'plugins', 'plugins' );
[2369] Fix | Delete
}
[2370] Fix | Delete
[2371] Fix | Delete
/**
[2372] Fix | Delete
* Loads a given plugin attempt to generate errors.
[2373] Fix | Delete
*
[2374] Fix | Delete
* @since 3.0.0
[2375] Fix | Delete
* @since 4.4.0 Function was moved into the `wp-admin/includes/plugin.php` file.
[2376] Fix | Delete
*
[2377] Fix | Delete
* @param string $plugin Path to the plugin file relative to the plugins directory.
[2378] Fix | Delete
*/
[2379] Fix | Delete
function plugin_sandbox_scrape( $plugin ) {
[2380] Fix | Delete
if ( ! defined( 'WP_SANDBOX_SCRAPING' ) ) {
[2381] Fix | Delete
define( 'WP_SANDBOX_SCRAPING', true );
[2382] Fix | Delete
}
[2383] Fix | Delete
[2384] Fix | Delete
wp_register_plugin_realpath( WP_PLUGIN_DIR . '/' . $plugin );
[2385] Fix | Delete
include_once WP_PLUGIN_DIR . '/' . $plugin;
[2386] Fix | Delete
}
[2387] Fix | Delete
[2388] Fix | Delete
/**
[2389] Fix | Delete
* Declares a helper function for adding content to the Privacy Policy Guide.
[2390] Fix | Delete
*
[2391] Fix | Delete
* Plugins and themes should suggest text for inclusion in the site's privacy policy.
[2392] Fix | Delete
* The suggested text should contain information about any functionality that affects user privacy,
[2393] Fix | Delete
* and will be shown on the Privacy Policy Guide screen.
[2394] Fix | Delete
*
[2395] Fix | Delete
* A plugin or theme can use this function multiple times as long as it will help to better present
[2396] Fix | Delete
* the suggested policy content. For example modular plugins such as WooCommerse or Jetpack
[2397] Fix | Delete
* can add or remove suggested content depending on the modules/extensions that are enabled.
[2398] Fix | Delete
* For more information see the Plugin Handbook:
[2399] Fix | Delete
* https://developer.wordpress.org/plugins/privacy/suggesting-text-for-the-site-privacy-policy/.
[2400] Fix | Delete
*
[2401] Fix | Delete
* The HTML contents of the `$policy_text` supports use of a specialized `.privacy-policy-tutorial`
[2402] Fix | Delete
* CSS class which can be used to provide supplemental information. Any content contained within
[2403] Fix | Delete
* HTML elements that have the `.privacy-policy-tutorial` CSS class applied will be omitted
[2404] Fix | Delete
* from the clipboard when the section content is copied.
[2405] Fix | Delete
*
[2406] Fix | Delete
* Intended for use with the `'admin_init'` action.
[2407] Fix | Delete
*
[2408] Fix | Delete
* @since 4.9.6
[2409] Fix | Delete
*
[2410] Fix | Delete
* @param string $plugin_name The name of the plugin or theme that is suggesting content
[2411] Fix | Delete
* for the site's privacy policy.
[2412] Fix | Delete
* @param string $policy_text The suggested content for inclusion in the policy.
[2413] Fix | Delete
*/
[2414] Fix | Delete
function wp_add_privacy_policy_content( $plugin_name, $policy_text ) {
[2415] Fix | Delete
if ( ! is_admin() ) {
[2416] Fix | Delete
_doing_it_wrong(
[2417] Fix | Delete
__FUNCTION__,
[2418] Fix | Delete
sprintf(
[2419] Fix | Delete
/* translators: %s: admin_init */
[2420] Fix | Delete
__( 'The suggested privacy policy content should be added only in wp-admin by using the %s (or later) action.' ),
[2421] Fix | Delete
'<code>admin_init</code>'
[2422] Fix | Delete
),
[2423] Fix | Delete
'4.9.7'
[2424] Fix | Delete
);
[2425] Fix | Delete
return;
[2426] Fix | Delete
} elseif ( ! doing_action( 'admin_init' ) && ! did_action( 'admin_init' ) ) {
[2427] Fix | Delete
_doing_it_wrong(
[2428] Fix | Delete
__FUNCTION__,
[2429] Fix | Delete
sprintf(
[2430] Fix | Delete
/* translators: %s: admin_init */
[2431] Fix | Delete
__( 'The suggested privacy policy content should be added by using the %s (or later) action. Please see the inline documentation.' ),
[2432] Fix | Delete
'<code>admin_init</code>'
[2433] Fix | Delete
),
[2434] Fix | Delete
'4.9.7'
[2435] Fix | Delete
);
[2436] Fix | Delete
return;
[2437] Fix | Delete
}
[2438] Fix | Delete
[2439] Fix | Delete
if ( ! class_exists( 'WP_Privacy_Policy_Content' ) ) {
[2440] Fix | Delete
require_once ABSPATH . 'wp-admin/includes/class-wp-privacy-policy-content.php';
[2441] Fix | Delete
}
[2442] Fix | Delete
[2443] Fix | Delete
WP_Privacy_Policy_Content::add( $plugin_name, $policy_text );
[2444] Fix | Delete
}
[2445] Fix | Delete
[2446] Fix | Delete
/**
[2447] Fix | Delete
* Determines whether a plugin is technically active but was paused while
[2448] Fix | Delete
* loading.
[2449] Fix | Delete
*
[2450] Fix | Delete
* For more information on this and similar theme functions, check out
[2451] Fix | Delete
* the {@link https://developer.wordpress.org/themes/basics/conditional-tags/
[2452] Fix | Delete
* Conditional Tags} article in the Theme Developer Handbook.
[2453] Fix | Delete
*
[2454] Fix | Delete
* @since 5.2.0
[2455] Fix | Delete
*
[2456] Fix | Delete
* @global WP_Paused_Extensions_Storage $_paused_plugins
[2457] Fix | Delete
*
[2458] Fix | Delete
* @param string $plugin Path to the plugin file relative to the plugins directory.
[2459] Fix | Delete
* @return bool True, if in the list of paused plugins. False, if not in the list.
[2460] Fix | Delete
*/
[2461] Fix | Delete
function is_plugin_paused( $plugin ) {
[2462] Fix | Delete
if ( ! isset( $GLOBALS['_paused_plugins'] ) ) {
[2463] Fix | Delete
return false;
[2464] Fix | Delete
}
[2465] Fix | Delete
[2466] Fix | Delete
if ( ! is_plugin_active( $plugin ) ) {
[2467] Fix | Delete
return false;
[2468] Fix | Delete
}
[2469] Fix | Delete
[2470] Fix | Delete
list( $plugin ) = explode( '/', $plugin );
[2471] Fix | Delete
[2472] Fix | Delete
return array_key_exists( $plugin, $GLOBALS['_paused_plugins'] );
[2473] Fix | Delete
}
[2474] Fix | Delete
[2475] Fix | Delete
/**
[2476] Fix | Delete
* Gets the error that was recorded for a paused plugin.
[2477] Fix | Delete
*
[2478] Fix | Delete
* @since 5.2.0
[2479] Fix | Delete
*
[2480] Fix | Delete
* @global WP_Paused_Extensions_Storage $_paused_plugins
[2481] Fix | Delete
*
[2482] Fix | Delete
* @param string $plugin Path to the plugin file relative to the plugins directory.
[2483] Fix | Delete
* @return array|false Array of error information as returned by `error_get_last()`,
[2484] Fix | Delete
* or false if none was recorded.
[2485] Fix | Delete
*/
[2486] Fix | Delete
function wp_get_plugin_error( $plugin ) {
[2487] Fix | Delete
if ( ! isset( $GLOBALS['_paused_plugins'] ) ) {
[2488] Fix | Delete
return false;
[2489] Fix | Delete
}
[2490] Fix | Delete
[2491] Fix | Delete
list( $plugin ) = explode( '/', $plugin );
[2492] Fix | Delete
[2493] Fix | Delete
if ( ! array_key_exists( $plugin, $GLOBALS['_paused_plugins'] ) ) {
[2494] Fix | Delete
return false;
[2495] Fix | Delete
}
[2496] Fix | Delete
[2497] Fix | Delete
return $GLOBALS['_paused_plugins'][ $plugin ];
[2498] Fix | Delete
}
[2499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function