Wordpress 如何计算用户的值并更新相关的自定义元字段
Wordpress how to calculate a value for a user and update related custom meta field
我已经使用 Elementor Pro
在 Wordpress 上创建了一个前端表单,并且在提交时成功更新了登录用户的用户元数据。
我现在想使用表单中提交的值计算一个单独的自定义元字段。
换句话说:当用户为自定义字段 straight_speed
提交值时,我想使用刚刚输入的值自动计算 straight_speed_percent
,并将其保存给用户。
目前,straight_speed_percent
的计算结果只需 straight_speed
乘以 100。
(straight_speed_percent
的自定义字段已经创建)。
最初需要为 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' );
您的代码中存在一些语法和逻辑错误!
- 当您使用
get_user_meta
时,您需要使用 $current_user->ID
和 meta key
。 Read the docs for more details!
- 当您将
$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);
}
这个答案已经过测试并且可以正常工作!让我知道它是否也适合你!
我已经使用 Elementor Pro
在 Wordpress 上创建了一个前端表单,并且在提交时成功更新了登录用户的用户元数据。
我现在想使用表单中提交的值计算一个单独的自定义元字段。
换句话说:当用户为自定义字段 straight_speed
提交值时,我想使用刚刚输入的值自动计算 straight_speed_percent
,并将其保存给用户。
目前,straight_speed_percent
的计算结果只需 straight_speed
乘以 100。
(straight_speed_percent
的自定义字段已经创建)。
最初需要为 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' );
您的代码中存在一些语法和逻辑错误!
- 当您使用
get_user_meta
时,您需要使用$current_user->ID
和meta key
。 Read the docs for more details! - 当您将
$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);
}
这个答案已经过测试并且可以正常工作!让我知道它是否也适合你!