RSVPMaker 2.7.4 – More reliable delivery of notification / confirmation emails

If you rely on email notifications when people RSVP and/or want people to get a confirmation and reminder messages, version 2.7.4 should be able to do that more reliably if you provide an email server and account to be used for notifications. You enter these on the Settings screen. After you save the parameters, click the link to send a test email to make sure it works.

You can create an email account for this purpose on your web server, or use a GMail account (limit: 500 recipients per day), or SendGrid account (specialist in high volume notification emails, free for up to 200 emails per day, reasonable prices for higher volumes), or use any other SMTP server you have access to.

All notifications will then come from that account, and having them come from an authenticated account should help you get past spam filters and precautions your web host takes to avoid hosting spammers. The replyto address will be set to the email address supplied by the attendee for notifications. Confirmation messages sent to attendees will have the email address you specified for notifications as the replyto address.

The parameters you need to enter are:

SMTP server type – select GMail, SendGrid, or Other from the drop-down list.

Email account for notifications – example notify@rsvpmaker.com

Email username – notify@rsvpmaker.com (on some servers, it could be “notify” or something different from the address)

Email password – Enter the password. Think through the security implications (maybe you don’t want to have the password for your primary email account stored here)

Server, Prefix (ssl or tls), Port # – Not necessary to enter these for a Gmail or SendGrid account.

I’d have done this sooner if I had realized that the PHPMailer utility was bundled with WordPress, a fact I just stumbled across while looking at the WP Mail SMTP plugin (which allows you to modify your site to use SMTP for routine WordPress notifications such as account signups). Previously, I suggested a customization based on the PHP Pear module, which works well but is not enabled on every web server.

Posted in Announcement, Release | 3 Comments

RSVPMaker 2.7 released, adds login option for events on membership-oriented sites

Version 2.7 addresses a scenario I’ve heard from some other people, and also encountered myself, where you’re running a membership-oriented site where the people who will be RSVP’ing for events have profiles associated with a WordPress login to the website. So maybe you want to restrict RSVPs to people who can log into the website and also prevent members from having to manually fill out basic info on the RSVP form.

There’s now a checkbox that allows you to specify that a login is required before entering an RSVP. You can also make logging in optional, and RSVPMaker still will retrieve profile details if it detects that the user is logged in.

Once the member logs in, first name, last name, and email can can automatically be filled in on the form so the person responding only has to supply any additional details that might be required.

It’s possible to read in other profile data by customizing the rsvpmaker_profile_lookup function. For example, if your member profiles include a phone number, you can retrieve that data and have it automatically filled in on the form.

Read the article on Advanced Customization for details on how to make code-level tweaks without having them overwritten when you upgrade.

If you want to add additional profile fields associated with your member accounts, here’s a good tutorial.

Posted in Release | Leave a comment

Customization: [rsvpmaker_excerpt]

This is an RSVPMaker customization you can add or modify if you wish to present headlines with an excerpt from your event description, which was one of the requests from the blog. If I ultimately add this to the plugin, I’ll change the shortcode and function names to avoid clashing with this version.

Posted in Announcement | 2 Comments

Setting Required Fields for the RSVPMaker Form

The latest release of RSVPMaker addresses a longstanding request for an easy way to specify that certain fields on the form should be required. See this demo event with required fields.

Using the shortcode-based template system for the forms, I added my custom field in this format:

[rsvpfield textfield="extrarequired" required="1"]

If you try to submit a form with a required field left empty, you’ll get a reminder that it’s required and the form will not be submitted. The client-side validation depends on JavaScript, but there’s also a server-side check for required fields.

Form validation error

Formatting of the error message is controlled by this addition to the plugin CSS (which you can override by specifying your own CSS in RSVPMaker Settings).

CSS formatting for validation error

Default CSS formatting

If someone wants to volunteer to make this prettier, let me know, but at least the basic function is there now.

BTW, one of the recent releases of RSVPMaker had some coding errors in the default version of the form. These are corrected now, but it’s possible you have the botched version saved on your system. If you look at the Documentation screen on the RSVPMaker menu, there’s a link at the bottom you can use to reset the form to the new, improved default. If you’ve fixed this yourself already, never mind, and I’m sorry for any trouble I caused.

Posted in Announcement, Release | Leave a comment

RSVPMaker Export to Excel Moved to Separate Plugin

Along with a few bug fixes, version 2.5.4 removes the PHPExcel library required for the export to Excel function, which will now be available in a separate plugin:

http://wordpress.org/extend/plugins/rsvpmaker-excel/

