public function extended_save_custom_fields($params)
{
if ($this->extended_save_has_permission()) {
event_trigger('mw.database.extended_save_custom_fields', $params);
$data_to_save = $params;
if (isset($data_to_save['custom_fields'])) {
$custom_fields = $data_to_save['custom_fields'];
if (is_array($custom_fields) and !empty($custom_fields)) {
foreach ($custom_fields as $k => $v) {
$save_cat_item = array();
$save_cat_item['rel_type'] = $data_to_save['table'];
$save_cat_item['rel_id'] = $data_to_save['id'];
if (isset($v['name']) and !isset($v['type'])) {
if ($v['name'] == 'price') {
$v['type'] = 'price';
}
}
if (isset($v['type'])) {
$save_cat_item['type'] = $v['type'];
if (isset($v['name'])) {
$save_cat_item['name'] = $v['name'];
}
$check = $save_cat_item;
$check['single'] = true;
$check = $this->app->fields_manager->get_all($check);
if (isset($check['id'])) {
$save_cat_item['id'] = $check['id'];
}
$save_cat_item = array_merge($save_cat_item, $v);
$save_field = $this->app->fields_manager->save($save_cat_item);
}
}
}
}
}
}