Astra_API_Init::save_learn_progress( WP_REST_Request $request )

Save learn progress.


Description


Parameters

$request

(WP_REST_Request) (Required) Full details about the request.


Return

(WP_REST_Response|WP_Error) Response object on success, or WP_Error object on failure.


Source

File: admin/includes/class-astra-api-init.php

	public function save_learn_progress( $request ) {
		$chapter_id = $request->get_param( 'chapterId' );
		$step_id    = $request->get_param( 'stepId' );
		$completed  = $request->get_param( 'completed' );

		// Get current progress.
		$user_id        = get_current_user_id();
		$saved_progress = get_user_meta( $user_id, 'astra_learn_progress', true );
		if ( ! is_array( $saved_progress ) ) {
			$saved_progress = array();
		}

		// Initialize chapter array if it doesn't exist.
		if ( ! isset( $saved_progress[ $chapter_id ] ) || ! is_array( $saved_progress[ $chapter_id ] ) ) {
			$saved_progress[ $chapter_id ] = array();
		}

		// Update progress for this step in nested format.
		$saved_progress[ $chapter_id ][ $step_id ] = (bool) $completed;

		// Save to user meta.
		update_user_meta( $user_id, 'astra_learn_progress', $saved_progress );

		return new WP_REST_Response(
			array(
				'success' => true,
				'message' => __( 'Progress saved successfully.', 'astra' ),
			),
			200
		);
	}

Changelog

Changelog
Version Description
4.8.7 Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.