本文整理汇总了PHP中wpcf_admin_fields_save_fields函数的典型用法代码示例。如果您正苦于以下问题:PHP wpcf_admin_fields_save_fields函数的具体用法?PHP wpcf_admin_fields_save_fields怎么用?PHP wpcf_admin_fields_save_fields使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了wpcf_admin_fields_save_fields函数的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: wpcf_admin_custom_fields_control_bulk_actions
/**
* Submitted Bulk actions.
*/
function wpcf_admin_custom_fields_control_bulk_actions($action = '')
{
if (!isset($_POST['_wpnonce']) || !wp_verify_nonce($_POST['_wpnonce'], 'custom_fields_control_bulk')) {
return;
}
if ($action == 'wpcf-deactivate-bulk') {
$fields = wpcf_admin_fields_get_fields(false, true);
foreach ($_POST['fields'] as $field_id) {
$field_id = sanitize_text_field($field_id);
if (isset($fields[$field_id])) {
$fields[$field_id]['data']['disabled'] = 1;
wpcf_admin_message_store(sprintf(__('Removed from Types control: %s', 'wpcf'), $fields[$field_id]['name']));
}
}
wpcf_admin_fields_save_fields($fields);
} else {
if ($action == 'wpcf-activate-bulk') {
$fields = wpcf_admin_fields_get_fields(false, true);
$fields_bulk = wpcf_types_cf_under_control('add', array('fields' => $_POST['fields']));
foreach ($fields_bulk as $field_id) {
if (isset($fields[$field_id])) {
$fields[$field_id]['data']['disabled'] = 0;
}
wpcf_admin_message_store(sprintf(__('Added to Types control: %s', 'wpcf'), $field_id));
}
wpcf_admin_fields_save_fields($fields);
} else {
if ($action == 'wpcf-delete-bulk') {
require_once WPCF_INC_ABSPATH . '/fields.php';
$failed = array();
$success = array();
foreach ($_POST['fields'] as $field_id) {
$field_id = sanitize_text_field($field_id);
$response = wpcf_admin_fields_delete_field($field_id);
if (!$response) {
$failed[] = str_replace('_' . md5('wpcf_not_controlled'), '', $field_id);
} else {
$success[] = $field_id;
}
}
if (!empty($success)) {
wpcf_admin_message_store(sprintf(__('Fields %s have been deleted.', 'wpcf'), implode(', ', $success)));
}
if (!empty($failed)) {
wpcf_admin_message_store(sprintf(__('Fields %s are not Types fields. Types wont delete these fields.', 'wpcf'), implode(', ', $failed)), 'error');
}
}
}
}
$url = add_query_arg(array('page' => 'wpcf-custom-fields-control', 'display_all' => isset($_REQUEST['display_all']) ? 1 : 0), admin_url('admin.php'));
wp_redirect($url);
die;
}
示例2: wpcf_types_cf_under_control
/**
* Actions for outside fields control.
*
* @param type $action
*/
function wpcf_types_cf_under_control($action = 'add', $args = array(), $post_type = 'wp-types-group', $meta_name = 'wpcf-fields')
{
global $wpcf_types_under_control;
$wpcf_types_under_control['errors'] = array();
switch ($action) {
case 'add':
$fields = wpcf_admin_fields_get_fields(false, true, false, $meta_name, false);
foreach ($args['fields'] as $field_id) {
$field_type = !empty($args['type']) ? $args['type'] : 'textfield';
if (strpos($field_id, md5('wpcf_not_controlled')) !== false) {
$field_id_name = str_replace('_' . md5('wpcf_not_controlled'), '', $field_id);
$field_id_add = preg_replace('/^wpcf\\-/', '', $field_id_name);
$adding_field_with_wpcf_prefix = $field_id_add != $field_id_name;
// Activating field that previously existed in Types
if (array_key_exists($field_id_add, $fields)) {
$fields[$field_id_add]['data']['disabled'] = 0;
} else {
// Adding from outside
$fields[$field_id_add]['id'] = $field_id_add;
$fields[$field_id_add]['type'] = $field_type;
if ($adding_field_with_wpcf_prefix) {
$fields[$field_id_add]['name'] = $field_id_add;
$fields[$field_id_add]['slug'] = $field_id_add;
} else {
$fields[$field_id_add]['name'] = $field_id_name;
$fields[$field_id_add]['slug'] = $field_id_name;
}
$fields[$field_id_add]['description'] = '';
$fields[$field_id_add]['data'] = array();
if ($adding_field_with_wpcf_prefix) {
// This was most probably a previous Types field
// let's take full control
$fields[$field_id_add]['data']['controlled'] = 0;
} else {
// @TODO WATCH THIS! MUST NOT BE DROPPED IN ANY CASE
$fields[$field_id_add]['data']['controlled'] = 1;
}
}
$unset_key = array_search($field_id, $args['fields']);
if ($unset_key !== false) {
unset($args['fields'][$unset_key]);
$args['fields'][$unset_key] = $field_id_add;
}
}
}
wpcf_admin_fields_save_fields($fields, true, $meta_name);
return $args['fields'];
break;
case 'check_exists':
$fields = wpcf_admin_fields_get_fields(false, true, false, $meta_name, false);
$field = $args;
if (array_key_exists($field, $fields) && empty($fields[$field]['data']['disabled'])) {
return true;
}
return false;
break;
case 'check_outsider':
$fields = wpcf_admin_fields_get_fields(false, true, false, $meta_name, false);
$field = $args;
if (array_key_exists($field, $fields) && !empty($fields[$field]['data']['controlled'])) {
return true;
}
return false;
break;
default:
break;
}
}
示例3: wpcf_admin_custom_fields_control_bulk_actions
/**
* Submitted Bulk actions.
*/
function wpcf_admin_custom_fields_control_bulk_actions($action = '')
{
if (!isset($_POST['_wpnonce']) || !wp_verify_nonce($_POST['_wpnonce'], 'custom_fields_control_bulk')) {
return;
}
switch ($action) {
case 'wpcf-change-type-bulk':
if (true && isset($_POST['wpcf-id']) && isset($_POST['fields'])) {
wpcf_admin_custom_fields_change_type($_POST['fields'], $_POST['wpcf-id'], TYPES_CUSTOM_FIELD_GROUP_CPT_NAME);
}
break;
case 'wpcf-deactivate-bulk':
$fields = wpcf_admin_fields_get_fields(false, true);
foreach ($_POST['fields'] as $field_id) {
$field_id = sanitize_text_field($field_id);
if (isset($fields[$field_id])) {
$fields[$field_id]['data']['disabled'] = 1;
wpcf_admin_message_store(sprintf(__('Removed from Types control: %s', 'wpcf'), $fields[$field_id]['name']));
}
}
wpcf_admin_fields_save_fields($fields);
break;
case 'wpcf-activate-bulk':
$fields = wpcf_admin_fields_get_fields(false, true);
$fields_bulk = wpcf_types_cf_under_control('add', array('fields' => $_POST['fields']));
foreach ($fields_bulk as $field_id) {
if (isset($fields[$field_id])) {
$fields[$field_id]['data']['disabled'] = 0;
}
wpcf_admin_message_store(sprintf(__('Added to Types control: %s', 'wpcf'), $field_id));
}
wpcf_admin_fields_save_fields($fields);
break;
case 'wpcf-delete-bulk':
require_once WPCF_INC_ABSPATH . '/fields.php';
$failed = array();
$success = array();
foreach ($_POST['fields'] as $field_id) {
$field_id = sanitize_text_field($field_id);
$response = wpcf_admin_fields_delete_field($field_id);
if (!$response) {
$failed[] = str_replace('_' . md5('wpcf_not_controlled'), '', $field_id);
} else {
$success[] = $field_id;
}
}
if (!empty($success)) {
wpcf_admin_message_store(sprintf(__('Fields %s have been deleted.', 'wpcf'), implode(', ', $success)));
}
if (!empty($failed)) {
wpcf_admin_message_store(sprintf(__('Fields %s are not Types fields. Types wont delete these fields.', 'wpcf'), implode(', ', $failed)), 'error');
}
break;
case 'wpcf-add-to-group-bulk':
case 'wpcf-remove-from-group-bulk':
if (true && isset($_POST['wpcf-id']) && isset($_POST['fields'])) {
$fields = array_values((array) $_POST['fields']);
if (!empty($fields)) {
$groups = explode(',', $_POST['wpcf-id']);
foreach ($groups as $group_id) {
switch ($action) {
case 'wpcf-add-to-group-bulk':
wpcf_admin_fields_save_group_fields($group_id, $fields, true);
break;
case 'wpcf-remove-from-group-bulk':
wpcf_admin_fields_remove_field_from_group_bulk($group_id, $fields);
break;
}
}
}
}
break;
}
wp_safe_redirect(esc_url_raw(add_query_arg(array('page' => 'wpcf-custom-fields-control'), admin_url('admin.php'))));
die;
}
示例4: wpcf_ajax
//.........这里部分代码省略.........
require_once WPCF_INC_ABSPATH . '/fields/select.php';
$element = wpcf_fields_select_get_option(urldecode($_GET['parent_name']));
echo json_encode(array('output' => wpcf_form_simple($element)));
break;
case 'group_form_collapsed':
require_once WPCF_INC_ABSPATH . '/fields-form.php';
$group_id = $_GET['group_id'];
$action = $_GET['toggle'];
$fieldset = $_GET['id'];
wpcf_admin_fields_form_save_open_fieldset($action, $fieldset, $group_id);
break;
case 'form_fieldset_toggle':
$action = $_GET['toggle'];
$fieldset = $_GET['id'];
wpcf_admin_form_fieldset_save_toggle($action, $fieldset);
break;
case 'group_update_post_types':
require_once WPCF_INC_ABSPATH . '/fields.php';
$post_types = empty($_GET['wpcf']['group']['supports']) ? array() : $_GET['wpcf']['group']['supports'];
if (!empty($_GET['group_id'])) {
wpcf_admin_fields_save_group_post_types($_GET['group_id'], $post_types);
$output = array();
foreach ($post_types as $post_type) {
$post_type = get_post_type_object($post_type);
if (!empty($post_type->label)) {
$output[] = $post_type->label;
}
}
if (empty($post_types)) {
$output[] = __('No post types associated', 'wpcf');
}
$output = implode(', ', $output);
} else {
$output = __('No post types associated', 'wpcf');
}
echo json_encode(array('output' => $output));
break;
case 'group_update_taxonomies':
require_once WPCF_INC_ABSPATH . '/fields.php';
$taxonomies_post = empty($_GET['wpcf']['group']['taxonomies']) ? array() : $_GET['wpcf']['group']['taxonomies'];
$terms = array();
foreach ($taxonomies_post as $taxonomy) {
foreach ($taxonomy as $tax => $term) {
$terms[] = $term;
}
}
if (!empty($_GET['group_id'])) {
wpcf_admin_fields_save_group_terms($_GET['group_id'], $terms);
$output = array();
foreach ($taxonomies_post as $taxonomy => $terms) {
$taxonomy = get_taxonomy($taxonomy);
if (!empty($taxonomy)) {
$title = $taxonomy->label . ': ';
foreach ($terms as $term_id) {
$term = get_term($term_id, $taxonomy->name);
$output[] = $title . $term->name;
$title = '';
}
}
}
if (empty($output)) {
$output[] = __('No taxonomies associated', 'wpcf');
}
$output = implode(', ', $output);
} else {
$output = __('No taxonomies associated', 'wpcf');
}
echo json_encode(array('output' => $output));
break;
case 'custom_fields_control_bulk':
require_once WPCF_INC_ABSPATH . '/fields.php';
require_once WPCF_EMBEDDED_INC_ABSPATH . '/fields.php';
require_once WPCF_INC_ABSPATH . '/fields-control.php';
wpcf_admin_custom_fields_control_bulk_ajax();
break;
case 'fields_delete':
case 'delete_field':
require_once WPCF_INC_ABSPATH . '/fields.php';
if (isset($_GET['field_id'])) {
wpcf_admin_fields_delete_field($_GET['field_id']);
}
if (isset($_GET['field'])) {
wpcf_admin_fields_delete_field($_GET['field']);
}
echo json_encode(array('output' => ''));
break;
case 'remove_from_history':
require_once WPCF_INC_ABSPATH . '/fields.php';
$fields = wpcf_admin_fields_get_fields();
if (isset($_GET['field_id']) && isset($fields[$_GET['field_id']])) {
$fields[$_GET['field_id']]['data']['removed_from_history'] = 1;
wpcf_admin_fields_save_fields($fields, true);
}
echo json_encode(array('output' => ''));
break;
default:
break;
}
die;
}
示例5: wpcf_admin_custom_fields_control_bulk_actions
/**
* Submitted Bulk actions.
*/
function wpcf_admin_custom_fields_control_bulk_actions($action = '')
{
if ($action == 'wpcf-deactivate-bulk') {
$fields = wpcf_admin_fields_get_fields();
foreach ($_POST['fields'] as $field_id) {
if (isset($fields[$field_id])) {
$fields[$field_id]['data']['disabled'] = 1;
wpcf_admin_message_store(sprintf(__('Removed from Types control: %s', 'wpcf'), $fields[$field_id]['name']));
}
}
wpcf_admin_fields_save_fields($fields);
} else {
if ($action == 'wpcf-activate-bulk') {
$fields = wpcf_admin_fields_get_fields();
$fields_bulk = wpcf_types_cf_under_control('add', array('fields' => $_POST['fields']));
foreach ($fields_bulk as $field_id) {
if (isset($fields[$field_id]) && empty($fields[$field_id]['data']['disabled_by_type'])) {
$fields[$field_id]['data']['disabled'] = 0;
}
wpcf_admin_message_store(sprintf(__('Added to Types control: %s', 'wpcf'), $field_id));
}
wpcf_admin_fields_save_fields($fields);
} else {
if ($action == 'wpcf-delete-bulk') {
require_once WPCF_INC_ABSPATH . '/fields.php';
$failed = array();
$success = array();
foreach ($_POST['fields'] as $field_id) {
$response = wpcf_admin_fields_delete_field($field_id);
if (!$response) {
$failed[] = str_replace('_' . md5('wpcf_not_controlled'), '', $field_id);
} else {
$success[] = $field_id;
}
}
if (!empty($success)) {
wpcf_admin_message_store(sprintf(__('Fields %s have been deleted.', 'wpcf'), implode(', ', $success)));
}
if (!empty($failed)) {
wpcf_admin_message_store(sprintf(__('Fields %s are not Types fields. Types wont delete these fields.', 'wpcf'), implode(', ', $failed)));
}
}
}
}
wp_redirect($_SERVER['REQUEST_URI']);
die;
}
示例6: wpv_register_typesfields_func
/**
* Auto-register the computed values as Types fields.
* This method automatically creates the Woocommerce Views filter custom fields and group.
* Hooked to wp_loaded
* @access public
* @return void
*/
public function wpv_register_typesfields_func()
{
//Define WC Views canonical custom field array
$wc_views_custom_fields_array = array('views_woo_price', 'views_woo_on_sale', 'views_woo_in_stock');
//Preparation to Types control
$wc_views_fields_array = array();
$string_wpcf_not_controlled = md5('wpcf_not_controlled');
foreach ($wc_views_custom_fields_array as $key => $value) {
$wc_views_fields_array[] = $value . '_' . $string_wpcf_not_controlled;
}
if (defined('WPCF_INC_ABSPATH')) {
//First, check if WC Views Types Group field does not exist
if (!$this->check_if_types_group_exist('WooCommerce Views filter fields')) {
require_once WPCF_INC_ABSPATH . '/fields.php';
//Part 1: Assign to Types Control
//Get Fields
$fields = wpcf_admin_fields_get_fields(false, true);
$fields_bulk = wpcf_types_cf_under_control('add', array('fields' => $wc_views_fields_array));
foreach ($fields_bulk as $field_id) {
if (isset($fields[$field_id])) {
$fields[$field_id]['data']['disabled'] = 0;
}
}
//Save fields
wpcf_admin_fields_save_fields($fields);
//Retrieve updated fields
$fields = wpcf_admin_fields_get_fields(false, false);
//Assign names
foreach ($fields as $key => $value) {
if ($key == 'views_woo_price') {
$fields['views_woo_price']['name'] = 'WooCommerce Product Price';
} elseif ($key == 'views_woo_on_sale') {
$fields['views_woo_on_sale']['name'] = 'Product On Sale Status';
} elseif ($key == 'views_woo_in_stock') {
$fields['views_woo_in_stock']['name'] = 'Product In Stock Status';
}
}
//Save fields
wpcf_admin_fields_save_fields($fields);
//Define group
$group = array('name' => 'WooCommerce Views filter fields', 'description' => '', 'filters_association' => 'any', 'conditional_display' => array('relation' => 'AND', 'custom' => ''), 'preview' => 'edit_mode', 'admin_html_preview' => '', 'admin_styles' => '', 'slug' => 'wc-views-types-groups-fields');
//Save group
$group_id = wpcf_admin_fields_save_group($group);
//Save group fields
wpcf_admin_fields_save_group_fields($group_id, $fields_bulk);
}
}
}
示例7: wpcf_ajax
/**
* All AJAX calls go here.
*
* @global object $wpdb
*
*/
function wpcf_ajax()
{
if (!current_user_can('manage_options') || (!isset($_REQUEST['_wpnonce']) || !wp_verify_nonce($_REQUEST['_wpnonce'], $_REQUEST['wpcf_action']))) {
die;
}
switch ($_REQUEST['wpcf_action']) {
/* User meta actions*/
case 'user_fields_control_bulk':
require_once WPCF_INC_ABSPATH . '/fields.php';
require_once WPCF_EMBEDDED_INC_ABSPATH . '/fields.php';
require_once WPCF_INC_ABSPATH . '/fields-control.php';
require_once WPCF_INC_ABSPATH . '/usermeta-control.php';
wpcf_admin_user_fields_control_bulk_ajax();
break;
case 'usermeta_delete':
case 'delete_usermeta':
require_once WPCF_INC_ABSPATH . '/fields.php';
if (isset($_GET['field_id'])) {
$field_id = sanitize_text_field($_GET['field_id']);
wpcf_admin_fields_delete_field($field_id, 'wp-types-user-group', 'wpcf-usermeta');
}
if (isset($_GET['field'])) {
$field = sanitize_text_field($_GET['field']);
wpcf_admin_fields_delete_field($field, 'wp-types-user-group', 'wpcf-usermeta');
}
echo json_encode(array('output' => ''));
break;
case 'remove_from_history2':
require_once WPCF_INC_ABSPATH . '/fields.php';
$fields = wpcf_admin_fields_get_fields(true, true, false, 'wpcf-usermeta');
if (isset($_GET['field_id']) && isset($fields[$_GET['field_id']])) {
$fields[$_GET['field_id']]['data']['removed_from_history'] = 1;
wpcf_admin_fields_save_fields($fields, true, 'wpcf-usermeta');
}
echo json_encode(array('output' => ''));
break;
case 'deactivate_user_group':
require_once WPCF_INC_ABSPATH . '/fields.php';
require_once WPCF_INC_ABSPATH . '/usermeta.php';
$success = wpcf_admin_fields_deactivate_group(intval($_GET['group_id']), 'wp-types-user-group');
if ($success) {
echo json_encode(array('output' => __('Group deactivated', 'wpcf'), 'execute' => 'location.reload();'));
} else {
echo json_encode(array('output' => __('Error occured', 'wpcf')));
}
break;
case 'activate_user_group':
require_once WPCF_INC_ABSPATH . '/fields.php';
require_once WPCF_INC_ABSPATH . '/usermeta.php';
$success = wpcf_admin_fields_activate_group(intval($_GET['group_id']), 'wp-types-user-group');
if ($success) {
echo json_encode(array('output' => __('Group activated', 'wpcf'), 'execute' => 'location.reload();'));
} else {
echo json_encode(array('output' => __('Error occured', 'wpcf')));
}
break;
case 'delete_usermeta_group':
require_once WPCF_INC_ABSPATH . '/fields.php';
require_once WPCF_INC_ABSPATH . '/usermeta.php';
wpcf_admin_fields_delete_group(intval($_GET['group_id']), 'wp-types-user-group');
echo json_encode(array('output' => '', 'execute' => 'location.reload();'));
break;
case 'usermeta_insert_existing':
require_once WPCF_INC_ABSPATH . '/fields.php';
require_once WPCF_INC_ABSPATH . '/fields-form.php';
require_once WPCF_INC_ABSPATH . '/usermeta-form.php';
wpcf_usermeta_insert_existing_ajax();
wpcf_form_render_js_validation();
break;
/* End Usertmeta actions*/
/* End Usertmeta actions*/
case 'fields_insert':
require_once WPCF_INC_ABSPATH . '/fields.php';
require_once WPCF_INC_ABSPATH . '/fields-form.php';
wpcf_fields_insert_ajax();
wpcf_form_render_js_validation();
break;
case 'fields_insert_existing':
require_once WPCF_INC_ABSPATH . '/fields.php';
require_once WPCF_INC_ABSPATH . '/fields-form.php';
wpcf_fields_insert_existing_ajax();
wpcf_form_render_js_validation();
break;
case 'remove_field_from_group':
require_once WPCF_INC_ABSPATH . '/fields.php';
if (isset($_GET['group_id']) && isset($_GET['field_id'])) {
wpcf_admin_fields_remove_field_from_group(intval($_GET['group_id']), sanitize_text_field($_GET['field_id']));
}
break;
case 'deactivate_group':
require_once WPCF_INC_ABSPATH . '/fields.php';
$success = wpcf_admin_fields_deactivate_group(intval($_GET['group_id']));
if ($success) {
echo json_encode(array('output' => __('Group deactivated', 'wpcf'), 'execute' => 'location.reload();'));
//.........这里部分代码省略.........
示例8: wpcf_admin_fields_delete_field
/**
* Deletes field.
*
* @param type $field_id
*/
function wpcf_admin_fields_delete_field($field_id)
{
global $wpdb;
$fields = get_option('wpcf-fields', array());
if (isset($fields[$field_id])) {
// Remove from groups
$groups = wpcf_admin_fields_get_groups();
foreach ($groups as $key => $group) {
wpcf_admin_fields_remove_field_from_group($group['id'], $field_id);
}
// Remove from posts
if (!wpcf_types_cf_under_control('check_outsider', $field_id)) {
$results = $wpdb->get_results("SELECT post_id, meta_key FROM {$wpdb->postmeta} WHERE meta_key = '" . wpcf_types_get_meta_prefix($fields[$field_id]) . strval($field_id) . "'");
foreach ($results as $result) {
delete_post_meta($result->post_id, $result->meta_key);
}
}
unset($fields[$field_id]);
wpcf_admin_fields_save_fields($fields, true);
return true;
} else {
return false;
}
}
示例9: process_bulk_action
private function process_bulk_action()
{
$action = $this->current_action();
if (false == $action) {
return;
}
if (!wp_verify_nonce(wpcf_getpost('_wpnonce'), WPCF_Page_Control_Termmeta::BULK_ACTION_NONCE)) {
wp_die(__('Invalid nonce.', 'wpcf'));
}
$selected_field_definitions = wpcf_getpost(self::INPUT_SLUGS, array());
if (is_string($selected_field_definitions)) {
$selected_field_definitions = array($selected_field_definitions);
}
if (!is_array($selected_field_definitions) || empty($selected_field_definitions)) {
// Nothing to do here
return;
}
$factory = WPCF_Field_Term_Definition_Factory::get_instance();
switch ($action) {
case self::BULK_ACTION_ADD_TO_GROUP:
$group_ids = $this->read_group_ids();
foreach ($group_ids as $group_id) {
wpcf_admin_fields_save_group_fields($group_id, $selected_field_definitions, true, WPCF_Field_Group_Term::POST_TYPE, WPCF_Field_Term_Definition_Factory::FIELD_DEFINITIONS_OPTION);
}
break;
case self::BULK_ACTION_REMOVE_FROM_TO_GROUP:
$group_ids = $this->read_group_ids();
foreach ($group_ids as $group_id) {
wpcf_admin_fields_remove_field_from_group_bulk($group_id, $selected_field_definitions);
}
break;
case self::BULK_ACTION_CHANGE_TYPE:
$field_type_slug = wpcf_getpost('wpcf-id');
if (!empty($field_type_slug)) {
wpcf_admin_custom_fields_change_type($selected_field_definitions, $field_type_slug, WPCF_Field_Group_Term::POST_TYPE, WPCF_Field_Term_Definition_Factory::FIELD_DEFINITIONS_OPTION);
}
break;
case self::BULK_ACTION_ACTIVATE:
$fields = wpcf_admin_fields_get_fields(false, true, false, WPCF_Field_Term_Definition_Factory::FIELD_DEFINITIONS_OPTION);
$fields_bulk = wpcf_types_cf_under_control('add', array('fields' => $selected_field_definitions), WPCF_Field_Group_Term::POST_TYPE, WPCF_Field_Term_Definition_Factory::FIELD_DEFINITIONS_OPTION);
foreach ($fields_bulk as $field_id) {
if (isset($fields[$field_id])) {
$fields[$field_id]['data']['disabled'] = 0;
}
wpcf_admin_message(sprintf(__('Added to Types control: %s', 'wpcf'), esc_html($field_id)), 'updated', 'echo');
}
wpcf_admin_fields_save_fields($fields, false, WPCF_Field_Term_Definition_Factory::FIELD_DEFINITIONS_OPTION);
break;
case self::BULK_ACTION_DEACTIVATE:
$fields = wpcf_admin_fields_get_fields(false, true, false, WPCF_Field_Term_Definition_Factory::FIELD_DEFINITIONS_OPTION);
foreach ($selected_field_definitions as $field_id) {
$field_id = sanitize_text_field($field_id);
if (isset($fields[$field_id])) {
$fields[$field_id]['data']['disabled'] = 1;
wpcf_admin_message(sprintf(__('Removed from Types control: %s', 'wpcf'), $fields[$field_id]['name']), 'updated', 'echo');
}
}
wpcf_admin_fields_save_fields($fields, false, WPCF_Field_Term_Definition_Factory::FIELD_DEFINITIONS_OPTION);
break;
case self::BULK_ACTION_DELETE:
$failed = array();
$success = array();
foreach ($selected_field_definitions as $field_id) {
$field_id = sanitize_text_field($field_id);
// Permanently single field definition and field data.
$field_definition = $factory->load_field_definition($field_id);
if (null == $field_definition) {
$response = false;
} else {
$response = $factory->delete_definition($field_definition);
}
if (!$response) {
$failed[] = str_replace('_' . md5('wpcf_not_controlled'), '', $field_id);
} else {
$success[] = $field_id;
}
}
if (!empty($success)) {
wpcf_admin_message(sprintf(__('Fields %s have been deleted.', 'wpcf'), esc_html(implode(', ', $success))), 'updated', 'echo');
}
if (!empty($failed)) {
wpcf_admin_message(sprintf(__('Fields %s are not Types fields. Types wont delete these fields.', 'wpcf'), esc_html(implode(', ', $failed))), 'error', 'echo');
}
break;
}
// We made changes to field definitions and now the listing table is going to be rendered.
$factory->clear_definition_storage();
}
示例10: wpcf_types_cf_under_control
/**
* Actions for outside fields control.
*
* @param type $action
*/
function wpcf_types_cf_under_control($action = 'add', $args = array())
{
global $wpcf_types_under_control;
$wpcf_types_under_control['errors'] = array();
switch ($action) {
case 'add':
$fields = wpcf_admin_fields_get_fields();
foreach ($args['fields'] as $field_id) {
$field_type = !empty($args['type']) ? $args['type'] : 'textfield';
if (strpos($field_id, md5('wpcf_not_controlled')) !== false) {
$field_id_add = str_replace('_' . md5('wpcf_not_controlled'), '', $field_id);
// Activating field that previously existed in Types
if (array_key_exists($field_id_add, $fields)) {
$fields[$field_id_add]['data']['disabled'] = 0;
} else {
// Adding from outside
$fields[$field_id_add]['id'] = $field_id_add;
$fields[$field_id_add]['type'] = $field_type;
$fields[$field_id_add]['name'] = $field_id_add;
$fields[$field_id_add]['slug'] = $field_id_add;
$fields[$field_id_add]['description'] = '';
$fields[$field_id_add]['data'] = array();
// @TODO WATCH THIS! MUST NOT BE DROPPED IN ANY CASE
$fields[$field_id_add]['data']['controlled'] = 1;
}
$unset_key = array_search($field_id, $args['fields']);
if ($unset_key !== false) {
unset($args['fields'][$unset_key]);
$args['fields'][$unset_key] = $field_id_add;
}
}
}
wpcf_admin_fields_save_fields($fields, true);
return $args['fields'];
break;
case 'check_exists':
$fields = wpcf_admin_fields_get_fields();
$field = $args;
if (array_key_exists($field, $fields) && empty($fields[$field]['data']['disabled'])) {
return true;
}
return false;
break;
case 'check_outsider':
$fields = wpcf_admin_fields_get_fields();
$field = $args;
if (array_key_exists($field, $fields) && !empty($fields[$field]['data']['controlled'])) {
return true;
}
return false;
break;
default:
break;
}
}
示例11: wpcf_admin_fields_delete_field
/**
* Deletes field.
* Modified by Gen, 13.02.2013
*
* @global object $wpdb
*
* @param type $field_id
*/
function wpcf_admin_fields_delete_field($field_id, $post_type = TYPES_CUSTOM_FIELD_GROUP_CPT_NAME, $meta_name = 'wpcf-fields')
{
global $wpdb;
$fields = get_option($meta_name, array());
if (isset($fields[$field_id])) {
// Remove from groups
$groups = wpcf_admin_fields_get_groups($post_type);
foreach ($groups as $key => $group) {
wpcf_admin_fields_remove_field_from_group($group['id'], $field_id);
}
// Remove from posts
if (!wpcf_types_cf_under_control('check_outsider', $field_id, $post_type, $meta_name)) {
$results = $wpdb->get_results($wpdb->prepare("SELECT post_id, meta_key FROM {$wpdb->postmeta} WHERE meta_key = %s", wpcf_types_get_meta_prefix($fields[$field_id]) . strval($field_id)));
foreach ($results as $result) {
delete_post_meta($result->post_id, $result->meta_key);
}
}
unset($fields[$field_id]);
wpcf_admin_fields_save_fields($fields, true, $meta_name);
return true;
} else {
return false;
}
}
示例12: erase_field_definition_from_options
/**
* Completely erase field definition from options and clear cache.
*
* @param string $field_slug
*/
private function erase_field_definition_from_options($field_slug)
{
$fields_from_options = $this->get_fields_from_options();
unset($fields_from_options[$field_slug]);
wpcf_admin_fields_save_fields($fields_from_options, true, $this->get_option_name());
$this->clear_definition_storage($field_slug);
}
示例13: wpcf_ajax
//.........这里部分代码省略.........
if (!current_user_can('manage_options')) {
wpcf_ajax_helper_verification_failed_and_die();
}
/**
* do not check actions from other places
*/
break;
default:
return;
}
/**
* do actions
*/
switch ($_REQUEST['wpcf_action']) {
/* User meta actions*/
case 'usermeta_delete':
case 'delete_usermeta':
require_once WPCF_INC_ABSPATH . '/fields.php';
if (isset($_GET['field_id'])) {
$field_id = sanitize_text_field($_GET['field_id']);
wpcf_admin_fields_delete_field($field_id, TYPES_USER_META_FIELD_GROUP_CPT_NAME, 'wpcf-usermeta');
}
if (isset($_GET['field'])) {
$field = sanitize_text_field($_GET['field']);
wpcf_admin_fields_delete_field($field, TYPES_USER_META_FIELD_GROUP_CPT_NAME, 'wpcf-usermeta');
}
echo json_encode(array('output' => ''));
break;
case 'remove_from_history2':
require_once WPCF_INC_ABSPATH . '/fields.php';
$fields = wpcf_admin_fields_get_fields(true, true, false, 'wpcf-usermeta');
if (isset($_GET['field_id']) && isset($fields[$_GET['field_id']])) {
$fields[$_GET['field_id']]['data']['removed_from_history'] = 1;
wpcf_admin_fields_save_fields($fields, true, 'wpcf-usermeta');
}
echo json_encode(array('output' => ''));
break;
case 'deactivate_user_group':
require_once WPCF_INC_ABSPATH . '/fields.php';
require_once WPCF_INC_ABSPATH . '/usermeta.php';
$success = wpcf_admin_fields_deactivate_group(intval($_GET['group_id']), TYPES_USER_META_FIELD_GROUP_CPT_NAME);
if ($success) {
echo json_encode(array('output' => __('Group deactivated', 'wpcf'), 'execute' => 'reload', 'wpcf_nonce_ajax_callback' => wp_create_nonce('execute')));
} else {
wpcf_ajax_helper_print_error_and_die();
die;
}
break;
case 'activate_user_group':
require_once WPCF_INC_ABSPATH . '/fields.php';
require_once WPCF_INC_ABSPATH . '/usermeta.php';
$success = wpcf_admin_fields_activate_group(intval($_GET['group_id']), TYPES_USER_META_FIELD_GROUP_CPT_NAME);
if ($success) {
echo json_encode(array('output' => __('Group activated', 'wpcf'), 'execute' => 'reload', 'wpcf_nonce_ajax_callback' => wp_create_nonce('execute')));
} else {
wpcf_ajax_helper_print_error_and_die();
die;
}
break;
case 'delete_usermeta_group':
require_once WPCF_INC_ABSPATH . '/fields.php';
require_once WPCF_INC_ABSPATH . '/usermeta.php';
$redirect = wpcf_ajax_group_delete_redirect();
wpcf_admin_fields_delete_group(intval($_GET['group_id']), TYPES_USER_META_FIELD_GROUP_CPT_NAME);
echo json_encode($redirect);
break;
示例14: wpcf_ajax
/**
* All AJAX calls go here.
*/
function wpcf_ajax()
{
if (!current_user_can('manage_options') || (!isset($_REQUEST['_wpnonce']) || !wp_verify_nonce($_REQUEST['_wpnonce'], $_REQUEST['wpcf_action']))) {
die;
}
switch ($_REQUEST['wpcf_action']) {
/* User meta actions*/
case 'user_fields_control_bulk':
require_once WPCF_INC_ABSPATH . '/fields.php';
require_once WPCF_EMBEDDED_INC_ABSPATH . '/fields.php';
require_once WPCF_INC_ABSPATH . '/fields-control.php';
require_once WPCF_INC_ABSPATH . '/usermeta-control.php';
wpcf_admin_user_fields_control_bulk_ajax();
break;
case 'usermeta_delete':
case 'delete_usermeta':
require_once WPCF_INC_ABSPATH . '/fields.php';
if (isset($_GET['field_id'])) {
wpcf_admin_fields_delete_field($_GET['field_id'], 'wp-types-user-group', 'wpcf-usermeta');
}
if (isset($_GET['field'])) {
wpcf_admin_fields_delete_field($_GET['field'], 'wp-types-user-group', 'wpcf-usermeta');
}
echo json_encode(array('output' => ''));
break;
case 'remove_from_history2':
require_once WPCF_INC_ABSPATH . '/fields.php';
$fields = wpcf_admin_fields_get_fields(true, true, false, 'wpcf-usermeta');
if (isset($_GET['field_id']) && isset($fields[$_GET['field_id']])) {
$fields[$_GET['field_id']]['data']['removed_from_history'] = 1;
wpcf_admin_fields_save_fields($fields, true, 'wpcf-usermeta');
}
echo json_encode(array('output' => ''));
break;
case 'deactivate_user_group':
require_once WPCF_INC_ABSPATH . '/fields.php';
require_once WPCF_INC_ABSPATH . '/usermeta.php';
$success = wpcf_admin_fields_deactivate_group(intval($_GET['group_id']), 'wp-types-user-group');
if ($success) {
echo json_encode(array('output' => __('Group deactivated', 'wpcf'), 'execute' => 'jQuery("#wpcf-list-activate-' . intval($_GET['group_id']) . '").replaceWith(\'' . wpcf_admin_usermeta_get_ajax_activation_link(intval($_GET['group_id'])) . '\');jQuery(".wpcf-table-column-active-' . intval($_GET['group_id']) . '").html("' . __('No', 'wpcf') . '");', 'wpcf_nonce_ajax_callback' => wp_create_nonce('execute')));
} else {
echo json_encode(array('output' => __('Error occured', 'wpcf')));
}
break;
case 'activate_user_group':
require_once WPCF_INC_ABSPATH . '/fields.php';
require_once WPCF_INC_ABSPATH . '/usermeta.php';
$success = wpcf_admin_fields_activate_group(intval($_GET['group_id']), 'wp-types-user-group');
if ($success) {
echo json_encode(array('output' => __('Group activated', 'wpcf'), 'execute' => 'jQuery("#wpcf-list-activate-' . intval($_GET['group_id']) . '").replaceWith(\'' . wpcf_admin_usermeta_get_ajax_deactivation_link(intval($_GET['group_id'])) . '\');jQuery(".wpcf-table-column-active-' . intval($_GET['group_id']) . '").html("' . __('Yes', 'wpcf') . '");', 'wpcf_nonce_ajax_callback' => wp_create_nonce('execute')));
} else {
echo json_encode(array('output' => __('Error occured', 'wpcf')));
}
break;
case 'delete_usermeta_group':
require_once WPCF_INC_ABSPATH . '/fields.php';
require_once WPCF_INC_ABSPATH . '/usermeta.php';
wpcf_admin_fields_delete_group(intval($_GET['group_id']), 'wp-types-user-group');
echo json_encode(array('output' => '', 'execute' => 'jQuery("#wpcf-list-activate-' . intval($_GET['group_id']) . '").parents("tr").css("background-color", "#FF0000").fadeOut();', 'wpcf_nonce_ajax_callback' => wp_create_nonce('execute')));
break;
case 'usermeta_insert_existing':
require_once WPCF_INC_ABSPATH . '/fields.php';
require_once WPCF_INC_ABSPATH . '/fields-form.php';
require_once WPCF_INC_ABSPATH . '/usermeta-form.php';
wpcf_usermeta_insert_existing_ajax();
wpcf_form_render_js_validation();
break;
/* End Usertmeta actions*/
/* End Usertmeta actions*/
case 'fields_insert':
require_once WPCF_INC_ABSPATH . '/fields.php';
require_once WPCF_INC_ABSPATH . '/fields-form.php';
wpcf_fields_insert_ajax();
wpcf_form_render_js_validation();
break;
case 'fields_insert_existing':
require_once WPCF_INC_ABSPATH . '/fields.php';
require_once WPCF_INC_ABSPATH . '/fields-form.php';
wpcf_fields_insert_existing_ajax();
wpcf_form_render_js_validation();
break;
case 'remove_field_from_group':
require_once WPCF_INC_ABSPATH . '/fields.php';
if (isset($_GET['group_id']) && isset($_GET['field_id'])) {
wpcf_admin_fields_remove_field_from_group($_GET['group_id'], $_GET['field_id']);
}
break;
case 'deactivate_group':
require_once WPCF_INC_ABSPATH . '/fields.php';
$success = wpcf_admin_fields_deactivate_group(intval($_GET['group_id']));
if ($success) {
echo json_encode(array('output' => __('Group deactivated', 'wpcf'), 'execute' => 'jQuery("#wpcf-list-activate-' . intval($_GET['group_id']) . '").replaceWith(\'' . wpcf_admin_fields_get_ajax_activation_link(intval($_GET['group_id'])) . '\');jQuery(".wpcf-table-column-active-' . intval($_GET['group_id']) . '").html("' . __('No', 'wpcf') . '");', 'wpcf_nonce_ajax_callback' => wp_create_nonce('execute')));
} else {
echo json_encode(array('output' => __('Error occured', 'wpcf')));
}
break;
case 'activate_group':
//.........这里部分代码省略.........