-
Notifications
You must be signed in to change notification settings - Fork 41
Add priority-based notice bar with milestone and extrapolation messaging #1150
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
Add complete HappyForms integration following the established three-component pattern: **Core JavaScript Integration:** - Event listener for 'happyforms.submitted' custom event - Form instance ID tracking for multi-form support - Popup ID injection on popup open **Core PHP Integration:** - Hook: `happyforms_submission_success` action - Detection: HappyForms_Core class check - Form retrieval via 'happyform' CPT - Defensive hook callbacks (no strict types) **Changes:** - assets/js/src/integration/happyforms.js (new) - classes/Integration/Form/HappyForms.php (new) - classes/Integrations.php (registration) - assets/js/src/integration/index.js (import) **Pattern Compliance:** ✅ Defensive hook callbacks ✅ Form instance ID tracking ✅ Proper phpcs:ignore comments ✅ WordPress coding standards
…messaging Implements comprehensive upsell enhancement system with 4 priority groups: **Priority System:** - Milestone Achievements (pri: 100) - Celebration messages for success - Conversion Extrapolation (pri: 80) - Data-driven "you could have X more" - Integration Detected (pri: 60) - Contextual plugin-based messages - Generic Upgrade (pri: 40) - Fallback messages **New Milestone Triggers:** - First form conversion celebration (🎉 with 300-500% increase stat) - High engagement tiers (1K, 5K, 10K+ popup views with analytics pitch) **New Extrapolation Messages:** - Ecommerce: "You've tracked X conversions, capture ~Y more with Exit Intent" - LMS: "You've tracked X enrollments, capture ~Y more with LMS targeting" - Uses 33% extrapolation for ecommerce, 40% for LMS **Integration:** - Connects to FormConversionTracking service for milestone data - Uses existing popup view count for engagement milestones - Maintains backward compatibility with existing integration detection **Technical Changes:** - Added get_notice_bar_triggers() with Review Request pattern - Added get_current_notice_bar_trigger() for priority selection - Added get_form_conversion_count() helper with graceful fallback - Added rsort_by_priority() for consistent sorting - Deprecated get_integration_messages(), get_pro_integration_message(), get_free_upgrade_message() - All messages use generate_upgrade_url() for UTM tracking **Impact:** - Success-triggered messaging (not frustration-based) - Data-driven value propositions with concrete numbers - Foundation for future A/B testing and message optimization
**Messaging Accuracy:** - Changed "conversions" → "form submissions" (free plugin doesn't track specific conversion types) - Changed "enrollments" → "form submissions" for LMS (specific tracking is Pro feature) - Updated translator comments to reflect accurate terminology **Milestone Cooldown:** - Added 90-day cooldown for milestone achievement messages (seasonal re-engagement) - Tracks last shown milestone via user meta: _pum_last_milestone_trigger, _pum_last_milestone_at - Prevents showing same milestone repeatedly within cooldown period - Allows different milestones to show (e.g., first form → high engagement) - Non-milestone messages (integration detected, generic upgrade) unaffected **Impact:** - More accurate messaging that doesn't over-promise on free plugin tracking - Quarterly milestone re-engagement prevents message fatigue - Natural progression: celebration → extrapolation → generic
|
Warning Rate limit exceeded@danieliser has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 13 minutes and 22 seconds before requesting another review. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. 📒 Files selected for processing (6)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
Implements comprehensive upsell enhancement system with intelligent priority-based trigger selection inspired by the Review Request module pattern.
Priority System
4 Priority Groups (highest to lowest):
New Milestone Triggers
New Extrapolation Messages
Milestone Cooldown System
_pum_last_milestone_trigger,_pum_last_milestone_atTechnical Implementation
get_notice_bar_triggers()- Priority-based trigger definition systemget_current_notice_bar_trigger()- Intelligent trigger selection with cooldown logicget_form_conversion_count()- Helper with graceful fallbackrsort_by_priority()- Consistent priority sortinggenerate_upgrade_url()for UTM trackingImpact
Testing Scenarios
Files Changed
classes/Upsell.php- Complete refactor of message generation system (2 commits)Commits
b283d213- feat: add priority-based notice bar with milestone and extrapolation messaging68c51ed5- fix: improve messaging accuracy and add milestone cooldown system🤖 Ready for CodeRabbit review