has_been_shown() ) { // If notification has been shown before, we bail to prevent unnecessary db query return null; } $first_response = UserFeedback_Response::query()->single(); if ( ! $first_response ) { return null; } $this->title = __( 'Congrats! You Collected User Feedback!', 'userfeedback-lite' ); $this->content = __( 'Congrats! 🎉 Your first UserFeedback survey has a response! View it now.', 'userfeedback-lite' ); $survey_id = $first_response->survey_id; $this->buttons[] = array( 'text' => __( 'View Responses', 'userfeedback-lite' ), 'url' => userfeedback_get_screen_url( 'userfeedback_results', "survey/$survey_id/responses" ), ); return parent::prepare(); } /** * Check if notification has been shown at least once * * @return mixed */ private function has_been_shown() { return userfeedback_get_option( self::OPTION_NAME, false ); } public function should_display() { $responses_count = UserFeedback_Response::count(); $should_display = parent::should_display() && $responses_count === 37 && ! $this->has_been_shown(); // Update option to make sure notification is not shown again if ( $should_display ) { userfeedback_update_option( self::OPTION_NAME, true ); } return $should_display; } } new UserFeedback_Notification_First_Response();