Users frequently ask us how to create daily and weekly newsletters in WordPress. On our own signup forms, we offer both options, allowing subscribers to choose their preferred frequency. In this detailed guide, drawn from our hands-on experience managing high-traffic WordPress sites, we'll walk you through the process.

Marketing experts universally agree: email marketing is essential for blogs and websites. It's cost-effective and delivers strong returns. See our in-depth guide on why you should build your email list today.
That said, not everyone wants daily emails. Many prefer a single weekly summary.
Offering a weekly digest prevents subscriber loss from overwhelming inboxes. It empowers users to control their email frequency, boosting sign-ups and retention.
Here's what we'll build:

Note: You'll need an email marketing service account. We're using MailChimp here, but the principles apply to services like AWeber or ConvertKit.
Log into your MailChimp account and navigate to Lists. Click on your list, then Groups » View Groups.

If you have no groups yet, you'll see an intro screen. Watch the video if needed, then click Create Groups.

This opens the group creation form.

Enable group options on signup forms (checkboxes work best for multi-select like ours). Name your group (e.g., Newsletter Frequency), add 'Daily' and 'Weekly' as options. Save when done—this matches our setup on WPB Daily.
Return to your list's Forms page.

Preview your signup form here. Customize headers or images as desired—ours looks like this.

Confirm checkboxes appear. At the top, switch to the "For Your Website" tab and select Signup Form Embed Code.

Choose 'Naked' for flexible styling.

Hide headers and labels via options, then generate the code.

Paste this into your theme (e.g., sidebar.php for sidebar placement). Strip styling divs, keeping core form fields. Result:
<label><input type="checkbox" name="group[XXXX][1]" value="1" /> Daily</label> <label><input type="checkbox" name="group[XXXX][2]" value="2" /> Weekly</label>
Position the submit after the email field, remove labels, and skip error divs (use success messages instead). Add placeholder text via JavaScript:
<input type="text" name="EMAIL" class="emailupdatesinput" value="Enter your email..." onblur="if (this.value=='') {this.value='Enter your email...';}" onfocus="if (this.value=='Enter your email...') {this.value='';}" />This shows 'Enter your email...' as a placeholder, clearing on focus.
Add wrapper divs and classes:
<div class="suscribirse"> <input type="text" name="EMAIL" class="emailupdatesinput" ... /> <input type="submit" value="Subscribe" class="subscribesubmitbutton secondcheckbox" /> <div class="subscribecheckboxes"> <label><input type="checkbox" ... /> Daily</label> <label class="secondcheckbox"><input type="checkbox" ... /> Weekly</label> </div> </div>
Add this CSS to style.css (adjust fonts to match your theme):
.suscribirse { width: 296px; height: 38px; border: 1px solid #bbbbbb; margin: 0 0 60px 0; }
.subscribecheckboxes { margin: 20px 0 0 0; font-family: 'ProximaNovaRegular', sans-serif; font-size: 14px; color: #626262; }
.secondcheckbox { margin: 0 0 0 28px; }
.emailupdatesinput { width: 162px; height: 38px; border: none; font-family: Georgia, serif; font-size: 14px; font-style: italic; color: #949494; padding: 0 10px 0 10px; float: left; }
.subscribesubmitbutton { background: #ff370f; height: 40px; border: none; width: 115px; margin: -1px -60px 0 0; float: left; font-family: 'ProximaNovaRegular', sans-serif; font-size: 12px; color: #ffffff; text-transform: uppercase; padding: 0 1px 0 0; cursor: pointer; }Upload the CSS—your form now matches our live version.

Finally, create RSS-driven campaigns per group in MailChimp. Go to Campaigns » RSS Campaign.

Enter your RSS feed, schedule frequency, select the group segment, and launch.
This approach has helped us segment lists effectively, improving deliverability and engagement. We hope it empowers your WordPress email strategy.