| @@ -442,8 +442,46 @@ | ||
| 442 | 442 | |
| 443 | 443 | wp_reset_postdata(); |
| 444 | 444 | } |
| 445 | 445 | |
| 446 | + // Onboarding wizard step | |
| 447 | + $onboarding_state = get_option( 'propertyhive_onboarding', false ); | |
| 448 | + | |
| 449 | + if ( is_array( $onboarding_state ) && ! empty( $onboarding_state ) ) | |
| 450 | + { | |
| 451 | + $onboarding_status = isset( $onboarding_state['status'] ) | |
| 452 | + ? sanitize_key( $onboarding_state['status'] ) | |
| 453 | + : 'not_started'; | |
| 454 | + | |
| 455 | + $onboarding_step = isset( $onboarding_state['last_step'] ) | |
| 456 | + ? sanitize_key( $onboarding_state['last_step'] ) | |
| 457 | + : ''; | |
| 458 | + | |
| 459 | + // When skipped, last_step is the exact step on which Skip was clicked. | |
| 460 | + // Otherwise, use the most recently viewed step so abandonment is captured. | |
| 461 | + if ( | |
| 462 | + $onboarding_status !== 'skipped' && | |
| 463 | + ! empty( $onboarding_state['events'] ) && | |
| 464 | + is_array( $onboarding_state['events'] ) | |
| 465 | + ) | |
| 466 | + { | |
| 467 | + foreach ( array_reverse( $onboarding_state['events'] ) as $event ) | |
| 468 | + { | |
| 469 | + if ( | |
| 470 | + isset( $event['event'], $event['data']['step'] ) && | |
| 471 | + $event['event'] === 'step_viewed' | |
| 472 | + ) | |
| 473 | + { | |
| 474 | + $onboarding_step = sanitize_key( $event['data']['step'] ); | |
| 475 | + break; | |
| 476 | + } | |
| 477 | + } | |
| 478 | + } | |
| 479 | + | |
| 480 | + $data['onboarding_status'] = $onboarding_status; | |
| 481 | + $data['onboarding_step'] = $onboarding_step; | |
| 482 | + } | |
| 483 | + | |
| 446 | 484 | $data = apply_filters( 'propertyhive_license_check_data', $data ); |
| 447 | 485 | } |
| 448 | 486 | |
| 449 | 487 | return $data; |