如何解决在管理WP用户页面中查看/更新WooCommerce用户自定义字段
我使用以下问题给出的答案在我的functions.php中添加了一个自定义字段:Add a custom field in Woocommerce Edit Account page
我的代码是:
// Add the custom field "ukara"
add_action( 'woocommerce_edit_account_form_start','add_ukara_to_edit_account_form' );
add_action( 'show_user_profile','add_ukara_to_edit_account_form' );
function add_ukara_to_edit_account_form() {
$user = wp_get_current_user();
?>
<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
<label for="ukara"><?php _e( 'Ukara No.','woocommerce' ); ?></label>
<input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="ukara" id="ukara" value="<?php echo esc_attr( $user->ukara ); ?>" />
</p>
<?php
}
// Save the custom field 'ukara'
add_action( 'woocommerce_save_account_details','save_ukara_account_details',12,1 );
function save_ukara_account_details( $user_id ) {
// For Favorite color
if( isset( $_POST['ukara'] ) )
update_user_meta( $user_id,'ukara',sanitize_text_field( $_POST['ukara'] ) );
}
如何在管理员视图的“用户”部分中添加该字段,以便查看该字段的特定用户数据?
解决方法
您的代码中有一些错误。使用以下内容还可以将此用户自定义字段添加/更新到Wp用户页面:
// Add the custom field "ukara" to WooCommerce my account - edit account
add_action( 'woocommerce_edit_account_form_start','add_ukara_to_edit_account_form' );
function add_ukara_to_edit_account_form() {
$value = get_user_meta( get_current_user_id(),'ukara',true );
?>
<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
<label for="ukara"><?php _e( 'Ukara No.','woocommerce' ); ?></label>
<input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="ukara" id="ukara" value="<?php echo $value; ?>" />
</p>
<?php
}
// Add the custom field "ukara" to wp user
add_action( 'show_user_profile','add_ukara_to_wp_user_pages' );
add_action ( 'edit_user_profile','add_ukara_to_wp_user_pages' );
function add_ukara_to_wp_user_pages( $user ) {
$value = get_user_meta( $user->ID,true );
?>
<table class="form-table"><tr>
<th><label for="ukara"><?php _e( 'Ukara No.','woocommerce' ); ?></label></th>
<td><input type="text" name="ukara" value="<?php echo esc_attr($value); ?>" class="regular-text" id="ukara" /></td>
</tr></table><br />
<?php
}
// Save the custom field 'ukara'
add_action( 'woocommerce_save_account_details','save_ukara_user_custom_field' );
add_action ( 'personal_options_update','save_ukara_user_custom_field' );
add_action ( 'edit_user_profile_update','save_ukara_user_custom_field' );
function save_ukara_user_custom_field( $user_id ) {
if( isset( $_POST['ukara'] ) ) {
update_user_meta( $user_id,sanitize_text_field( $_POST['ukara'] ) );
}
}
代码进入活动子主题(或活动主题)的functions.php文件中。经过测试和工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。