如何在用户配置文件中设置FIRST_NAME和LAST_NAME必填字段?

时间:2016-08-15 作者:jsherk

我有一个插件,想添加功能,使first\\u name和last\\u name成为必填字段。

当用户转到其配置文件页面时,他们必须添加first\\u name和last\\u name。

还有一些自定义WooCommerce字段,我也希望将其设置为必填字段。

是否有预保存配置文件挂钩/过滤器?

谢谢

1 个回复
最合适的回答,由SO网友:bynicolas 整理而成

你可以检查一下$_POST 更新用户配置文件页面时的变量。

我会user_profile_update_errors 按照这些思路做些事情。如果发现错误,此筛选器将不会保存到DB。

add_filter(\'user_profile_update_errors\', \'wpse_236014_check_fields\', 10, 3);
function wpse_236014_check_fields($errors, $update, $user) {

  // Use the $_POST variable to check required fields

  if( empty($_POST[\'first_name\']) )
    // add an error message to the WP_Errors object 
    $errors->add( \'first_name_required\',__(\'First name is required, please add one before saving.\') );

  if( empty($_POST[\'last_name\']) )
    // add an error message to the WP_Errors object 
    $errors->add( \'last_name_required\',__(\'Last name is required, please add one before saving.\') );

  // Add as many checks as you have required fields here

  if( empty( $errors->errors ) ){

    // Save your custom fields here if no errors are found
    // Just skip this if you don\'t need to do extra work.
    // Fields will save if no errors are found

  }


}

EXTRA

保存添加到概要文件页面的自定义字段时,还可以使用2个挂钩。如果你想要更多的规格,我会让你参考codex,因为我很确定你的特定用例不需要这些规格,因为我相信WooCommerce自定义字段应该出现在$_POST 变量。