验证用户元并重定向

时间:2013-10-15 作者:10wtaylor

我想添加一些额外的字段来获取额外的用户信息,我已经很容易地添加了这些信息。enter image description here

我添加了单个表单字段的示例代码:

add_action( \'show_user_profile\', \'extra_user_profile_fields\' );
add_action( \'edit_user_profile\', \'extra_user_profile_fields\' );

function extra_user_profile_fields( $user ) { ?>
<table class="form-table">
<tr>
<th><label for="address"><?php _e("Address"); ?><span class="description"> (required)</span></label></th>
<td>
<input type="text" name="address" id="address" value="<?php echo esc_attr( get_the_author_meta( \'address\', $user->ID ) ); ?>" class="regular-text" required/><br />
<span class="description"><?php _e("Please enter your address."); ?></span>
</td>
</tr>

add_action( \'personal_options_update\', \'save_extra_user_profile_fields\' );
add_action( \'edit_user_profile_update\', \'save_extra_user_profile_fields\' );

function save_extra_user_profile_fields( $user_id ) {
update_user_meta( $user_id, \'address\', $_POST[\'address\'] ); }
我想验证用户输入的数据,比如是否为空或地址格式无效。我有所有的验证模式要匹配的格式。我已经实现了jquery验证,但希望确保用户是否禁用了javascript,也可以通过服务器端进行验证。在添加/更新用户meta之前,我应该在什么时候添加验证函数,所以如果缺少任何内容,则应该将用户重定向回配置文件页面,否则会返回到另一个页面?

谢谢

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

我会这样做:

function save_extra_user_profile_fields( $user_id ) {

  if (!isset($_POST[\'address\']) || empty($_POST[\'address\'])) {
      // this field was not set or was empty
      // do your action
      wp_redirect( home_url() );  // or profile page
      exit;
  } else {
      // field was set and contains a value
      // do your action
      update_user_meta( $user_id, \'address\', $_POST[\'address\'] ); 
      wp_redirect( home_url() );  // or whatever success page
      exit;
  }
}

结束

相关推荐

按自定义字段对GET_USERS排序

我有一个名为“label”的自定义用户分类法,其中还有一个自定义字段“sort\\u order”-我试图返回具有标签分类法的用户列表,然后按sort\\u order字段对该列表进行排序。到目前为止,我。。。。。<?php $users = get_users( array( \'meta_key\' => \'sort_order\', \'fields\' => \'all_with_meta\' ) ); &