我在“我的帐户”中创建了一个新的“会员详细信息”选项卡,并用表单字段填充该选项卡以收集会员详细信息,例如爱好、生日等。然后这些详细信息会显示在“我的帐户”仪表板上。
如何保存在新会员详细信息选项卡上提交的数据?
许多站点都有如何在新选项卡上显示信息的示例,但我找不到任何显示如何提交和保存表单数据的示例。
function add_custom_fields() {
$user = wp_get_current_user();
?>
<form id="edit_member_details" method="post">
<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
<label for="member_hobbies"><?php _e( 'Member Hobbies', 'woocommerce' ); ?>
<input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="member_hobbies" id="member_hobbies" value="<?php echo esc_attr( $user->member_hobbies ); ?>" />
</p>
<p>
<button type="submit" class="button" name="save_member_details" value="<?php esc_attr_e( 'Save member details', 'woocommerce' ); ?>"><?php esc_html_e( 'Save member details', 'woocommerce' ); ?></button>
<input type="hidden" name="woocommerce_edit_member_details" value="save_member_details" />
</p>
</form>
<?php
}
add_action( 'woocommerce_save_account_details', 'save_member_details', 12, 1 );
function save_member_details( $user_id ) {
if( isset( $_POST['member_hobbies'] ) )
update_user_meta( $user_id, 'member_hobbies', sanitize_text_field( $_POST['member_hobbies'] ) );
}