你可以检查一下$_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
变量。