Intereting Posts
Почему javascript работает только при входе в систему? Статическая страница на главной странице имеет URL-адрес страницы, а не URL-адрес сайта RSS-каналы, не работающие в Chrome / ok в IE и Firefox Пароль защищает пользовательскую страницу Как перечислить страницы пользовательской таксономии? WordPress 3.1 удаляет «категорию» из пули Серьезно застрял с некоторыми обычными мета-коробками / плагинами Если тип материала .GIF Предупреждение: urlencode () ожидает, что параметр 1 будет строкой, заданный массив Переводы разрешены, но существуют некоторые проблемы Плагин стабильный тег на wordpress.org не обновляется Как отключить изменения страницы WordPress? Показать выбранные темы для пользователя в admin для wordpress multisite Как вы обнаруживаете, что конкретное слово находится в конце файла the_title () Как вставить новую пару мета-ключ / значение, но только если присутствует другой мета-ключ?

Обновление мета-массива пользователей с помощью foreach

У меня есть два массива, состоящие из ключей и значений:

Массив, состоящий из мета ключей:

$user_meta_fields = array ( 'first_name', 'last_name', 'job_title', 'college', 'street_address','address_line2','city','state','country', 'zip', 'phone', 'email' ); 

Массивные значения:

 $post_data['fname'] = $_POST['fname']; $post_data['lname'] = $_POST['lname']; $post_data['job_title'] = $_POST['job_title']; $post_data['college'] = $_POST['college']; $post_data['street_address'] = $_POST['street_address']; $post_data['address_line2'] = $_POST['address_line2']; $post_data['city'] = $_POST['city']; $post_data['state'] = $_POST['state']; $post_data['country'] = $_POST['country']; $post_data['zip'] = $_POST['zip']; $post_data['phone'] = $_POST['phone']; $post_data['email'] = $_POST['email']; 

Вот моя петля:

 foreach($user_meta_fields as $user_meta_field){ update_user_meta($current_user->ID, $user_meta_field, $post_data); } 

Но это не работает для меня. Зачем?

Удостоверьтесь, что у вас одинаковые ключи в обоих массивах. Ключи «first_name», «last_name» и соответствующие «fname», «lname» ключей разные. Если вы можете сделать их идентичными, тогда сначала сделайте это, иначе вам придется либо выполнить строковые манипуляции для этих ключей перед их использованием, либо поставить условие, как показано ниже в цикле foreach –

 foreach($user_meta_fields as $user_meta_field){ if ($user_meta_field == 'first_name'){ update_user_meta($current_user->ID, $user_meta_field, $post_data['fname']); } else if ($user_meta_field == 'last_name'){ update_user_meta($current_user->ID, $user_meta_field, $post_data['lname']); } else{ update_user_meta($current_user->ID, $user_meta_field, $post_data[$user_meta_field]); } } 

В противном случае, если все ключи сделаны одинаковыми, то общее решение –

 foreach($user_meta_fields as $user_meta_field){ update_user_meta($current_user->ID, $user_meta_field, $post_data[$user_meta_field]); }