Bundling that code library in really bloated the download for the base RSVPMaker plugin. While this is a useful function, I decided it made more sense to let the people who take advantage of it download that separately.

The actual working of the export to Excel function is unchanged, once you have both RSVPMaker and RSVPMaker Excel enabled.

Posted in Announcement | Leave a comment

Customizing the Show Attendees Function

There is a checkbox in RSVPMaker that lets you specify that the names of the attendees and any note they entered in the note field should be displayed publicly. This works with a function in rsvpmaker.pluggable.php that you can override using the advanced customization method for modifying the plugin behavior with your own PHP code.

Here’s a sample custom function, created for someone who said he wanted to be able to show the content of a custom RSVP form field, which in this case includes the name of the roommate someone had chosen for a trip.

function ajax_guest_lookup() {
if(!isset($_GET["ajax_guest_lookup"]))
return;
$event = $_GET["ajax_guest_lookup"];
global $wpdb;
$sql = "SELECT * FROM ".$wpdb->prefix."rsvpmaker WHERE event=$event AND yesno=1 ORDER BY id DESC";
$attendees = $wpdb->get_results($sql);
echo '<div class="attendee_list">';
foreach($attendees as $row)
{
?>
<h3 class="attendee"><?php echo $row->first;?> <?php echo $row->last;?></h3>
<?php
if($row->details)
{
$detailsarray = unserialize($row->details);
if($detailsarray["roommate"])  {
$roommate = htmlentities(strip_tags($detailsarray["roommate"]));
echo "<p>Roommate: $roommate</p>";
}
}
if($row->note);
echo wpautop($row->note);
}
echo '</div>';
exit();
}

Posted in Announcement | 2 Comments

RSVPMaker 2.5 and new method for customizing the RSVP Form

RSVPMaker 2.5 is out and introduces a new method for customizing the RSVP form. It also fixes some glitches with the recurring event setting function and the JavaScript on the RSVP form. (See also setting required fields).

Form Customization

I’ve received many requests from people who wanted to make more customizations than I allowed for with the built-in administrative tools. For example, some people did not want to include the section that asks for the names of guests. Previously, the only alternative I offered was code-level customization (I tried to add flexibility with a technique for adding a rsvpmaker-custom.php file). NOTE: If you previously customized the form, this release may break your customizations.

I ran into my own requirement for customization recently when I used the form for a luncheon where people were supposed to choose from among 3 meal choices. So the form needed to be different for that one event. It’s now possible to create a custom form for a single event, in addition to the default RSVP Form for the site.

There is now an RSVP Form field that appears on the main RSVPMaker settings screen, as well as the RSVP options panel on the event editing screen.

The default code for the body of the form looks like this:

<table border="0" cellspacing="0" cellpadding="0" width="100%"> 
<tr> 
<td>First Name:</td><td>[rsvpfield textfield="first" required="1"]</td> 
</tr> 
<tr> 
<td>Last Name:</td><td>[rsvpfield textfield="last" required="1"]</td> 
</tr> 
<tr> 
<td width="100">Email:</td><td>[rsvpfield textfield="email" required="1"]</td> 
</tr>
</table>
[rsvpprofiletable show_if_empty="phone"]
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr> 
<td width="100">Phone:</td> 
<td>[rsvpfield textfield="phone" size="20"]</td> 
</tr> 
<tr> 
<td>Phone Type:</td>
<td>[rsvpfield selectfield="phonetype" options="Work Phone,Mobile Phone,Home Phone"]</td> 
</tr>
</table>
[/rsvpprofiletable]
[rsvpguests]      
<p>Note:<br /> 
<textarea name="note" cols="60" rows="2" id="note"></textarea> 
</p>

You can now modify the HTML structure around the form fields as much as you would like. It is important that you include the fields first, last, and email for your form to function properly. But you can add any other fields you might like.

With the exception of the notes textarea, fields are represented by the shortcodes [rsvpfield textfield="fieldname"] or [rsvpfield selectfield="fieldname" options="option1,option2"]. For my luncheon scenario, I could have done something like [rsvpfield selectfield="meal" options="Chicken,Salmon,Vegetarian Plate"]

There is also a [rsvpprofiletable show_if_empty="phone"] shortcode which is an optional block that will not be displayed if the specified data (such as a phone number) is already “on file” from a prior RSVP. For this to work, there must also be a [/rsvpprofiletable] closing tag.

The guest section of the form is represented by [rsvpguests] (no parameters). If you don’t want the guest blanks to show up, you can remove this.

