要将自定义字段的值保存到WordPress的user_meta中,可以使用以下步骤:
add_user_meta( $user_id, 'custom_field_name', 'custom_field_value' );
这将在用户的元数据中创建一个名为'custom_field_name'的自定义字段,并将其值设置为'custom_field_value'。
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为要保存的自定义字段的值。
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中。
请注意,上述代码仅为示例,实际应用中可能需要根据具体需求进行适当的修改和安全性处理。
领取专属 10元无门槛券
手把手带您无忧上云