inc/class-Iac_Profile_Settings.php
public function save_custom_profile_fields( $user_id ) {

		if ( 'POST' !== $_SERVER[ 'REQUEST_METHOD' ] || ! isset( $_POST[ 'iac_nonce' ] ) ) {
			return;
		}
		if ( ! wp_verify_nonce( $_POST[ 'iac_nonce' ], 'iac_user_settings' ) ) {
			return;
		}

		do_action(
			'iac_save_user_settings',
			$user_id,
			isset( $_POST[ 'post_subscription' ] )
				? $_POST[ 'post_subscription' ]
				: NULL
			,
			isset( $_POST[ 'comment_subscription' ] )
				? $_POST[ 'comment_subscription' ]
				: NULL
		);

	}
public function save_custom_profile_fields( $user_id ) {

		if ( 'POST' !== $_SERVER[ 'REQUEST_METHOD' ] || ! isset( $_POST[ 'iac_nonce' ] ) ) {
			return;
		}
		if ( ! wp_verify_nonce( $_POST[ 'iac_nonce' ], 'iac_user_settings' ) ) {
			return;
		}

		do_action(
			'iac_save_user_settings',
			$user_id,
			isset( $_POST[ 'post_subscription' ] )
				? $_POST[ 'post_subscription' ]
				: NULL
			,
			isset( $_POST[ 'comment_subscription' ] )
				? $_POST[ 'comment_subscription' ]
				: NULL
		);

	}
Save meta data from custom profile fields

@wp-hook personal_options_update
@wp-hook edit_user_profile_update

@since  0.0.2
@uses   current_user_can, update_user_meta

@param  string $user_id

@return void