File "setup-steps-tracking.php"
Full Path: /home/timepamn/dailynetworth.org/wp-content/plugins/wordpress-seo/src/dashboard/application/tracking/setup-steps-tracking.php
File size: 2.73 KB
MIME-type: text/x-php
Charset: utf-8
<?php
// phpcs:disable Yoast.NamingConventions.NamespaceName.TooLong -- Needed in the folder structure.
namespace Yoast\WP\SEO\Dashboard\Application\Tracking;
use Yoast\WP\SEO\Dashboard\Infrastructure\Tracking\Setup_Steps_Tracking_Repository_Interface;
/**
* Tracks the setup steps.
*/
class Setup_Steps_Tracking {
/**
* The setup steps tracking repository.
*
* @var Setup_Steps_Tracking_Repository_Interface
*/
private $setup_steps_tracking_repository;
/**
* Constructs the class.
*
* @param Setup_Steps_Tracking_Repository_Interface $setup_steps_tracking_repository The setup steps tracking repository.
*/
public function __construct( Setup_Steps_Tracking_Repository_Interface $setup_steps_tracking_repository ) {
$this->setup_steps_tracking_repository = $setup_steps_tracking_repository;
}
/**
* If the Site Kit setup widget has been loaded.
*
* @return string "yes" on "no".
*/
public function get_setup_widget_loaded(): string {
return $this->setup_steps_tracking_repository->get_setup_steps_tracking_element( 'setup_widget_loaded' );
}
/**
* Gets the stage of the first interaction.
*
* @return string The stage name.
*/
public function get_first_interaction_stage(): string {
return $this->setup_steps_tracking_repository->get_setup_steps_tracking_element( 'first_interaction_stage' );
}
/**
* Gets the stage of the last interaction.
*
* @return string The stage name.
*/
public function get_last_interaction_stage(): string {
return $this->setup_steps_tracking_repository->get_setup_steps_tracking_element( 'last_interaction_stage' );
}
/**
* If the setup widget has been temporarily dismissed.
*
* @return string "yes" on "no".
*/
public function get_setup_widget_temporarily_dismissed(): string {
return $this->setup_steps_tracking_repository->get_setup_steps_tracking_element( 'setup_widget_temporarily_dismissed' );
}
/**
* If the setup widget has been permanently dismissed.
*
* @return string "yes" on "no".
*/
public function get_setup_widget_permanently_dismissed(): string {
return $this->setup_steps_tracking_repository->get_setup_steps_tracking_element( 'setup_widget_permanently_dismissed' );
}
/**
* Return this object represented by a key value array.
*
* @return array<string> The tracking data
*/
public function to_array(): array {
return [
'setupWidgetLoaded' => $this->get_setup_widget_loaded(),
'firstInteractionStage' => $this->get_first_interaction_stage(),
'lastInteractionStage' => $this->get_last_interaction_stage(),
'setupWidgetTemporarilyDismissed' => $this->get_setup_widget_temporarily_dismissed(),
'setupWidgetPermanentlyDismissed' => $this->get_setup_widget_permanently_dismissed(),
];
}
}