'acfe/php', 'php_save' => 'acfe/php_save', 'php_load' => 'acfe/php_load', 'php_found' => 'acfe/php_found', 'acfe/modules/dynamic_block_types' => 'acfe/modules/block_types', 'acfe/modules/dynamic_forms' => 'acfe/modules/forms', 'acfe/modules/dynamic_options_pages' => 'acfe/modules/options_pages', 'acfe/modules/dynamic_post_types' => 'acfe/modules/post_types', 'acfe/modules/dynamic_taxonomies' => 'acfe/modules/taxonomies', ); // loop settings foreach($settings as $old => $new){ // get old setting 'acfe_php' $value = acf_get_setting($old); if($value !== null){ // deprecated notice acfe_deprecated_setting($old, '0.8', $new); // update setting acf_update_setting($new, $value); } } } /** * admin_body_class * * Add class to admin body to fix acf postbox cog icon breaking line-height in WP 6.5 * * @param $classes * * @return mixed|string */ function admin_body_class($classes){ // validate if(!is_string($classes)){ return $classes; } // wp 6.5+ if(acfe_is_wp('6.5')){ $classes .= ' acfe-wp-6-5'; } // wp 7.0+ if(acfe_is_wp('7.0') && acfe_get_setting('modules/wp7_ui')){ $classes .= ' acfe-wp-7-0'; } // return return $classes; } /** * acfe_init * * acfe/init:99 * * @since 0.8.9.3 (03/2023) */ function acfe_init(){ // get old setting $setting = acf_get_setting('acfe/modules/single_meta'); if($setting !== null){ // deprecated notice acfe_deprecated_setting('acfe/modules/single_meta', '0.8.9.3', 'acfe/modules/performance'); // update setting if($setting){ acf_update_setting('acfe/modules/performance', 'ultra'); } } } /** * field_group_location_list * * acf/validate_field_group:20 * * Field Group Location: Archive renamed to List * * @since 0.8 (20/10/2019) */ function field_group_location_list($field_group){ if(!acfe_get($field_group, 'location')){ return $field_group; } foreach($field_group['location'] as &$or){ foreach($or as &$and){ if(!isset($and['value'])){ continue; } // post type list // replace old 'my-post-type_archive' if($and['param'] === 'post_type' && acfe_ends_with($and['value'], '_archive')){ $and['param'] = 'post_type_list'; $and['value'] = substr_replace($and['value'], '', -8); // taxonomy list // replace old 'my-taxonomy_archive' }elseif($and['param'] === 'taxonomy' && acfe_ends_with($and['value'], '_archive')){ $and['param'] = 'taxonomy_list'; $and['value'] = substr_replace($and['value'], '', -8); } } } return $field_group; } /** * field_group_instruction_tooltip * * Tooltip old parameter name compatibility * * @param $field_group * * @since 0.8.7.5 (11/12/2020) * * @return mixed */ function field_group_instruction_tooltip($field_group){ if(acfe_get($field_group, 'instruction_placement') === 'acfe_instructions_tooltip'){ $field_group['instruction_placement'] = 'tooltip'; } return $field_group; } /** * field_group_nested_settings * * Migrate old ACFE settings to new nested group settings * * @param $field_group * * @since 0.9.2.6 * * @return array */ function field_group_nested_settings($field_group){ if(!empty($field_group['acfe_meta'])){ $field_group['acfe_meta'] = acfe_as_array($field_group['acfe_meta']); $field_group['acfe_meta'] = acfe_array_rewrite($field_group['acfe_meta'], function($row, $key){ return array($key => array( 'key' => acfe_get($row, 'acfe_meta_key'), 'value' => acfe_get($row, 'acfe_meta_value'), )); }); } if(isset($field_group['acfe_form']) && !acfe_has($field_group, 'acfe.advanced')){ acfe_set($field_group, 'acfe.advanced', $field_group['acfe_form']); } unset($field_group['acfe_form']); if(isset($field_group['acfe_meta']) && !acfe_has($field_group, 'acfe.meta')){ acfe_set($field_group, 'acfe.meta', $field_group['acfe_meta']); } unset($field_group['acfe_meta']); if(isset($field_group['acfe_note']) && !acfe_has($field_group, 'acfe.note')){ acfe_set($field_group, 'acfe.note', $field_group['acfe_note']); } unset($field_group['acfe_note']); if(isset($field_group['acfe_permissions']) && !acfe_has($field_group, 'acfe.permissions')){ acfe_set($field_group, 'acfe.permissions', $field_group['acfe_permissions']); } unset($field_group['acfe_permissions']); if(isset($field_group['acfe_autosync']) && !acfe_has($field_group, 'acfe.autosync')){ acfe_set($field_group, 'acfe.autosync', $field_group['acfe_autosync']); } unset($field_group['acfe_autosync']); if(isset($field_group['acfe_display_title']) && !acfe_has($field_group, 'acfe.display_title')){ acfe_set($field_group, 'acfe.display_title', $field_group['acfe_display_title']); } unset($field_group['acfe_display_title']); // return return $field_group; } /** * field_group_nested_settings_legacy * * @param $field_group * * @return mixed */ function field_group_nested_settings_legacy($field_group){ // check if setting is enabled if(!acfe_get_setting('compatibility/legacy_field_group')){ return $field_group; } $field_group['acfe_form'] = acfe_get($field_group, 'acfe.advanced'); $field_group['acfe_meta'] = acfe_get($field_group, 'acfe.meta'); $field_group['acfe_note'] = acfe_get($field_group, 'acfe.note'); $field_group['acfe_permissions'] = acfe_get($field_group, 'acfe.permissions'); $field_group['acfe_autosync'] = acfe_get($field_group, 'acfe.autosync'); if(!empty($field_group['acfe_meta'])){ $field_group['acfe_meta'] = acfe_as_array($field_group['acfe_meta']); $field_group['acfe_meta'] = acfe_array_rewrite($field_group['acfe_meta'], function($row, $key){ return array($key => array( 'acfe_meta_key' => acfe_get($row, 'key'), 'acfe_meta_value' => acfe_get($row, 'value'), )); }); } return $field_group; } /** * field_group_display_title * * Migrate ACFE Display Title to native ACF Display Title (added in ACF 6.6+) * * @param $field_group * * @since 0.9.2 (20/11/2025) * * @return mixed */ function field_group_display_title($field_group){ // ACFE 6.6+ if(acfe_is_acf('6.6') && acfe_has($field_group, 'acfe.display_title')){ // check display title wasn't already set if(empty($field_group['display_title'])){ $field_group['display_title'] = acfe_get($field_group, 'acfe.display_title'); // assign old ACFE setting to new ACF setting } // unset old setting in all case acfe_unset($field_group, 'acfe.display_title'); } return $field_group; } /** * field_acfe_update * * acf/validate_field:20 * * Field Filter Value: Removed * * @since 0.8 (20/10/2019) */ function field_acfe_update($field){ if(isset($field['acfe_update'])){ unset($field['acfe_update']); } return $field; } /** * field_seamless_style * * acf/validate_field/type=group:20 * acf/validate_field/type=clone:20 * * Field Group/Clone: Fixed typo 'Seamless' * * @since 0.8.5 (15/03/2020) */ function field_seamless_style($field){ if($seamless = acfe_get($field, 'acfe_seemless_style', false)){ $field['acfe_seamless_style'] = $seamless; unset($field['acfe_seemless_style']); } return $field; } /** * field_dynamic_message * * acf/validate_field/type=acfe_dynamic_message:20 * * Renamed 'Dynamic Message' field to 'Dynamic Render' * * @since 0.8.8.5 (03/09/2021) */ function field_dynamic_message($field){ $field['type'] = 'acfe_dynamic_render'; return $field; } /** * field_column * * acf/validate_field/type=acfe_column:20 * * Changed columns to 12 grid instead of 6 * * @since 0.8.7.3 (29/09/2020) */ function field_column($field){ if(acfe_ends_with($field['columns'], '/6')){ switch($field['columns']){ case '1/6': { $field['columns'] = '2/12'; break; } case '2/6': { $field['columns'] = '4/12'; break; } case '3/6': { $field['columns'] = '6/12'; break; } case '4/6': { $field['columns'] = '8/12'; break; } case '5/6': { $field['columns'] = '10/12'; break; } case '6/6': { $field['columns'] = '12/12'; break; } } } return $field; } /** * field_image * * acf/validate_field/type=image:20 * acf/validate_field/type=file:20 * * Renamed setting 'acfe_uploader' to 'uploader' for image & file * * @since 0.8.7.5 (11/12/2020) */ function field_image($field){ if(acfe_get($field, 'acfe_uploader')){ $field['uploader'] = $field['acfe_uploader']; unset($field['acfe_uploader']); } return $field; } /** * field_forms * * acf/validate_field/type=forms:20 * * 'forms' argument should return names and not id anymore * * @since 0.9 (07/02/2024) */ function field_forms($field){ if(!is_array($field['forms']) || empty($field['forms']) || !is_numeric($field['forms'][0])){ return $field; } // loop allowed forms foreach(array_keys($field['forms']) as $k){ // value $value = $field['forms'][ $k ]; // deprecated return form id // we need to return form name if(is_numeric($value)){ // get item $item = acfe_get_module('form')->get_item($value); // found item by ID // return name if($item){ $field['forms'][ $k ] = $item['name']; // not found // remove }else{ unset($field['forms'][ $k ]); } } } return $field; } /** * field_code_editor * * acf/validate_field/type=acfe_code_editor:20 * * Renamed 'return_entities' to 'return_format' for code editor * * @since 0.8.9.1 * * @param $field */ function field_code_editor($field){ if(acfe_get($field, 'return_entities')){ if(!in_array('htmlentities', $field['return_format'])){ $field['return_format'][] = 'htmlentities'; } unset($field['return_entities']); } return $field; } /** * field_select * * acfe/field_wrapper_attributes/type=select:20 * * Add 'data-nonce' using $field['nonce'] for backward ajax verify compatibility with ACF < 6.3.2 * We pass via acfe/field_wrapper_attributes filter so this is applied to all fields which render the select field (Taxonomy Terms etc...) * * @since 0.9.2.8 * * @param $field * * @return mixed */ function field_select($wrapper, $field){ // ACF < 6.3.2 if(acfe_is_acf('6.3.2')){ return $wrapper; } if(!empty($field['nonce'])){ $wrapper['data-nonce'] = $field['nonce']; } if(!empty($field['ajax']) && empty($field['nonce']) && acf_is_field_key($field['key'])){ $wrapper['data-nonce'] = wp_create_nonce('acf_field_' . $field['type'] . '_' . $field['key']); } return $wrapper; } /** * field_flexible_settings_title * * acfe/load_fields/type=flexible_content:20 * * Field Flexible Content: Fix duplicated "layout_settings" & "layout_title" * * @since 0.8.4.5 (11/02/2020) */ function field_flexible_settings_title($fields, $parent){ // Check if is tool screen if(!acf_is_screen(acfe_get_acf_screen_id('acf-tools'))){ return $fields; } foreach($fields as $_k => $_field){ // field name $_field_name = acfe_get($_field, 'name'); // check 'acfe_flexible_layout_title' & 'layout_settings' if($_field_name !== 'acfe_flexible_layout_title' && $_field_name !== 'layout_settings'){ continue; } // unset unset($fields[$_k]); } return $fields; } /** * field_flexible_layout_categories * * acf/prepare_field/name=acfe_flexible_category * * Field Flexible Content: Compatibility for Layout Categories * * @since 0.8.6.7 (16/07/2020) */ function field_flexible_layout_categories($field){ $value = acfe_get($field, 'value'); if(empty($value)){ return $field; } if(is_string($value)){ $explode = explode('|', $value); $choices = array(); foreach($explode as $v){ $v = trim($v); $choices[ $v ] = $v; } $field['choices'] = $choices; $field['value'] = $choices; } return $field; } } new acfe_compatibility(); endif;