web/wp-content/plugins/acf-extended/acf-extended.php (278 lines of code) (raw):

<?php /** * Plugin Name: Advanced Custom Fields: Extended * Description: All-in-one enhancement suite that improves WordPress & Advanced Custom Fields. * Version: 0.9.0.8 * Author: ACF Extended * Plugin URI: https://www.acf-extended.com * Author URI: https://www.acf-extended.com * Text Domain: acfe * Domain Path: /lang */ if(!defined('ABSPATH')){ exit; } if(!class_exists('ACFE')): class ACFE{ // vars var $version = '0.9.0.8'; /** * construct */ function __construct(){ // ... } /** * initialize */ function initialize(){ // constants $this->constants(array( 'ACFE' => true, 'ACFE_FILE' => __FILE__, 'ACFE_PATH' => plugin_dir_path(__FILE__), 'ACFE_VERSION' => $this->version, 'ACFE_BASENAME' => plugin_basename(__FILE__), )); // init include_once(ACFE_PATH . 'includes/init.php'); // functions acfe_include('includes/acfe-deprecated-functions.php'); acfe_include('includes/acfe-field-functions.php'); acfe_include('includes/acfe-field-group-functions.php'); acfe_include('includes/acfe-file-functions.php'); acfe_include('includes/acfe-form-functions.php'); acfe_include('includes/acfe-helper-functions.php'); acfe_include('includes/acfe-meta-functions.php'); acfe_include('includes/acfe-post-functions.php'); acfe_include('includes/acfe-screen-functions.php'); acfe_include('includes/acfe-template-functions.php'); acfe_include('includes/acfe-term-functions.php'); acfe_include('includes/acfe-user-functions.php'); acfe_include('includes/acfe-wp-functions.php'); // compatibility acfe_include('includes/compatibility.php'); acfe_include('includes/third-party.php'); // load add_action('acf/include_field_types', array($this, 'load')); } /** * load * * acf/include_field_types */ function load(){ // bail early if(!acfe_has_acf()){ return; } // vars $theme_path = acf_get_setting('acfe/theme_path', get_stylesheet_directory()); $theme_url = acf_get_setting('acfe/theme_url', get_stylesheet_directory_uri()); // settings $this->settings(array( // general 'url' => plugin_dir_url(__FILE__), 'theme_path' => $theme_path, 'theme_url' => $theme_url, 'theme_folder' => parse_url($theme_url, PHP_URL_PATH), 'reserved_post_types' => array('acf-field', 'acf-field-group'), 'reserved_taxonomies' => array('acf-field-group-category'), 'reserved_field_groups' => array(), // php 'php' => true, 'php_save' => "{$theme_path}/acfe-php", 'php_load' => array("{$theme_path}/acfe-php"), 'php_found' => false, // json 'json' => acf_get_setting('json'), 'json_save' => acf_get_setting('save_json'), 'json_load' => acf_get_setting('load_json'), 'json_found' => false, // modules 'dev' => false, 'modules/author' => true, 'modules/categories' => true, 'modules/block_types' => true, 'modules/forms' => true, 'modules/forms/top_level' => false, 'modules/options_pages' => true, 'modules/post_types' => true, 'modules/taxonomies' => true, 'modules/multilang' => true, 'modules/options' => true, 'modules/performance' => false, 'modules/ui' => true, // fields 'field/recaptcha/site_key' => '', 'field/recaptcha/secret_key' => '', 'field/recaptcha/version' => '', 'field/recaptcha/v2/theme' => '', 'field/recaptcha/v2/size' => '', 'field/recaptcha/v3/hide_logo' => '', )); // load textdomain acfe_load_textdomain(); // includes add_action('acf/init', array($this, 'init'), 99); add_action('acf/include_fields', array($this, 'include_fields'), 5); add_action('acf/include_field_types', array($this, 'include_field_types'), 99); add_action('acf/include_admin_tools', array($this, 'include_admin_tools')); add_action('acf/include_admin_tools', array($this, 'include_admin_tools_late'), 20); // compatibility acfe_include('includes/compatibility-6.0.php'); // admin acfe_include('includes/admin/menu.php'); acfe_include('includes/admin/plugins.php'); acfe_include('includes/admin/settings.php'); // core acfe_include('includes/field.php'); acfe_include('includes/field-extend.php'); acfe_include('includes/local-meta.php'); acfe_include('includes/multilang.php'); acfe_include('includes/settings.php'); acfe_include('includes/template-tags.php'); acfe_include('includes/upgrades.php'); // module acfe_include('includes/module.php'); acfe_include('includes/module-acf.php'); acfe_include('includes/module-db.php'); acfe_include('includes/module-l10n.php'); acfe_include('includes/module-manager.php'); acfe_include('includes/module-post.php'); acfe_include('includes/module-posts.php'); acfe_include('includes/module-upgrades.php'); // block type acfe_include('includes/modules/block-type/module-block-type.php'); acfe_include('includes/modules/block-type/module-block-type-fields.php'); acfe_include('includes/modules/block-type/module-block-type-upgrades.php'); // form acfe_include('includes/modules/form/module-form.php'); acfe_include('includes/modules/form/module-form-action.php'); acfe_include('includes/modules/form/module-form-action-custom.php'); acfe_include('includes/modules/form/module-form-action-email.php'); acfe_include('includes/modules/form/module-form-action-post.php'); acfe_include('includes/modules/form/module-form-action-redirect.php'); acfe_include('includes/modules/form/module-form-action-term.php'); acfe_include('includes/modules/form/module-form-action-user.php'); acfe_include('includes/modules/form/module-form-compatibility.php'); acfe_include('includes/modules/form/module-form-deprecated.php'); acfe_include('includes/modules/form/module-form-fields.php'); acfe_include('includes/modules/form/module-form-format.php'); acfe_include('includes/modules/form/module-form-front.php'); acfe_include('includes/modules/form/module-form-front-hooks.php'); acfe_include('includes/modules/form/module-form-front-render.php'); acfe_include('includes/modules/form/module-form-shortcode.php'); acfe_include('includes/modules/form/module-form-upgrades.php'); // performance acfe_include('includes/modules/performance/module-performance.php'); acfe_include('includes/modules/performance/module-performance-connector.php'); acfe_include('includes/modules/performance/module-performance-functions.php'); acfe_include('includes/modules/performance/module-performance-ui.php'); acfe_include('includes/modules/performance/module-performance-upgrades.php'); // post type acfe_include('includes/modules/post-type/module-post-type.php'); acfe_include('includes/modules/post-type/module-post-type-fields.php'); acfe_include('includes/modules/post-type/module-post-type-features.php'); acfe_include('includes/modules/post-type/module-post-type-upgrades.php'); // taxonomy acfe_include('includes/modules/taxonomy/module-taxonomy.php'); acfe_include('includes/modules/taxonomy/module-taxonomy-fields.php'); acfe_include('includes/modules/taxonomy/module-taxonomy-features.php'); acfe_include('includes/modules/taxonomy/module-taxonomy-upgrades.php'); // options page acfe_include('includes/modules/options-page/module-options-page.php'); acfe_include('includes/modules/options-page/module-options-page-fields.php'); acfe_include('includes/modules/options-page/module-options-page-features.php'); acfe_include('includes/modules/options-page/module-options-page-upgrades.php'); // screens acfe_include('includes/screens/screen-attachment.php'); acfe_include('includes/screens/screen-options-page.php'); acfe_include('includes/screens/screen-post.php'); acfe_include('includes/screens/screen-settings.php'); acfe_include('includes/screens/screen-taxonomy.php'); acfe_include('includes/screens/screen-user.php'); } /** * init * * acf/init:99 */ function init(){ // action do_action('acfe/init'); // core acfe_include('includes/assets.php'); acfe_include('includes/hooks.php'); // fields acfe_include('includes/fields/field-checkbox.php'); acfe_include('includes/fields/field-clone.php'); acfe_include('includes/fields/field-file.php'); acfe_include('includes/fields/field-flexible-content.php'); acfe_include('includes/fields/field-group.php'); acfe_include('includes/fields/field-image.php'); acfe_include('includes/fields/field-post-object.php'); acfe_include('includes/fields/field-repeater.php'); acfe_include('includes/fields/field-select.php'); acfe_include('includes/fields/field-textarea.php'); acfe_include('includes/fields/field-taxonomy.php'); acfe_include('includes/fields/field-wysiwyg.php'); // fields settings acfe_include('includes/fields-settings/bidirectional.php'); acfe_include('includes/fields-settings/data.php'); acfe_include('includes/fields-settings/instructions.php'); acfe_include('includes/fields-settings/permissions.php'); acfe_include('includes/fields-settings/settings.php'); acfe_include('includes/fields-settings/validation.php'); // field groups acfe_include('includes/field-groups/field-group.php'); acfe_include('includes/field-groups/field-group-advanced.php'); acfe_include('includes/field-groups/field-group-category.php'); acfe_include('includes/field-groups/field-group-display-title.php'); acfe_include('includes/field-groups/field-group-hide-on-screen.php'); acfe_include('includes/field-groups/field-group-instruction-placement.php'); acfe_include('includes/field-groups/field-group-meta.php'); acfe_include('includes/field-groups/field-group-permissions.php'); acfe_include('includes/field-groups/field-groups.php'); acfe_include('includes/field-groups/field-groups-local.php'); acfe_include('includes/field-groups/field-types.php'); // locations acfe_include('includes/locations/post-type-all.php'); acfe_include('includes/locations/post-type-archive.php'); acfe_include('includes/locations/post-type-list.php'); acfe_include('includes/locations/taxonomy-list.php'); // modules acfe_include('includes/modules/author.php'); acfe_include('includes/modules/dev/module-dev.php'); acfe_include('includes/modules/dev/module-dev-delete-meta.php'); acfe_include('includes/modules/option/module-option.php'); acfe_include('includes/modules/ui/module-ui.php'); acfe_include('includes/modules/ui/module-ui-attachment.php'); acfe_include('includes/modules/ui/module-ui-settings.php'); acfe_include('includes/modules/ui/module-ui-term.php'); acfe_include('includes/modules/ui/module-ui-user.php'); // performance acfe_include('includes/modules/performance/module-performance-ultra.php'); acfe_include('includes/modules/performance/module-performance-ultra-fields.php'); acfe_include('includes/modules/performance/module-performance-ultra-revisions.php'); } /** * include_fields * * acf/include_fields:5 */ function include_fields(){ // autosync acfe_include('includes/modules/autosync-php.php'); acfe_include('includes/modules/autosync-json.php'); } /** * include_field_types * * acf/include_field_types:99 */ function include_field_types(){ acfe_include('includes/fields/field-advanced-link.php'); acfe_include('includes/fields/field-button.php'); acfe_include('includes/fields/field-code-editor.php'); acfe_include('includes/fields/field-column.php'); acfe_include('includes/fields/field-dynamic-render.php'); acfe_include('includes/fields/field-forms.php'); acfe_include('includes/fields/field-hidden.php'); acfe_include('includes/fields/field-post-statuses.php'); acfe_include('includes/fields/field-post-types.php'); acfe_include('includes/fields/field-recaptcha.php'); acfe_include('includes/fields/field-slug.php'); acfe_include('includes/fields/field-taxonomies.php'); acfe_include('includes/fields/field-taxonomy-terms.php'); acfe_include('includes/fields/field-user-roles.php'); } /** * include_admin_tools * * acf/include_admin_tools */ function include_admin_tools(){ // modules acfe_include('includes/admin/tools/module-export.php'); acfe_include('includes/admin/tools/module-import.php'); } /** * include_admin_tools_late * * acf/include_admin_tools:99 */ function include_admin_tools_late(){ // field groups acfe_include('includes/admin/tools/field-groups-local.php'); acfe_include('includes/admin/tools/field-groups-export.php'); } /** * constants * * @param $array */ function constants($array = array()){ foreach($array as $name => $value){ if(!defined($name)){ define($name, $value); } } } /** * settings * * @param $array */ function settings($array = array()){ foreach($array as $name => $value){ // acf_update_setting acf_update_setting("acfe/{$name}", $value); // acf_get_setting add_filter("acf/settings/acfe/{$name}", function($value) use($name){ return apply_filters("acfe/settings/{$name}", $value); }, 5); } } } /** * acfe * * @return ACFE */ function acfe(){ global $acfe; if(!isset($acfe)){ $acfe = new ACFE(); $acfe->initialize(); } return $acfe; } acfe(); else: add_action('after_plugin_row_' . plugin_basename(__FILE__), function($plugin_file, $plugin_data, $status){ // vars $colspan = version_compare($GLOBALS['wp_version'], '5.5', '<') ? 3 : 4; $pro = defined('ACFE_PRO') && ACFE_PRO; // message $message = __('An another version of ACF Extended has been detected. Please activate only one version.', 'acfe'); if($pro){ $message = __('ACF Extended Pro has been detected. Please activate only one version.', 'acfe'); } // class $class = 'acfe-plugin-tr'; if(isset($plugin_data['update']) && !empty($plugin_data['update'])){ $class .= ' acfe-plugin-tr-update'; } ?> <style> .plugins tr[data-plugin='<?php echo $plugin_file; ?>'] th, .plugins tr[data-plugin='<?php echo $plugin_file; ?>'] td{ box-shadow:none; } </style> <tr class="plugin-update-tr active <?php echo $class; ?>"> <td colspan="<?php echo $colspan; ?>" class="plugin-update colspanchange"> <div class="update-message notice inline notice-error notice-alt"> <p><?php echo $message; ?></p> </div> </td> </tr> <?php }, 5, 3); endif;