'Options', 'default' => 100, 'option' => 'options_per_page' )); } /** * Options List: HTML * */ add_filter('acfe/options/html/action=list', 'acfe_options_html_list'); function acfe_options_html_list(){ acf_get_view(ACFE_PATH . '/includes/admin/views/html-options-list.php'); } /** * Options Delete: Load * */ add_action('acfe/options/load/action=delete', 'acfe_options_load_delete'); function acfe_options_load_delete(){ $nonce = esc_attr($_REQUEST['_wpnonce']); if(!wp_verify_nonce($nonce, 'acfe_options_delete_option')) wp_die('Cheatin’, huh?'); acfe_options_delete_option(absint($_GET['option'])); wp_redirect(sprintf('?page=%s&message=deleted', esc_attr($_REQUEST['page']))); exit; } /** * Options Delete: Message * */ add_action('acfe/options/load/message=deleted', 'acfe_options_load_delete_message'); function acfe_options_load_delete_message(){ acf_add_admin_notice(__('Option has been deleted'), 'success'); } /** * Options Bulk Delete: Load * */ add_action('acfe/options/load/action=bulk-delete', 'acfe_options_load_bulk_delete'); function acfe_options_load_bulk_delete(){ $nonce = esc_attr($_REQUEST['_wpnonce']); if(!wp_verify_nonce($nonce, 'bulk-options')) wp_die('Cheatin’, huh?'); $delete_ids = esc_sql($_REQUEST['bulk-delete']); foreach($delete_ids as $id){ acfe_options_delete_option($id); } wp_redirect(sprintf('?page=%s&message=bulk-deleted', esc_attr($_REQUEST['page']))); exit; } /** * Options Bulk Delete: Message * */ add_action('acfe/options/load/message=bulk-deleted', 'acfe_options_load_bulk_delete_message'); function acfe_options_load_bulk_delete_message(){ acf_add_admin_notice(__('Options have been deleted'), 'success'); } /** * Options Delete: Function * */ function acfe_options_delete_option($id){ global $wpdb; $wpdb->delete( "{$wpdb->options}", array('option_id' => $id), array('%d') ); } /** * Options Edit: Load * */ add_action('acfe/options/load/action=edit', 'acfe_options_load_edit'); add_action('acfe/options/load/action=add', 'acfe_options_load_edit'); function acfe_options_load_edit($action){ // Nonce if(acf_verify_nonce('acfe-options-edit')){ // Save data if(acf_validate_save_post(true)){ acf_save_post('acfe_options_edit'); $redirect = add_query_arg(array('message' => 'updated')); if($action == 'add') $redirect = sprintf('?page=%s&message=added', esc_attr($_REQUEST['page'])); wp_redirect($redirect); exit; } } // Load acf scripts acf_enqueue_scripts(); // Actions add_action('acf/input/admin_head', 'acfe_options_edit_metabox'); // Add columns support add_screen_option('layout_columns', array( 'max' => 2, 'default' => 2 )); } /** * Options Edit: HTML * */ add_filter('acfe/options/html/action=edit', 'acfe_options_html_edit'); add_filter('acfe/options/html/action=add', 'acfe_options_html_edit'); function acfe_options_html_edit(){ acf_get_view(ACFE_PATH . '/includes/admin/views/html-options-edit.php'); } /** * Options Edit: Metabox * */ function acfe_options_edit_metabox(){ $option = array( 'option_id' => 0, 'option_name' => '', 'option_value' => '', 'autoload' => 'no', ); if(isset($_REQUEST['option']) && !empty($_REQUEST['option'])){ $option_id = absint($_REQUEST['option']); global $wpdb; $get_option = $wpdb->get_row("SELECT * FROM {$wpdb->options} WHERE option_id = '$option_id'", 'ARRAY_A'); if(!empty($get_option)) $option = $get_option; } $field_group = array( 'ID' => 0, 'key' => 'group_acfe_options_edit', 'style' => 'default', 'label_placement' => 'left', 'instruction_placement' => 'label', 'fields' => array() ); $fields = array(); $fields[] = array( 'label' => __('Name'), 'key' => 'field_acfe_options_edit_name', 'name' => 'field_acfe_options_edit_name', 'type' => 'text', 'prefix' => 'acf', 'instructions' => '', 'required' => true, 'conditional_logic' => false, 'default_value' => '', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', 'value' => $option['option_name'], 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), ); // Serialized || HTML if(is_serialized($option['option_value']) || $option['option_value'] != strip_tags($option['option_value'])){ $type = 'serilized'; $instructions = 'Use this online tool to unserialize/seriliaze data.'; if($option['option_value'] != strip_tags($option['option_value'])){ $type = 'HTML'; $instructions = ''; } $fields[] = array( 'label' => __('Value ' . $type . ''), 'key' => 'field_acfe_options_edit_value', 'name' => 'field_acfe_options_edit_value', 'type' => 'textarea', 'prefix' => 'acf', 'instructions' => $instructions, 'required' => false, 'conditional_logic' => false, 'default_value' => '', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', 'value' => $option['option_value'], 'class' => 'code', 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), ); } // String else{ $type = ''; if(!empty($option['option_value'])) $type = 'string'; $fields[] = array( 'label' => __('Value ' . $type), 'key' => 'field_acfe_options_edit_value', 'name' => 'field_acfe_options_edit_value', 'type' => 'text', 'prefix' => 'acf', 'instructions' => '', 'required' => false, 'conditional_logic' => false, 'default_value' => '', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', 'value' => $option['option_value'], 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), ); } $fields[] = array( 'label' => __('Autoload'), 'key' => 'field_acfe_options_edit_autoload', 'name' => 'field_acfe_options_edit_autoload', 'type' => 'select', 'prefix' => 'acf', 'instructions' => '', 'required' => true, 'conditional_logic' => false, 'default_value' => '', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', 'value' => $option['autoload'], 'choices' => array( 'no' => __('No'), 'yes' => __('Yes'), ), 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), ); $field_group['fields'] = $fields; $metabox_submit_title = __('Submit','acf'); $metabox_main_title = __('Add Option'); if(!empty($option['option_id'])){ $metabox_submit_title = __('Edit','acf'); $metabox_main_title = __('Edit Option'); } // Submit Metabox add_meta_box('submitdiv', $metabox_submit_title, function($post, $args) use($option){ $delete_nonce = wp_create_nonce('acfe_options_delete_option'); ?>
$id, 'key' => $field_group['key'], 'style' => $field_group['style'], 'label' => $field_group['label_placement'], 'editLink' => '', 'editTitle' => __('Edit field group', 'acf'), 'visibility' => true ); // load fields $fields = $field_group['fields']; // render acf_render_fields($fields, 'acfe-options-edit', 'div', $field_group['instruction_placement']); ?> $field_group)); } /** * Options Edit: Save * */ add_action('acf/save_post', 'acfe_options_edit_save_post', 5); function acfe_options_edit_save_post($post_id){ // Validate if(!in_array($post_id, array('acfe_options_edit'))) return; // Vars $option_name = wp_unslash($_POST['acf']['field_acfe_options_edit_name']); $option_value = wp_unslash($_POST['acf']['field_acfe_options_edit_value']); $autoload = $_POST['acf']['field_acfe_options_edit_autoload']; // Value serialized? $option_value = maybe_unserialize($option_value); // Update update_option($option_name, $option_value, $autoload); // Flush ACF $_POST['acf'] = array(); } /** * Options Edit: Message * */ add_action('acfe/options/load/message=updated', 'acfe_options_load_edit_message'); function acfe_options_load_edit_message(){ acf_add_admin_notice(__('Option has been updated'), 'success'); } /** * Options Add: Message * */ add_action('acfe/options/load/message=added', 'acfe_options_load_add_message'); function acfe_options_load_add_message(){ acf_add_admin_notice(__('Option has been added'), 'success'); }