我已经构建了一个自定义插件,我需要能够将自定义元数据添加到用户个人资料屏幕。
我有meta显示,但他们似乎没有更新。这是此元的第一个实例,因此它已不存在于DB中。
这些文件位于我的插件目录中,而不是我的主题中。
<?php
add_action( 'show_user_profile', 'add_extra_social_links' );
add_action( 'edit_user_profile', 'add_extra_social_links' );
function add_extra_social_links( $user )
{
?>
<h3>Web App Information</h3>
<table class="form-table">
<tr>
<th><label for="companyname">Company Name</label></th>
<td>
<?php
$args = array(
'post_type' => array('operators','clients'),
'posts_per_page' => -1,
'orderby' => 'title',
);
$myposts = get_posts( $args );
echo '<select id="companyname"name="companyname">';
echo '<option value="' . esc_attr(get_the_author_meta( 'companyname', $user->ID )) . '">';
foreach ( $myposts as $post ) : setup_postdata( $post ); ?>
<option value="<?php echo $post->post_title; ?>">
<?php echo $post->post_title; ?>
</option>
<?php endforeach;
echo '</select>';
wp_reset_postdata();?>
</td>
</tr>
<tr>
<th><label for="companyadmin">Is this user a company admin.</label></th>
<td>
<?php
echo '<select id="companyadmin" name="companyadmin">';
echo '<option value="' . esc_attr(get_the_author_meta( 'companyadmin', $user->ID )) . '">';
echo '<option value="Y">Yes, is admin.</option>';
echo '<option value="N">No, is not admin.</option>';
echo '</select>';
?>
</td>
</tr>
</table>
<?php
}
add_action( 'personal_options_update', 'save_extra_social_links' );
add_action( 'edit_user_profile_update', 'save_extra_social_links' );
function save_extra_social_links( $user_id )
{
update_user_meta( $user_id,'companyname', $_POST['companyname'] );
update_user_meta( $user_id,'companyadmin', $_POST['companyadmin'] );
}
&GT;
答案 0 :(得分:0)
尝试在$ user_id
中使用函数get_current_user_id我认为您使用参数但不发送挂钩