1

我在 Wordpress 上使用 创建了一个前端表单Elementor Pro,它在提交时成功更新了登录用户的用户元数据。

我现在想计算一个单独的自定义元字段,使用表单中提交的值。

换句话说:当用户提交自定义字段的值时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' );
4

1 回答 1

1

您的代码中有一些语法和逻辑错误!

  • 当您使用时,get_user_meta您需要使用$current_user->IDmeta 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);

} 

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

于 2021-10-25T14:47:11.910 回答