我有保存到数据库和从数据库读取的用户数据,因为它们都是标准的WordPress字段。
example: $user->user_email
And here\'s the code I have inside the form-edit-account.php:
<p class="form-row form-row-wide">
<label for="account_uid"><?php _e( \'UID-Nummer\', \'woocommerce\' ); ?></label>
<input type="text" class="input-text" name="uidnumber" id="uidnumber" value="<?php echo esc_attr( $user->user_uidnumber ); ?>" />
</p>
Here\'s where I\'m at right now:
<如果通过PHPMyAdmin输入值,则字段不会写入数据库中。从数据库读取值
Essentially: Saving the value doesn\'t work/is missing.Help is greatly appreciated!
<人力资源>
One thing if I might add:
我在网站的另一个部分添加了一个字段,这是我在网上找到的教程。
我知道把它放在下面是不对的
contact_methods
, 但这就是我发现的:
function modify_contact_methods($profile_fields) {
$profile_fields[\'uidnumber\'] = \'UID-Nummer\'; return $profile_fields;}
add_filter(\'user_contactmethods\', \'modify_contact_methods\');
add_action( \'personal_options_update\', \'my_save_extra_profile_fields\' );
add_action( \'edit_user_profile_update\', \'my_save_extra_profile_fields\' );
function save_modified_contact_methods( $profile_fields ) {
/* Copy and paste this line for additional fields. Make sure to change \'twitter\' to the field ID. */
update_usermeta( $profile_fields, \'uidnumber\', $_POST[\'uidnumber\'] );
}
尽管看起来
add_action
s、 代码可以工作并保存数据,但我不知道该去哪里。我在
wp_usermeta
桌子
I also do not know how to link those two fields together as I can\'t find the second one\'s database entry.
为了更具体一些,我将
functions.php
以及
form-edit-account.php
. 希望有人能找出问题所在。
最合适的回答,由SO网友:WordPress Mike 整理而成
用户元信息(如配置文件页面上的信息)存储在usermeta
数据库中的表。可以通过挂接到show_user_profile
和edit_user_profile
动作挂钩。然后,您可以通过挂接到personal_options_update
和edit_user_profile_update
操作挂钩具有更新用户元表中新字段的函数,update_user_meta()
.
首先创建要在配置文件页面上呈现的字段
//display extra profile fields
add_action( \'show_user_profile\', \'extra_profile_fields\' );
add_action( \'edit_user_profile\', \'extra_profile_fields\' );
function extra_profile_fields( $user )
{
?>
<h3>Extra Profile Fields</h3>
<table class="form-table">
<tr>
<th><label for="UID-Nummer"><?php _e( \'UID-Nummer\', \'woocommerce\' ); ?></label></th>
<td><input type="text" name="uid-nummer" value="<?php echo esc_attr( get_the_author_meta( \'uid-nummer\', $user->ID ) ); ?>" class="regular-text" /></td>
</tr>
</table>
<?php
}
请注意
name
属性保存字段时最好使用相同的名称。您可以看到,我们正在将该字段拉入已经使用的值中
get_the_author_meta( \'uid-nummer\', $user->ID )
.
保存字段
//save extra profile fields
add_action( \'personal_options_update\', \'save_extra_profile_fields\' );
add_action( \'edit_user_profile_update\', \'save_extra_profile_fields\' );
function save_extra_profile_fields( $user_id )
{
update_user_meta( $user_id,\'uid-nummer\', sanitize_text_field( $_POST[\'uid-nummer\'] ) );
}
使用字段显示字段ui-nummer
您可以使用:
//return the author meta
get_the_author_meta( \'ui-nummer\', $user->ID );
或
//echo the author meta
the_author_meta( \'ui-nummer\', $user->ID );