key_metrics_settings = new Key_Metrics_Settings( $user_options ?: new User_Options( $context ) ); $this->key_metrics_setup_completed_by = new Key_Metrics_Setup_Completed_By( $options ?: new Options( $context ) ); $this->key_metrics_setup_new = new Key_Metrics_Setup_New( new Transients( $context ) ); $this->rest_controller = new REST_Key_Metrics_Controller( $this->key_metrics_settings, $this->key_metrics_setup_completed_by ); } /** * Registers functionality through WordPress hooks. * * @since 1.93.0 */ public function register() { $this->key_metrics_settings->register(); $this->key_metrics_setup_completed_by->register(); $this->key_metrics_setup_new->register(); $this->rest_controller->register(); $this->register_feature_metrics(); add_filter( 'googlesitekit_inline_base_data', $this->get_method_proxy( 'inline_js_base_data' ) ); } /** * Adds the status of the Key Metrics widget setup to the inline JS data. * * @since 1.108.0 * @since 1.113.0 Add keyMetricsSetupCompletedBy (id) instead of keyMetricsSetupCompleted boolean. * * @param array $data Inline JS data. * @return array Filtered $data. */ private function inline_js_base_data( $data ) { $data['keyMetricsSetupCompletedBy'] = (int) $this->key_metrics_setup_completed_by->get(); return $data; } /** * Gets an array of internal feature metrics. * * @since 1.163.0 * * @return array */ public function get_feature_metrics() { return array( 'km_setup' => (bool) $this->key_metrics_setup_completed_by->get(), ); } }