The form code you supply will be wrapped in a form tag with the CSS ID of “rsvpform”.  The yes/no radio buttons and certain other fields that are generated from code for PayPal payments or timeslot reservations are still outside the bounds of what you can customize with this method.

I hope most users will find this to be an improvement.

Posted in Announcement, Release, Tutorial | 30 Comments

Video: PayPal Setup for Event Payments with RSVPMaker

This tutorial shows how to integrate PayPal with RSVPMaker so you can collect a fee for admission or other fees associated with an event.

The PayPal configuration seems to be the part of RSVPMaker setup people have the most trouble with, and the directions are a little tricky. I hope this will help.

Because there’s money involved, I’ve tried to be careful to make this as secure as I know how, following the guidelines from PayPal. That’s the reason I make you jump through a few extra hoops, creating a file in a secure location on the server to contain the PayPal parameters, rather than simply providing a configuration screen in WordPress. You don’t want someone using the API access to get into your PayPal account (and potentially your bank account), so it’s worth taking a little more time to do it right.

Posted in Announcement, Tutorial | Leave a comment

Translating RSVPMaker – First Translation to Polish!

RSVPMaker finally has its first international translation, thanks to some help from Jarosław Żeliński, a consultant who has been working with the plugin. Here is what the editing panel for setting dates and RSVP parameters looks like in Polish:

Note that there are a couple of English language phrases showing through where no translation has yet been supplied. I actually just got received an updated version, which will be included with the next RSVPMaker release.

I’ve been getting interest in translation and occasional offers to help since RSVPMaker was first released, but Mr. Żeliński helped me work through a series of issues ranging from proper encoding of international characters to bugs in the code that was supposed to load the translation files. Now that we’ve got this first one, it would be good to see translations to some other languages.

I’m still new to this whole process, but here’s essentially how it works:

  • Obtain a copy of POEdit the utility used to generate translation files in a standard format.
  • Use POEdit to open the rsvpmaker.pot file, which is a template for the catalog of translated phrases you will create from English to the target language.
  • Save your file as rsvpmaker-locale.po where locale is a standard country code. Example: rsvpmaker-pl_PL.po for Polish. See http://codex.wordpress.org/WordPress_in_Your_Language 
  • Use POEdit to suggest translated phrases to be used in place of my English language ones. For content to be available for translation, it needs to be marked correctly in the plugin source code, so let me know if you see important omissions. I’ve tried to flag most of the labels and instructions for translation.
  • When you save your work, POEdit will also generate a .mo file such as rsvpmaker-pl_PL.mo. You can upload this to your own server to test that it works, with the language code set in the WordPress wp-config.php file. If you believe you have created a translation others would find useful, send me the .mo file to include in future distributions of RSVPMaker.
  • When I put out a new release, you should be able to use the Update from Sources function in POEdit to detect if there are new words or phrases available for translation. Send me the updated .mo files as appropriate.

For a general tutorial on translating plugins, see http://urbangiraffe.com/articles/translating-wordpress-themes-and-plugins/

If the instructions I’ve supplied aren’t clear, let me know how I can improve them. Thanks.

Posted in Announcement | Leave a comment

RSVPMaker 2.3.5 – Automated Reminders and Better UTF-8 Encoding for International Characters

I’ve recently posted a flurry of releases aimed at addressing a couple of user requests / complaints:

  • Several people have asked for an automated way of sending a reminder to people who have RSVP’ed for an event, so they don’t forget to show up.
  • Several sections of my code had trouble dealing with international characters, either recording them in the database or including them in email notification / confirmation messages. I’ve been getting an education in proper UTF-8 encoding, and I think I’ve rooted out the worst of these errors now.

The functional new feature is an option on the event editor screen where you can specify a reminder date, which you might typically make a day or two before the date of your event. This is in the same block of parameters as the RSVP deadline and RSVP start date.

The reminder message looks something like this:

RSVPMaker now creates a pseudo cron job, which by default runs at noon local time and checks to see if any events have set reminders to run that day. If so, it generates an email to be sent to the people on the RSVP list including the details of their RSVP response and a recap of the event. The idea is that you’re reminding them of the details, while also giving them an opportunity to update their RSVP if their plans have changed.

Regarding the scheduling of these reminder messages, note that the plugin can only calculate local time if you’ve set your timezone on the General Settings screen. Also, because the built-in WP cron routine only runs when WordPress is active, it typically runs a little later than the specified time — whenever the next visitor or search engine spider or spambot probe accesses your domain.

If you prefer to set a different time for the  WP cron routine to run and send reminders, you can change it on the RSVPMaker Settings screen.

Posted in Release | 2 Comments