Wordpress как вычислить значение для пользователя и обновить соответствующее настраиваемое метаполе
Я создал интерфейсную форму на Wordpress, используя
Elementor Pro
, и он успешно обновляет метаданные пользователя вошедшего в систему при отправке.
Теперь я хотел бы вычислить отдельное настраиваемое мета-поле, используя значения, которые были отправлены в форме.
Другими словами: когда пользователь отправляет значение для настраиваемого поля, я хотел бы автоматически вычислить, используя только что введенное значение, и сохранить его для пользователя.
На данный момент вычисление для можно просто умножить на 100.
(Пользовательское поле для уже создано).
Первоначально необходимо добавить значение для
straight_speed_percent
, но если форма будет отправлена повторно и
straight_speed
изменяется, я хочу обновить значение.
Я пробовал следующий код, но, похоже, он не работает. Любая помощь будет принята с благодарностью!
$current_user = wp_get_current_user();
$current_user->ID;
$straight_speed = get_user_meta ('straight_speed', $current_user);
$straight_acceleration_percent_value = $straight_speed * '100';
update_user_meta( $current_user, 'straight_acceleration_percent', '$straight_acceleration_percent_value' );
1 ответ
В вашем коде есть синтаксические и логические ошибки!
- Когда вы используете
get_user_meta
вам нужно будет использовать$current_user->ID
иmeta key
. Подробнее читайте в документации ! - Когда вы сохраняете
$straight_speed
переменную в базу данных, она будет сохранена как текстовая строка, поэтому, когда вы получите ее обратно из базы данных, преобразуйте ее в целое число, а затем произведите умножение! - Также у вас есть дополнительные цитаты вокруг вашего
$straight_acceleration_percent_value
переменная, когда вы пытаетесь обновить неверное значение!
Используйте следующий фрагмент:
$current_user = wp_get_current_user();
$straight_speed = get_user_meta($current_user->ID, 'straight_speed', true);
if ($straight_speed) {
$straight_acceleration_percent_value = (int)$straight_speed * 100;
update_user_meta($current_user->ID, 'straight_speed_percent', $straight_acceleration_percent_value);
}
Этот ответ был проверен и отлично работает! Дайте мне знать, если это сработает и для вас!