WP编辑用户自定义字段更新

时间:2017-05-06 19:07:12

标签: php wordpress woocommerce edit

所以我已经如此接近了,但这里有一个错误。 我正在做的是我已经为WP wooCommerce安装添加了3个自定义字段。我已经通过钩子和woo模板添加到注册和我的帐户页面。我可以从他们的个人资料区/前端成功更新为用户。 我坚持的是让编辑用户管理表单更新这些字段。我可以显示要显示的字段,但它们只是没有更新。

寻找想法和帮助。我错过了什么?提前谢谢。

这是我的子主题函数中的代码.php - ADMIN EDIT USER

function sbb_custom_user_profile_fields($user) {
?>
<legend><h4>Reseller Info</h4></legend>
<table class="form-table">
<tr>
<th>
    <label for="ssb_reseller_tax_id"><?php _e('Resseller Tax ID'); ?></label>
</th>
<td>
    <input type="text" name="sbb_reseller_tax_id" id="sbb_reseller_tax_id" 
value="<?php echo esc_attr( get_the_author_meta( 'reseller_tax_id', $user->ID 
) ); ?>" class="regular-text" />
</td>
</tr>
<tr>
<th>
    <label for="sbb_title"><?php _e('Title'); ?></label>
</th>
<td>
<input type="text" name="sbb_title" id="sbb_title" value="<?php echo esc_attr( get_the_author_meta( 'title', $user->ID ) ); ?>" class="regular-text" />
</td>
</tr>
<tr>
<th>
    <label for="sbb_fax"><?php _e('Fax'); ?></label>
</th>
<td>
    <input type="text" name="sbb_fax" id="sbb_fax" value="<?php echo esc_attr( get_the_author_meta( 'fax', $user->ID ) ); ?>" class="regular-text" />
</td>
</tr>
</table>
<?php
update_user_meta( get_the_author_meta( $user->ID ), 'reseller_tax_id', htmlentities( $_POST[ 'reseller_tax_id' ] ) );
update_user_meta( get_the_author_meta( $user->ID ), 'fax', htmlentities( $_POST[ 'fax' ] ) );
update_user_meta( get_the_author_meta( $user->ID ), 'title', htmlentities( $_POST[ 'title' ] ) );
}

add_action('show_user_profile', 'sbb_custom_user_profile_fields');
add_action('edit_user_profile', 'sbb_custom_user_profile_fields');
add_action('edit_user_profile_update', 'sbb_custom_user_profile_fields' );

1 个答案:

答案 0 :(得分:0)

我在您发布的代码中看到的直接问题是您为输入名称添加了前缀。您可以使用元reseller_tax_id保存值,但输入名称为sbb_reseller_tax_id。它是您需要在$_POST中使用的输入名称。

$_POST[ 'reseller_tax_id' ] )将成为$_POST['sbb_reseller_tax_id'] )

我建议在尝试保存之前检查表单是否已提交并且您有输入值。只是查看页面不应该具有执行更新的效果。