Files

67 lines
2.1 KiB
PHP
Raw Permalink Normal View History

2014-12-15 22:38:07 +02:00
<?php
/***
*** @Process a new field
***/
add_action('wp_ajax_nopriv_ultimatemember_admin_update_field', 'ultimatemember_admin_update_field');
add_action('wp_ajax_ultimatemember_admin_update_field', 'ultimatemember_admin_update_field');
function ultimatemember_admin_update_field(){
global $ultimatemember;
if ( !is_user_logged_in() || !current_user_can('manage_options') ) die( __('Please login as administrator','ultimatemember') );
$output['error'] = null;
$array = array(
'field_type' => $_POST['_type'],
'form_id' => $_POST['post_id'],
'args' => $ultimatemember->builtin->get_core_field_attrs( $_POST['_type'] ),
'post' => $_POST
);
$array = apply_filters("um_admin_pre_save_fields_hook", $array );
$output['error'] = apply_filters( 'um_admin_field_update_error_handling', $output['error'], $array );
extract( $array['post'] );
if ( empty( $output['error'] ) ){
$save = '';
2015-01-18 22:29:52 +02:00
$save[ $_metakey ] = null;
2014-12-15 22:38:07 +02:00
foreach( $array['post'] as $key => $val){
2015-01-11 19:07:55 +02:00
if ( substr( $key, 0, 1) === '_' && $val != '' ) { // field attribute
2014-12-15 22:38:07 +02:00
$new_key = ltrim ($key,'_');
if ( $new_key == 'options' ) {
2015-11-05 19:51:31 +08:00
//$save[ $_metakey ][$new_key] = explode(PHP_EOL, $val);
$save[ $_metakey ][$new_key] = preg_split('/[\r\n]+/', $val, -1, PREG_SPLIT_NO_EMPTY);
2014-12-15 22:38:07 +02:00
} else {
2015-11-05 19:51:31 +08:00
$save[ $_metakey ][$new_key] = $val;
2014-12-15 22:38:07 +02:00
}
2015-01-09 03:08:31 +02:00
} else if ( strstr( $key, 'um_editor' ) ) {
2014-12-15 22:38:07 +02:00
$save[ $_metakey ]['content'] = $val;
}
}
$field_ID = $_metakey;
$field_args = $save[ $_metakey ];
$field_args = apply_filters("um_admin_pre_save_field_to_form", $field_args );
$ultimatemember->fields->update_field( $field_ID, $field_args, $post_id );
$field_args = apply_filters("um_admin_pre_save_field_to_db", $field_args );
if ( !isset( $array['args']['form_only'] ) ) {
if ( !isset( $ultimatemember->builtin->predefined_fields[ $field_ID ] ) ) {
$ultimatemember->fields->globally_update_field( $field_ID, $field_args );
}
}
}
$output=json_encode($output);
if(is_array($output)){ print_r($output); }else{ echo $output; } die;
}