I have created a new Member Details tab in My Account and populated the tab with form fields to gather member details like hobbies, birthday, etc. These details are then displayed on the My Account Dashboard.
How can I save the data that is submitted on the new Member Details tab?
Many sites have examples how to display info on new tabs but I couldn't find any that show how to submit and save form data.
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'] ) );
}