data = &$args;
add_action( $this->get_taxonomy().'_add_form_fields', array( $this, 'add_form_fields' ), 12 );
add_action( $this->get_taxonomy().'_edit_form_fields', array( $this, 'edit_form_fields' ), 12 );
add_action( 'edited_'.$this->get_taxonomy(), array( $this, 'save_update_taxonomy' ), 12 );
add_action( 'create_'.$this->get_taxonomy(), array( $this, 'save_update_taxonomy' ), 12 );
}
public function save_update_taxonomy($term_id){
foreach ($this->get_panels() as $optionIndex=>$option):
$option_value = isset($_POST[$option['id']]) ? $_POST[$option['id']] : '';
if(is_array($option_value)){
$option_value = serialize($option_value);
}
update_term_meta($term_id, $option['id'], $option_value);
endforeach;
}
public function edit_form_fields($term){
$term_id = $term->term_id;
?>
get_panels() as $optionIndex=>$option):
//var_dump($option);
?>
|
field_generator($option, $term_id)
?>
|
get_panels() as $optionIndex=>$option):
?>
|
field_generator($option, $term_id)
?>
|
field_text($option);
}
elseif( isset($option['type']) && $option['type'] === 'text_multi' ){
echo $FormFieldsGenerator->field_text_multi($option);
}
elseif( isset($option['type']) && $option['type'] === 'textarea' ){
echo $FormFieldsGenerator->field_textarea($option);
}
elseif( isset($option['type']) && $option['type'] === 'checkbox' ){
echo $FormFieldsGenerator->field_checkbox($option);
}
elseif( isset($option['type']) && $option['type'] === 'radio' ){
echo $FormFieldsGenerator->field_radio($option);
}
elseif( isset($option['type']) && $option['type'] === 'select' ){
echo $FormFieldsGenerator->field_select($option);
}
elseif( isset($option['type']) && $option['type'] === 'range' ){
echo $FormFieldsGenerator->field_range($option);
}
elseif( isset($option['type']) && $option['type'] === 'range_input' ){
echo $FormFieldsGenerator->field_range_input($option);
}
elseif( isset($option['type']) && $option['type'] === 'switch' ){
echo $FormFieldsGenerator->field_switch($option);
}
elseif( isset($option['type']) && $option['type'] === 'switch_multi' ){
echo $FormFieldsGenerator->field_switch_multi($option);
}
elseif( isset($option['type']) && $option['type'] === 'switch_img' ){
echo $FormFieldsGenerator->field_switch_img($option);
}
elseif( isset($option['type']) && $option['type'] === 'time_format' ){
echo $FormFieldsGenerator->field_time_format($option);
}
elseif( isset($option['type']) && $option['type'] === 'date_format' ){
echo $FormFieldsGenerator->field_date_format($option);
}
elseif( isset($option['type']) && $option['type'] === 'datepicker' ){
echo $FormFieldsGenerator->field_datepicker($option);
}
elseif( isset($option['type']) && $option['type'] === 'colorpicker' ){
echo $FormFieldsGenerator->field_colorpicker($option);
}
elseif( isset($option['type']) && $option['type'] === 'colorpicker_multi' ){
echo $FormFieldsGenerator->field_colorpicker_multi($option);
}
elseif( isset($option['type']) && $option['type'] === 'link_color' ){
echo $FormFieldsGenerator->field_link_color($option);
}
elseif( isset($option['type']) && $option['type'] === 'icon' ){
echo $FormFieldsGenerator->field_icon($option);
}
elseif( isset($option['type']) && $option['type'] === 'icon_multi' ){
echo $FormFieldsGenerator->field_icon_multi($option);
}
elseif( isset($option['type']) && $option['type'] === 'dimensions' ){
echo $FormFieldsGenerator->field_dimensions($option);
}
elseif( isset($option['type']) && $option['type'] === 'wp_editor' ){
echo $FormFieldsGenerator->field_wp_editor($option);
}
elseif( isset($option['type']) && $option['type'] === 'select2' ){
echo $FormFieldsGenerator->field_select2($option);
}
elseif( isset($option['type']) && $option['type'] === 'faq' ){
echo $FormFieldsGenerator->field_faq($option);
}
elseif( isset($option['type']) && $option['type'] === 'grid' ){
echo $FormFieldsGenerator->field_grid($option);
}
elseif( isset($option['type']) && $option['type'] === 'color_palette' ){
echo $FormFieldsGenerator->field_color_palette($option);
}
elseif( isset($option['type']) && $option['type'] === 'color_palette_multi' ){
echo $FormFieldsGenerator->field_color_palette_multi($option);
}
elseif( isset($option['type']) && $option['type'] === 'media' ){
echo $FormFieldsGenerator->field_media($option);
}
elseif( isset($option['type']) && $option['type'] === 'media_multi' ){
echo $FormFieldsGenerator->field_media_multi($option);
}
elseif( isset($option['type']) && $option['type'] === 'repeatable' ){
echo $FormFieldsGenerator->field_repeatable($option);
}
elseif( isset($option['type']) && $option['type'] === 'user' ){
echo $FormFieldsGenerator->field_user($option);
}
elseif( isset($option['type']) && $option['type'] === $type ){
do_action( "wp_theme_settings_field_$type", $option );
}
if( !empty( $details ) ) echo "$details
";
}
private function get_taxonomy(){
if( isset( $this->data['taxonomy'] ) ) return $this->data['taxonomy'];
else return "category";
}
private function get_panels(){
if( isset( $this->data['options'] ) ) return $this->data['options'];
else return array();
}
private function get_tax_id(){
//$post_id = get_the_ID();
//return $post_id;
}
}
}