function show_remote_response_error() { // only run once if (acf_has_done('show_remote_response_error')) { return false; } // vars $error = acf_get_setting('remote_response_error'); $notice = __('<b>Error</b>. Could not connect to update server', 'acf'); // append error if ($error) { $notice .= ' <span class="description">(' . $error . ')</span>'; } // add notice acf_add_admin_notice($notice, 'error'); // return return false; }
function acf_enqueue_uploader() { // bail early if doing ajax if (defined('DOING_AJAX') && DOING_AJAX) { return; } // bail ealry if already run if (acf_has_done('enqueue_uploader')) { return; } // enqueue media if user can upload if (current_user_can('upload_files')) { wp_enqueue_media(); } // create dummy editor ?> <div class="acf-hidden"><?php wp_editor('', 'acf_content'); ?> </div><?php }
function acf_pro_is_license_active() { // vars $license = acf_pro_get_license(); $url = home_url(); // bail early if empty if (!$license) { return false; } // bail early if no key if (!$license['key']) { return false; } // bail early if url does not match if ($license['url'] !== $url) { // add notice (only once) if (!acf_has_done('acf_pro_is_license_active_notice')) { acf_add_admin_notice(__('Error validating ACF PRO license URL (website does not match). Please re-activate your license', 'acf'), 'error'); } return false; } // return return true; }
function acf_update_500_field_group($ofg) { // global global $wpdb; // create new field group $nfg = array('ID' => 0, 'title' => $ofg->post_title, 'menu_order' => $ofg->menu_order); // location rules $groups = array(); // get all rules $rules = get_post_meta($ofg->ID, 'rule', false); if (is_array($rules)) { $group_no = 0; foreach ($rules as $rule) { // if field group was duplicated, it may now be a serialized string! $rule = maybe_unserialize($rule); // does this rule have a group? // + groups were added in 4.0.4 if (!isset($rule['group_no'])) { $rule['group_no'] = $group_no; // sperate groups? if (get_post_meta($ofg->ID, 'allorany', true) == 'any') { $group_no++; } } // extract vars $group = acf_extract_var($rule, 'group_no'); $order = acf_extract_var($rule, 'order_no'); // add to group $groups[$group][$order] = $rule; // sort rules ksort($groups[$group]); } // sort groups ksort($groups); } $nfg['location'] = $groups; // settings if ($position = get_post_meta($ofg->ID, 'position', true)) { $nfg['position'] = $position; } if ($layout = get_post_meta($ofg->ID, 'layout', true)) { $nfg['layout'] = $layout; } if ($hide_on_screen = get_post_meta($ofg->ID, 'hide_on_screen', true)) { $nfg['hide_on_screen'] = maybe_unserialize($hide_on_screen); } // Note: acf_update_field_group will call the acf_get_valid_field_group function and apply 'compatibility' changes // save field group $nfg = acf_update_field_group($nfg); // action for 3rd party do_action('acf/update_500_field_group', $nfg, $ofg); // trash? if ($ofg->post_status == 'trash') { acf_trash_field_group($nfg['ID']); } // global global $wpdb; // get field from postmeta $rows = $wpdb->get_results($wpdb->prepare("SELECT * FROM {$wpdb->postmeta} WHERE post_id = %d AND meta_key LIKE %s", $ofg->ID, 'field_%'), ARRAY_A); // check if ($rows) { // loop foreach ($rows as $row) { // bail early if key already migrated (potential duplicates in DB) if (acf_has_done('update_500_field_group_' . $ofg->ID . '_' . $row['meta_key'])) { continue; } // vars $field = $row['meta_value']; $field = maybe_unserialize($field); $field = maybe_unserialize($field); // run again for WPML // add parent $field['parent'] = $nfg['ID']; // migrate field $field = acf_update_500_field($field); } } // return return $nfg; }