首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用javascript修改后,如何将自定义字段的值保存到wordpress的user_meta中?

要将自定义字段的值保存到WordPress的user_meta中,可以使用以下步骤:

  1. 首先,确保你已经在WordPress中创建了自定义字段。可以使用add_user_meta函数来创建自定义字段,例如:
代码语言:php
复制
add_user_meta( $user_id, 'custom_field_name', 'custom_field_value' );

这将在用户的元数据中创建一个名为'custom_field_name'的自定义字段,并将其值设置为'custom_field_value'。

  1. 在JavaScript中,使用WordPress提供的REST API来与后端进行通信。可以使用fetch或axios等库来发送POST请求,将自定义字段的值传递给后端。
代码语言:javascript
复制
fetch('/wp-json/wp/v2/users/' + userId, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-WP-Nonce': wpApiSettings.nonce // 需要在WordPress的页面中将wpApiSettings对象传递给JavaScript
  },
  body: JSON.stringify({
    meta: {
      custom_field_name: customFieldValue
    }
  })
})
.then(response => response.json())
.then(data => {
  // 处理保存成功后的逻辑
})
.catch(error => {
  // 处理保存失败后的逻辑
});

在上面的代码中,将自定义字段的值作为JSON数据的一部分发送到WordPress的REST API中。确保替换'custom_field_name'为你自己的自定义字段名称,userId为要保存的用户的ID,customFieldValue为要保存的自定义字段的值。

  1. 在WordPress的后端,使用REST API的钩子函数来接收并处理来自JavaScript的请求。可以使用register_rest_route函数来创建自定义的REST API路由,例如:
代码语言:php
复制
add_action( 'rest_api_init', function () {
  register_rest_route( 'custom/v1', '/save_custom_field/(?P<id>\d+)', array(
    'methods' => 'POST',
    'callback' => 'save_custom_field',
    'permission_callback' => function () {
      return current_user_can( 'edit_users' ); // 只允许具有编辑用户权限的用户访问
    }
  ) );
} );

function save_custom_field( $request ) {
  $user_id = $request['id'];
  $custom_field_value = $request['meta']['custom_field_name'];

  update_user_meta( $user_id, 'custom_field_name', $custom_field_value );

  return array(
    'success' => true,
    'message' => 'Custom field saved successfully.'
  );
}

在上面的代码中,创建了一个自定义的REST API路由'/custom/v1/save_custom_field/{id}',并将其与save_custom_field函数关联。在save_custom_field函数中,获取用户ID和自定义字段的值,并使用update_user_meta函数将其保存到用户的元数据中。

这样,当JavaScript发送POST请求到'/wp-json/custom/v1/save_custom_field/{id}'时,自定义字段的值将被保存到WordPress的user_meta中。

请注意,上述代码仅为示例,实际应用中可能需要根据具体需求进行适当的修改和安全性处理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

领券