You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress使用Elementor表单创建用户时ACF字段无法获取值问题

解决方案

你无法获取$company_name的核心原因是Elementor Pro表单的$record->get_formatted_data()返回的数组默认不存在acf子级结构,你可以按以下步骤排查修正:

  1. 先调试确认$form_data的实际结构
    在$form_data = $record->get_formatted_data();后加入以下代码,把表单提交的数据写入WordPress调试日志,确认公司名字段的实际键名:
// 需先在wp-config.php中开启WP_DEBUG_LOG模式
error_log( print_r( $form_data, true ) );

你可以在站点wp-content/debug.log文件中查看完整的$form_data结构,找到公司名字段对应的正确键。

  1. 推荐用更稳定的字段取值方式
    不要依赖格式化后的数据,直接通过Elementor提供的get_field方法按表单字段ID取值,先在Elementor表单编辑器中给公司名字段设置自定义ID(比如设为company_name),之后用以下代码取值:
$company_field = $record->get_field( [ 'id' => 'company_name' ] );
$company_name = $company_field['value'] ?? '';

这种方式不会因为你后续修改字段Label就失效,兼容性更好。

  1. 修正后的完整参考代码
add_action( 'elementor_pro/forms/new_record',  'thewpchannel_elementor_form_create_new_user' , 10, 2 );
function thewpchannel_elementor_form_create_new_user($record,$ajax_handler)
{
    $form_name = $record->get_form_settings('form_name');
    // 校验表单名称
    if ('Create New User' !== $form_name) {
        return;
    }
    $form_data = $record->get_formatted_data();
    
    $username=$form_data['Username']; 
    $password = $form_data['Password'];
    $email=$form_data['Email'];
    $user = wp_create_user($username,$password,$email);
    $user_role = new WP_User($user);
    $user_role->set_role('unimproved_user');
    
    if (is_wp_error($user)){
        $ajax_handler->add_error_message("创建用户失败: ".$user->get_error_message());
        $ajax_handler->is_success = false;
        return;
    }
    $last_name=$form_data["Last Name"];
    // 按字段ID取公司名,这里替换成你自己设置的表单字段ID
    $company_field = $record->get_field( [ 'id' => 'company_name' ] );
    $company_name = $company_field['value'] ?? '';
    // 更新ACF字段
    update_field( 'field_6182b31388dbe', $company_name, 'user_'.$user );
    // 更新用户信息
    wp_update_user(array("ID"=>$user,"first_name"=>$company_name,"last_name"=>$last_name));
}

内容的提问来源于stack exchange,提问作者Sam Roberts

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 09:36:04