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->IDmeta keyRead 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);

} 

这个答案已经过测试并且可以正常工作!让我知道它是否也适合你!