<h2>Overview</h2>
The BuddyPress Birthday Widget displays upcoming birthdays of your community members in a beautiful, responsive format. Perfect for keeping your community engaged and celebrating special moments together!
<h2>Features</h2>
<ul>
<li><strong>Smart Birthday Display</strong>: Show birthdays for all members, friends, or followers</li>
<li><strong>Flexible Time Ranges</strong>: Weekly, monthly, or unlimited view</li>
<li><strong>Today’s Birthday Highlighting</strong>: Special styling for today’s celebrations</li>
<li><strong>Age Display</strong>: Optional “Turning X” age format</li>
<li><strong>Direct Messaging</strong>: Send birthday wishes via private messages</li>
<li><strong>Mobile Responsive</strong>: Works perfectly on all devices</li>
<li><strong>Theme Compatible</strong>: Inherits your theme’s colors and fonts</li>
</ul>
<h2>Installation</h2>
<h3>Via WordPress Admin</h3>
<ol>
<li>Go to <strong>Plugins > Add New</strong></li>
<li>Search for “BuddyPress Birthday Widget”</li>
<li>Click <strong>Install Now</strong> and then <strong>Activate</strong></li>
</ol>
<h3>Manual Installation</h3>
<ol>
<li>Upload the plugin files to <code>/wp-content/plugins/buddypress-birthdays/</code></li>
<li>Activate the plugin through the <strong>Plugins</strong> menu in WordPress</li>
</ol>
<h2>Setup Requirements</h2>
<h3>1. BuddyPress Profile Fields</h3>
Before using the widget, you need a birthday field in BuddyPress:
<ol>
<li>Go to <strong>Users > Profile Fields</strong></li>
<li>Click <strong>Add New Field</strong></li>
<li>Choose field type: <strong>Date Selector</strong> or <strong>Birth Date</strong></li>
<li>Set field name (e.g., “Birthday”, “Date of Birth”)</li>
<li>Make the field <strong>Required</strong> (recommended)</li>
<li>Set appropriate visibility level</li>
</ol>
<h3>2. Widget Configuration</h3>
<ol>
<li>Go to <strong>Appearance > Widgets</strong></li>
<li>Find <strong>”(BuddyPress) Birthdays”</strong> widget</li>
<li>Drag it to your desired sidebar</li>
<li>Configure the settings (see below)</li>
</ol>
<h2>Widget Settings</h2>
<h3>Basic Settings</h3>
<strong>Title</strong>
<ul>
<li>Default: “Upcoming Birthdays”</li>
<li>Customize to match your community style</li>
</ul>
<strong>Number of birthdays to show</strong>
<ul>
<li>Default: 5</li>
<li>Range: 1-20 (recommended)</li>
</ul>
<h3>Display Options</h3>
<strong>Show the age of the person</strong>
<ul>
<li>✅ Enabled: Shows “Turning 25″</li>
<li>❌ Disabled: Age hidden for privacy</li>
</ul>
<strong>Birthday range limit</strong>
<ul>
<li><strong>No Limit</strong>: Shows birthdays for next 365 days</li>
<li><strong>Next 7 Days</strong>: Shows only this week’s birthdays</li>
<li><strong>Next 30 Days</strong>: Shows only this month’s birthdays</li>
</ul>
<strong>Show Birthdays of</strong>
<ul>
<li><strong>All Members</strong>: Everyone on the site</li>
<li><strong>Friends</strong>: Only BuddyPress friends (if Friends component active)</li>
<li><strong>Followings</strong>: Only followed users (if Follow plugin active)</li>
</ul>
<h3>Advanced Settings</h3>
<strong>Display Name Type</strong>
<ul>
<li><strong>User name</strong>: Shows username (john_doe)</li>
<li><strong>Nick name</strong>: Shows nickname from profile</li>
<li><strong>First Name</strong>: Shows first name only</li>
</ul>
<strong>Date Format</strong>
<ul>
<li><strong>F d</strong>: January 15</li>
<li><strong>M j</strong>: Jan 15</li>
<li><strong>j F</strong>: 15 January</li>
<li><strong>j M</strong>: 15 Jan</li>
<li>Custom: Use PHP date format codes</li>
</ul>
<strong>Field’s name</strong>
<ul>
<li>Select the birthday field created in Profile Fields</li>
<li>Only shows Date/Birth Date field types</li>
</ul>
<strong>Enable option to wish them</strong>
<ul>
<li>✅ Enabled: Shows email icon to send wishes</li>
<li>❌ Disabled: Display only (no messaging)</li>
</ul>
<strong>Select Emoji</strong>
<ul>
<li><strong>None</strong>: No emoji decoration</li>
<li><strong>🎂 Cake</strong>: Birthday cake emoji</li>
<li><strong>🎈 Balloon</strong>: Balloon emoji</li>
<li><strong>🎉 Party</strong>: Party emoji</li>
</ul>
<h2>Using the Widget</h2>
<h3>What Users See</h3>
<strong>Today’s Birthdays</strong>
<pre><code>🎂 Upcoming Birthdays
├── John Smith – Today! 🎉
└── Jane Doe – Today! 🎉</code></pre>
<strong>Upcoming Birthdays</strong>
<pre><code>🎂 Upcoming Birthdays
├── Alice Brown (Turning 25) – Jan 15 🎈
├── Bob Johnson (Turning 30) – Jan 20 🎈
└── Carol Wilson (Turning 28) – Feb 5 🎈</code></pre>
<h3>Sending Birthday Wishes</h3>
<ol>
<li>Click the <strong>📧 email icon</strong> next to any birthday</li>
<li>Redirects to BuddyPress compose message</li>
<li>Recipient is automatically filled</li>
<li>Type your birthday message</li>
<li>Send!</li>
</ol>
<h2>Shortcode Usage</h2>
Display birthdays anywhere with the shortcode:
<pre><code>[bp_birthdays]</code></pre>
<h3>Shortcode Attributes</h3>
<pre><code>[bp_birthdays
title=”Team Birthdays”
limit=”3″
show_age=”no”
date_format=”M j”
range_limit=”weekly”
show_birthdays_of=”friends”
emoji=”cake”
]</code></pre>
<strong>Available Attributes:</strong>
<ul>
<li><code>title</code>: Widget title</li>
<li><code>limit</code>: Number to display (1-20)</li>
<li><code>show_age</code>: yes/no</li>
<li><code>show_message_button</code>: yes/no</li>
<li><code>date_format</code>: PHP date format</li>
<li><code>range_limit</code>: weekly/monthly/no_limit</li>
<li><code>show_birthdays_of</code>: all/friends/followers</li>
<li><code>display_name_type</code>: user_name/nick_name/first_name</li>
<li><code>emoji</code>: none/cake/balloon/party</li>
<li><code>field_name</code>: Birthday field ID</li>
</ul>
<h2>Troubleshooting</h2>
<h3>No Birthdays Showing</h3>
<strong>Check Profile Fields</strong>
<ul>
<li>Ensure birthday field exists in <strong>Users > Profile Fields</strong></li>
<li>Field type must be “Date Selector” or “Birth Date”</li>
<li>Field must have data from users</li>
</ul>
<strong>Check Widget Settings</strong>
<ul>
<li>Verify correct field selected in widget</li>
<li>Check birthday range limit (try “No Limit”)</li>
<li>Ensure visibility settings allow display</li>
</ul>
<strong>Check User Data</strong>
<ul>
<li>Users must fill their birthday field</li>
<li>Birthday field visibility must not be “Only Me”</li>
<li>Check if you’re filtering by friends/followers</li>
</ul>
<h3>Wrong Dates Showing</h3>
<strong>Timezone Issues</strong>
<ul>
<li>Check <strong>Settings > General > Timezone</strong></li>
<li>Ensure WordPress timezone matches your location</li>
<li>Clear widget cache (save widget settings)</li>
</ul>
<strong>Date Format Issues</strong>
<ul>
<li>Try different date format in widget settings</li>
<li>Use standard formats like “F d” or “M j”</li>
</ul>
<h3>Performance Issues</h3>
<strong>Large Communities</strong>
<ul>
<li>Use “Friends” or “Followers” filter instead of “All Members”</li>
<li>Reduce number of birthdays displayed</li>
<li>Consider weekly/monthly range limits</li>
</ul>
<h2>Privacy & Visibility</h2>
<h3>User Privacy Control</h3>
Users can control birthday visibility via:
<ol>
<li><strong>Profile > Edit > Privacy Settings</strong></li>
<li>Set birthday field visibility:
<ul>
<li><strong>Public</strong>: Everyone can see</li>
<li><strong>Logged In Users</strong>: Members only</li>
<li><strong>Friends</strong>: Friends only</li>
<li><strong>Only Me</strong>: Hidden from widget</li>
</ul>
</li>
</ol>
<h3>Admin Considerations</h3>
<ul>
<li>Respect user privacy choices</li>
<li>Consider community guidelines</li>
<li>Test with different user roles</li>
<li>Monitor performance on large sites</li>
</ul>
<h2>Best Practices</h2>
<h3>Community Engagement</h3>
<ul>
<li>Enable birthday wishes messaging</li>
<li>Use friendly, welcoming title</li>
<li>Consider monthly range for active communities</li>
<li>Enable age display for closer communities</li>
</ul>
<h3>Performance Optimization</h3>
<ul>
<li>Use friends/followers filter for large sites</li>
<li>Set reasonable display limits (5-10)</li>
<li>Enable caching plugins</li>
<li>Monitor server resources</li>
</ul>
<h3>Design Integration</h3>
<ul>
<li>Widget inherits theme styling automatically</li>
<li>Customize title to match your brand</li>
<li>Choose emoji that fits community tone</li>
<li>Test on mobile devices</li>
</ul>
<h2>Support</h2>
<h3>Common Solutions</h3>
<ol>
<li><strong>Clear Cache</strong>: Save widget settings to refresh</li>
<li><strong>Check Requirements</strong>: BuddyPress must be active</li>
<li><strong>Verify Data</strong>: Users need birthday data</li>
<li><strong>Test Settings</strong>: Try “All Members” + “No Limit”</li>
</ol>
<h3>Getting Help</h3>
<ul>
<li>Check plugin documentation</li>
<li>Review BuddyPress compatibility</li>
<li>Test with default theme</li>
<li>Contact plugin support</li>
</ul>
<hr />
<strong>Celebrate together, stay together!</strong> 🎂
