access->is_pro() ) { return new WidgetState( true, 'education' ); } if ( $this->has_logged_emails() ) { return new WidgetState( true, 'data' ); } return new WidgetState( true, 'connect' ); } /** * Why the connect variant is showing, which decides its CTA. * * @since 4.10.0 * * @return string Either 'primary_connection' or 'test_email'. */ public function get_connect_reason() { return $this->is_mailer_configured() ? 'test_email' : 'primary_connection'; } /** * Whether any email has ever been logged. This tier has no log to query, and * get_state() returns from its education branch before reaching here. * * @since 4.10.0 * * @return bool */ protected function has_logged_emails() { return false; } /** * Render the widget body. * * @since 4.10.0 * * @param string $variant Template variant. * @param array $data Aggregated data. * * @return string */ protected function render_body( string $variant, array $data ): string { return (string) wp_mail_smtp_render( 'dashboard/widgets/email-log', [ 'variant' => $variant, 'connect_reason' => $this->get_connect_reason(), 'education_url' => wp_mail_smtp()->get_upgrade_link( [ 'medium' => 'dashboard', 'content' => 'email-log-widget', ] ), 'connect_url' => add_query_arg( 'tab', 'connections', wp_mail_smtp()->get_admin()->get_admin_page_url() ), 'test_email_url' => add_query_arg( 'tab', 'test', wp_mail_smtp()->get_admin()->get_admin_page_url( Area::SLUG . '-tools' ) ), 'rows' => [], ], true ); } }