Skip to content

starter-sites-onboarding-notice#465

Open
harshitarora-in wants to merge 1 commit into
developmentfrom
feature/starter-sites-onboarding-notice
Open

starter-sites-onboarding-notice#465
harshitarora-in wants to merge 1 commit into
developmentfrom
feature/starter-sites-onboarding-notice

Conversation

@harshitarora-in
Copy link
Copy Markdown
Contributor

@harshitarora-in harshitarora-in commented May 13, 2026

Summary

  • Added a new dismissible onboarding promo notice in the Site List step.
  • Notice dismissal is persisted via AJAX (dismiss_onboarding_promo_notice) and stored in plugin options.
  • Added tier-aware promo text variant:
    • Free + Personal users: existing/default notice text.
    • Business + Agency users: updated text with request a site mailto CTA.
  • Added styling for the new promo notice and highlighted CTA link (bold + white).
  • Fixed onboarding exit redirect to use admin URL localization fallback instead of hardcoded /wp-admin.

Will affect visual aspect of the product

YES

Screenshots

Free/personal plan users

Screenshot 2026-05-14 at 2 02 11 AM

Business/agency Users

Screenshot 2026-05-14 at 2 01 10 AM

Test instructions

  • Open onboarding
  • Verify notice appears for users who have not dismissed it.
  • Free user: verify default notice text (no Pro CTA text).
  • Personal (tier 1): verify default notice text (no Pro CTA text).
  • Business/Agency (tier 2/3): verify Pro variant with request a site mailto link.
  • Click dismiss and reload onboarding: verify notice does not reappear.
  • Click header “Exit to dashboard”: verify redirect goes to a valid admin URL.

Check before Pull Request is ready:

Closes #.

@harshitarora-in harshitarora-in requested review from Copilot and ineagu May 13, 2026 20:34
@pirate-bot pirate-bot added the pr-checklist-incomplete The Pull Request checklist is incomplete. (automatic label) label May 13, 2026
@pirate-bot
Copy link
Copy Markdown
Collaborator

Plugin build for 9804031 is ready 🛎️!

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a dismissible onboarding promo notice to the Site List step, with localized backend data for visibility, dismissal, license-tier-specific copy, and dashboard redirect URL handling.

Changes:

  • Added the promo notice React component and inserted it into the Site List flow.
  • Added SCSS styling and imported it into onboarding styles.
  • Added AJAX dismissal handling, localization data, tier-aware promo selection, and admin URL fallback data.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
onboarding/src/style.scss Imports the new promo notice stylesheet.
onboarding/src/scss/_onboarding-promo-notice.scss Adds layout and responsive styles for the onboarding promo notice.
onboarding/src/Components/Steps/SiteList.js Renders the new promo notice between filters and sites.
onboarding/src/Components/OnboardingPromoNotice.js Implements promo display, tier-specific message, mailto CTA, and dismissal action.
onboarding/src/Components/Header.js Updates exit redirect to use localized admin URL fallback.
includes/Admin.php Adds dismissal option/action, promo localization data, tier decision logic, and admin URL localization.
Comments suppressed due to low confidence (1)

onboarding/src/Components/OnboardingPromoNotice.js:23

  • The mailto subject is user-facing text but is not wrapped in the WordPress i18n helpers used for the visible notice strings. This leaves the generated email subject untranslated for localized users.
	const requestSiteLink =
		'mailto:contact@themeisle.com?subject=' +
		encodeURIComponent( 'Starter Site Request' ) +
		'&body=' +
		encodeURIComponent( emailBody );

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread includes/Admin.php
Comment on lines +224 to +225
if ( in_array( $neve_plan, array( 1, 2, 3 ), true ) ) {
return in_array( $neve_plan, array( 2, 3 ), true );
Comment thread includes/Admin.php
}

unset( $response['code'] );
unset( $response['message'] );
Comment thread includes/Admin.php
'onboardingDone' => array(
'ajaxURL' => esc_url( admin_url( 'admin-ajax.php' ) ),
'nonce' => wp_create_nonce( 'onboarding_done_nonce' ),
'adminUrl' => admin_url(),
Comment on lines +11 to +21
'Hi Neve team,\n\n' +
"I'm looking for a starter site for the following project:\n\n" +
'Project type: (e.g. Restaurant, Law Firm, SaaS)\n\n' +
'Key pages needed: (e.g. Home, About, Services, Contact)\n\n' +
'Style preference: (e.g. Minimal, Bold, Corporate)\n\n' +
'Any references: (optional)\n\n' +
'Thanks';

const requestSiteLink =
'mailto:contact@themeisle.com?subject=' +
encodeURIComponent( 'Starter Site Request' ) +
Comment on lines +53 to +59
const dismissNotice = () => {
setIsVisible( false );
ajaxAction(
tiobDash.onboardingPromoNotice.ajaxURL,
'dismiss_onboarding_promo_notice',
tiobDash.onboardingPromoNotice.nonce
).catch( () => null );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr-checklist-incomplete The Pull Request checklist is incomplete. (automatic label)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants