Здравствуйте, возник небольшой вопрос: У меня есть таблица, куда пользователь вбивает свои данные. Выполнена она на html. Не подскажете, как сделать так, чтобы заполненные поля сохранялись для пользователя и в базе данных worpress?
Вообщето у WordPress для каждого пользователя есть личная страница... и документация понятная. Разумеется в базе есть место и для данных пользователя.
Примеры для Айрис:
Подключаем необходимые стили и скрипты
add_action('admin_enqueue_scripts','load_admin_styles_scripts');
if(!function_exists('load_admin_styles_scripts')){
function load_admin_styles_scripts(){
wp_enqueue_style('wp-color-picker');
wp_enqueue_script('wp-color-picker');
}}
Подключаем необходимые поля форм к «Айрис» (один из вариантов)
if(!function_exists('admin_footer_script')){
function admin_footer_script(){?>
<script type="text/javascript">
jQuery(document).ready(function($){
$('.wpColorChoose').wpColorPicker();});
</script><?php }}
add_action('admin_footer','admin_footer_script',99);
Добавляем «Айрис» на страницу пользователей
if(!function_exists('VAB_user_fields')){
function VAB_user_fields($user){
global $pagenow;
if($pagenow=='profile.php'||$pagenow=='user-edit.php'){
wp_nonce_field('VAB_mode_ufields_nonce','VAB_ufields_nonce');
$id=$user->ID;
$color=get_the_author_meta('myColor',$id);//получаем мета данные с ключом myColor для текущего пользователя
echo'<input name="myColor" id="color" type="text" class="wpColorChoose" value="'.$color.'">';
}}}
add_action('show_user_profile','VAB_user_fields');
add_action('edit_user_profile','VAB_user_fields');
Обрабатываем данные
if(!function_exists('save_VAB_user_fields')){
function save_VAB_user_fields($user_id){
$nonce=filter_input(INPUT_POST,'VAB_ufields_nonce',FILTER_SANITIZE_STRING);
if(!$nonce){return;}//проверяем наши nonce поля
if(!wp_verify_nonce($nonce,'VAB_mode_ufields_nonce')){return;}//проверяем наши nonce поля
$myColor=get_the_author_meta('myColor',$user_id);//получаем мета данные с ключом myColor для текущего пользователя
$newColor=$_POST['myColor'];//проверяем передачу пост данных... можно доп. обработать фильтрами в зависимости от типа данных
if(empty($newColor)){//если данные пустые удалим мета
delete_user_meta($user_id,'myColor');
}else{//иначе сохраним в мета
update_user_meta($user_id,'myColor',$newColor);}}}
add_action('personal_options_update','save_VAB_user_fields');
add_action('edit_user_profile_update','save_VAB_user_fields');
Добавим для примера checkbox
if(!function_exists('VAB_user_fields2')){
function VAB_user_fields2($user){
global $pagenow;
if($pagenow=='profile.php'||$pagenow=='user-edit.php'){
wp_nonce_field('VAB_mode_ufields_nonce','VAB_ufields_nonce');
$id=$user->ID;
$uMeta=get_the_author_meta('uMeta',$id);//получаем мета данные с ключом myColor для текущего пользователя
$myCheckbox=isset($uMeta['myCheckbox'])?'checked="checked"':'';
$myColor=isset($uMeta['myColor'])?$uMeta['myColor']:'';
echo'<input name="uMeta[myCheckbox]" id="myCheckbox" type="checkbox" '.$myCheckbox.'>';
echo'<br><br>';
echo'<input name="uMeta[myColor]" id="myColor" type="text" class="wpColorChoose" value="'.$myColor.'">';
}}}
add_action('show_user_profile','VAB_user_fields2');
add_action('edit_user_profile','VAB_user_fields2');
Обрабатываем данные
if(!function_exists('save_VAB_user_fields2')){
function save_VAB_user_fields2($user_id){
$nonce=filter_input(INPUT_POST,'VAB_ufields_nonce',FILTER_SANITIZE_STRING);
if(!$nonce){return;}//проверяем наши nonce поля
if(!wp_verify_nonce($nonce,'VAB_mode_ufields_nonce')){return;}//проверяем наши nonce поля
$uMeta=get_the_author_meta('uMeta',$user_id);//получаем мета данные с ключом myColor для текущего пользователя
$newuMeta=$_POST['uMeta'];//проверяем передачу пост данных... можно доп. обработать фильтрами в зависимости от типа данных
if(empty($newuMeta['myCheckbox'])&&empty($newuMeta['myColor'])){//если данные пустые удалим мета
delete_user_meta($user_id,'uMeta');
}else{//иначе сохраним в мета
update_user_meta($user_id,'uMeta',$newuMeta);}}}
add_action('personal_options_update','save_VAB_user_fields2');
add_action('edit_user_profile_update','save_VAB_user_fields2');
Аналогично получаете и выводите в нужном месте ( get_the_author_meta )... аватарки, не аватарки, управление публичностью данных... можно наворотить что угодно ... все что в голову взбредет...