public function save_taxonomy($term_id) { if (wp_verify_nonce(cs_get_var('cs-taxonomy-nonce'), 'cs-taxonomy')) { $errors = array(); $taxonomy = cs_get_var('taxonomy'); foreach ($this->options as $request_value) { if ($taxonomy == $request_value['taxonomy']) { $request_key = $request_value['id']; $request = cs_get_var($request_key, array()); // ignore _nonce if (isset($request['_nonce'])) { unset($request['_nonce']); } if (isset($request_value['fields'])) { foreach ($request_value['fields'] as $field) { if (isset($field['type']) && isset($field['id'])) { $field_value = cs_get_vars($request_key, $field['id']); // sanitize options if (isset($field['sanitize']) && $field['sanitize'] !== false) { $sanitize_type = $field['sanitize']; } else { if (!isset($field['sanitize'])) { $sanitize_type = $field['type']; } } if (has_filter('cs_sanitize_' . $sanitize_type)) { $request[$field['id']] = apply_filters('cs_sanitize_' . $sanitize_type, $field_value, $field, $request_value['fields']); } // validate options if (isset($field['validate']) && has_filter('cs_validate_' . $field['validate'])) { $validate = apply_filters('cs_validate_' . $field['validate'], $field_value, $field, $request_value['fields']); if (!empty($validate)) { $meta_value = get_term_meta($term_id, $request_key, true); $errors[$field['id']] = array('code' => $field['id'], 'message' => $validate, 'type' => 'error'); $default_value = isset($field['default']) ? $field['default'] : ''; $request[$field['id']] = isset($meta_value[$field['id']]) ? $meta_value[$field['id']] : $default_value; } } } } } $request = apply_filters('cs_save_taxonomy', $request, $request_key, $term_id); if (empty($request)) { delete_term_meta($term_id, $request_key); } else { if (get_term_meta($term_id, $request_key, true)) { update_term_meta($term_id, $request_key, $request); } else { add_term_meta($term_id, $request_key, $request); } } } } set_transient('cs-taxonomy-transient', $errors, 10); } }
public function save_post($post_id, $post) { if (wp_verify_nonce(cs_get_var('cs-framework-metabox-nonce'), 'cs-framework-metabox')) { $errors = array(); $post_type = cs_get_var('post_type'); foreach ($this->options as $request_value) { if (in_array($post_type, (array) $request_value['post_type'])) { $request_key = $request_value['id']; $request = cs_get_var($request_key, array()); // ignore _nonce if (isset($request['_nonce'])) { unset($request['_nonce']); } foreach ($request_value['sections'] as $key => $section) { if (isset($section['fields'])) { foreach ($section['fields'] as $field) { if (isset($field['type']) && isset($field['id'])) { $field_value = cs_get_vars($request_key, $field['id']); // sanitize options if (isset($field['sanitize']) && $field['sanitize'] !== false) { $sanitize_type = $field['sanitize']; } else { if (!isset($field['sanitize'])) { $sanitize_type = $field['type']; } } if (has_filter('cs_sanitize_' . $sanitize_type)) { $request[$field['id']] = apply_filters('cs_sanitize_' . $sanitize_type, $field_value, $field, $section['fields']); } // validate options if (isset($field['validate']) && has_filter('cs_validate_' . $field['validate'])) { $validate = apply_filters('cs_validate_' . $field['validate'], $field_value, $field, $section['fields']); if (!empty($validate)) { $meta_value = get_post_meta($post_id, $request_key, true); $errors[$field['id']] = array('code' => $field['id'], 'message' => $validate, 'type' => 'error'); $default_value = isset($field['default']) ? $field['default'] : ''; $request[$field['id']] = isset($meta_value[$field['id']]) ? $meta_value[$field['id']] : $default_value; } } } } } } $request = apply_filters('cs_save_post', $request, $request_key, $post); if (empty($request)) { delete_post_meta($post_id, $request_key); } else { if (get_post_meta($post_id, $request_key)) { update_post_meta($post_id, $request_key, $request); } else { add_post_meta($post_id, $request_key, $request); } } $transient['ids'][$request_key] = cs_get_vars('cs_section_id', $request_key); $transient['errors'] = $errors; } } set_transient('cs-metabox-transient', $transient, 10); } }