| Server IP : 13.126.101.145 / Your IP : 216.73.216.159 Web Server : Apache/2.4.52 (Ubuntu) System : Linux ip-11-115-0-196 6.8.0-1039-aws #41~22.04.1-Ubuntu SMP Thu Sep 11 10:54:48 UTC 2025 x86_64 User : www-data ( 33) PHP Version : 8.3.17 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/rentals_updated/wp-content/plugins/advanced-custom-fields/includes/admin/ |
Upload File : |
<?php
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
if ( ! class_exists( 'ACF_Admin' ) ) :
class ACF_Admin {
/**
* Constructor.
*
* @since 5.0.0
*/
public function __construct() {
add_action( 'admin_menu', array( $this, 'admin_menu' ) );
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
add_action( 'admin_body_class', array( $this, 'admin_body_class' ) );
add_action( 'current_screen', array( $this, 'current_screen' ) );
add_action( 'admin_notices', array( $this, 'maybe_show_escaped_html_notice' ) );
add_action( 'admin_init', array( $this, 'dismiss_escaped_html_notice' ) );
add_action( 'admin_init', array( $this, 'clear_escaped_html_log' ) );
add_filter( 'parent_file', array( $this, 'ensure_menu_selection' ) );
add_filter( 'submenu_file', array( $this, 'ensure_submenu_selection' ) );
}
/**
* Adds the ACF menu item.
*
* @date 28/09/13
* @since 5.0.0
*/
public function admin_menu() {
// Bail early if SCF is hidden.
if ( ! acf_get_setting( 'show_admin' ) ) {
return;
}
// Vars.
$cap = acf_get_setting( 'capability' );
$parent_slug = 'edit.php?post_type=acf-field-group';
// Add menu items.
add_menu_page( __( 'SCF', 'acf' ), __( 'SCF', 'acf' ), $cap, $parent_slug, false, 'dashicons-welcome-widgets-menus', 80 );
}
/**
* Enqueues global admin styling.
*
* @since 5.0.0
*/
public function admin_enqueue_scripts() {
wp_enqueue_style( 'acf-global' );
wp_enqueue_script( 'acf-escaped-html-notice' );
wp_localize_script(
'acf-escaped-html-notice',
'acf_escaped_html_notice',
array(
'show_details' => __( 'Show details', 'acf' ),
'hide_details' => __( 'Hide details', 'acf' ),
)
);
}
/**
* Appends custom admin body classes.
*
* @date 5/11/19
* @since 5.8.7
*
* @param string $classes Space-separated list of CSS classes.
* @return string
*/
public function admin_body_class( $classes ) {
global $wp_version;
// Determine body class version.
$wp_minor_version = floatval( $wp_version );
if ( $wp_minor_version >= 5.3 ) {
$classes .= ' acf-admin-5-3';
} else {
$classes .= ' acf-admin-3-8';
}
// Add browser for specific CSS.
$classes .= ' acf-browser-' . esc_attr( acf_get_browser() );
// Return classes.
return $classes;
}
/**
* Adds custom functionality to "ACF" admin pages.
*
* @date 7/4/20
* @since 5.9.0
*
* @param void
* @return void
*/
public function current_screen( $screen ) {
// Determine if the current page being viewed is "ACF" related.
if ( isset( $screen->post_type ) && in_array( $screen->post_type, acf_get_internal_post_types(), true ) ) {
add_action( 'in_admin_header', array( $this, 'in_admin_header' ) );
add_filter( 'admin_footer_text', array( $this, 'admin_footer_text' ) );
add_filter( 'update_footer', array( $this, 'admin_footer_version_text' ) );
$this->maybe_show_import_from_cptui_notice();
}
}
/**
* Shows a notice to import post types and taxonomies from CPTUI if that plugin is active.
*
* @since 6.1
*/
public function maybe_show_import_from_cptui_notice() {
global $plugin_page;
// Only show if CPTUI is active and post types are enabled.
if ( ! acf_get_setting( 'enable_post_types' ) || ! is_plugin_active( 'custom-post-type-ui/custom-post-type-ui.php' ) ) {
return;
}
// No need to show on the tools page.
if ( 'acf-tools' === $plugin_page ) {
return;
}
$text = sprintf(
/* translators: %s - URL to ACF tools page. */
__( 'Import Post Types and Taxonomies registered with Custom Post Type UI and manage them with ACF. <a href="%s">Get Started</a>.', 'acf' ),
acf_get_admin_tools_url()
);
acf_add_admin_notice( $text, 'success', true, true );
}
/**
* Notifies the user that fields rendered via shortcode or the_field() have
* had HTML removed/altered due to unsafe HTML being escaped.
*
* @since 6.2.5
*/
public function maybe_show_escaped_html_notice() {
// Only show to editors and above.
if ( ! current_user_can( 'edit_others_posts' ) ) {
return;
}
// Allow opting-out of the notice.
if ( apply_filters( 'acf/admin/prevent_escaped_html_notice', false ) ) {
return;
}
if ( get_option( 'acf_escaped_html_notice_dismissed' ) ) {
return;
}
$escaped = _acf_get_escaped_html_log();
// Notice for when HTML has already been escaped.
if ( ! empty( $escaped ) ) {
acf_get_view( 'escaped-html-notice', array( 'acf_escaped' => $escaped ) );
}
}
/**
* Dismisses the escaped unsafe HTML notice.
*
* @since 6.2.5
*/
public function dismiss_escaped_html_notice() {
if ( empty( $_GET['acf-dismiss-esc-html-notice'] ) ) {
return;
}
$nonce = sanitize_text_field( wp_unslash( $_GET['acf-dismiss-esc-html-notice'] ) );
if (
! wp_verify_nonce( $nonce, 'acf/dismiss_escaped_html_notice' ) ||
! current_user_can( acf_get_setting( 'capability' ) )
) {
return;
}
update_option( 'acf_escaped_html_notice_dismissed', true );
_acf_delete_escaped_html_log();
wp_safe_redirect( remove_query_arg( 'acf-dismiss-esc-html-notice' ) );
exit;
}
/**
* Clear the escaped unsafe HTML log.
*
* @since 6.2.5
*/
public function clear_escaped_html_log() {
if ( empty( $_GET['acf-clear-esc-html-log'] ) ) {
return;
}
$nonce = sanitize_text_field( wp_unslash( $_GET['acf-clear-esc-html-log'] ) );
if (
! wp_verify_nonce( $nonce, 'acf/clear_escaped_html_log' ) ||
! current_user_can( acf_get_setting( 'capability' ) )
) {
return;
}
_acf_delete_escaped_html_log();
wp_safe_redirect( remove_query_arg( 'acf-clear-esc-html-log' ) );
exit;
}
/**
* Renders the admin navigation element.
*
* @date 27/3/20
* @since 5.9.0
*
* @param void
* @return void
*/
function in_admin_header() {
acf_get_view( 'global/navigation' );
$screen = get_current_screen();
if ( isset( $screen->base ) && 'post' === $screen->base ) {
acf_get_view( 'global/form-top' );
}
do_action( 'acf/in_admin_header' );
}
/**
* Modifies the admin footer text.
*
* @date 7/4/20
* @since 5.9.0
*
* @param string $text The current admin footer text.
* @return string
*/
public function admin_footer_text( $text ) {
return '';
}
/**
* Modifies the admin footer version text.
*
* @since 6.2
*
* @param string $text The current admin footer version text.
* @return string
*/
public function admin_footer_version_text( $text ) {
return '';
}
/**
* Ensure the ACF parent menu is selected for add-new.php
*
* @since 6.1
* @param string $parent_file The parent file checked against menu activation.
* @return string The modified parent file
*/
public function ensure_menu_selection( $parent_file ) {
if ( ! is_string( $parent_file ) ) {
return $parent_file;
}
if ( strpos( $parent_file, 'edit.php?post_type=acf-' ) === 0 ) {
return 'edit.php?post_type=acf-field-group';
}
return $parent_file;
}
/**
* Ensure the correct ACF submenu item is selected when in post-new versions of edit pages
*
* @since 6.1
* @param string $submenu_file The submenu filename.
* @return string The modified submenu filename
*/
public function ensure_submenu_selection( $submenu_file ) {
if ( ! is_string( $submenu_file ) ) {
return $submenu_file;
}
if ( strpos( $submenu_file, 'post-new.php?post_type=acf-' ) === 0 ) {
return str_replace( 'post-new', 'edit', $submenu_file );
}
return $submenu_file;
}
}
// Instantiate.
acf_new_instance( 'ACF_Admin' );
endif; // class_exists check