Blog

  • Case Study: Swank Specialty Produce

    Case Study: Swank Specialty Produce

    Tickets are going fast for the gourmet dinners hosted by Swank Specialty Produce, and this year they’re taking reservations using my RSVPMaker for #WordPress plugin. As part of my consulting with the Swanks, I’ve used RSVPMaker to organize the event promos for the past several years, but this year they agreed to replace an external ticketing system with registration and payment directly on the website. That makes the website “stickier,” giving customers an opportunity to discover other events, products, and services.

    RSVPMaker is a free WordPress plugin, so engaging with me as a consultant or for support is optional (but appreciated). This video gives a quick tour of what RSVPMaker can do.

    Notes

    I mention a few lines of CSS I’ve found helpful for making title text stand out more in cover blocks. That’s here:

    .wp-block-cover h1 {
    text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black
    }
  • Pricing Events Using RSVPMaker for WordPress: New Options

    Pricing Events Using RSVPMaker for WordPress: New Options

    Here are several ways you can customize your registration form and event pricing when you are charging admission for an event.

    RSVPMaker is a free WordPress plugin for event publishing, event marketing, and event registration. When you add a price to an event, RSVPMaker uses integrations with Stripe and PayPal to collect money.

    This demo covers new options for using the default registration form, customizing it for a specific event, and setting one or more prices. Event pricing options range from a single per-person price, multiple prices including an “Early Bird” price with an expiration date, group registration (like “Table of 8”) for a dinner, and coupon codes for event pricing discounts.

    More details in this knowledge base article.

  • Dazzling Design Choices for Events on Your WordPress Website

    Dazzling Design Choices for Events on Your WordPress Website

    If you display events on your website, you want to showcase them in a way that entices website visitors to sign up and pay (if you’re charging) and show up as attendees. The latest updates to RSVPMaker give you more flexibility in how you want to present your event listings, capitalizing on advances in the design flexibility WordPress now offers for all sorts of website content.

    The modern WordPress editor allows web pages and blog posts, as well as entire website designs, to be assembled from “blocks” — visual components that provide context-specific controls for different kinds of content (paragraphs, headings, and images) as well as layout elements (columns, rows, and navigation menus).

    For several years, RSVPMaker has provided multiple content blocks, including the RSVPMaker Upcoming block for displaying event listings. However, website creators didn’t have as many options for layout as the latest RSVPMaker releases provide by working with the WordPress Query Loop block.

    Here’s a quick tour:

    (more…)
  • Video: All the ways you can turn events and blog posts into email invites, newsletters and promotions

    See how powerful the email tools built into RSVPMaker can be for outreach to customers of your company or members of your organization and driving them to your website so they can sign up for events and learn more about what you offer.

    I’ve posted more details in the blog knowledge base article linked to below and will answer questions in an upcoming demo session on Zoom.

    How to Import Blog and Event Content into Invitation Emails and Email Newsletters

    The RSVP Email tool within RSVPMaker lets you create messages in the WordPress editor, as if they were blog posts, send them out with the post title as the email subject line.

    Example email newsletter

    Rather than starting with a blank message, you can start by importing a blog post, an excerpt from a blog post, the invitation to an event, or a combination of the above. Part of the point of using the standard WordPress editor to create and format your email is to make it easier to incorporate existing content.

    More details in the knowledge base article linked to below.

  • How to Customize the RSVP Now! Button

    The latest version of RSVPMaker changes the RSVP Now! button to one with a red background and white text — while also allowing you to customize the button in the WordPress editor. Previous versions used a red-white-and-blue button (a holdover from a political campaign) and had to be edited as HTML code.

    In RSVPMaker Settings under RSVP Button, you will now see a link that lets you edit the button template as a separate document. You can change the text on the button to, for example, say Register Now, and you can also change the colors (see below).

    The link attached to the button is a placeholder code (%s) and should not be changed. This document is not intended to include anything other than the button content. Once you update this special post, your revised button will be used with every event that has RSVPs turned on.

    The button template
    (more…)
  • Roll your own specialized WordPress block editor

    Roll your own specialized WordPress block editor

    Here is how you can create your own simplified WordPress block editor for specialized applications using React and the REST API.

    I am, in general, a fan of the WordPress block editor and how it has progressed. However, I’ve learned over time that all the options available within the block editor can be overwhelming to newbies.

    This has proven to be particularly true to the community of Toastmasters whom I’ve introduced to WordPress through the Toastmost.org website hosting service. Sometimes, asking them to dive into the block editor is inappropriate and/or overkill for relatively simple tasks they want to perform. That’s prompted me to create a couple of simplified block editors, including one for editing RSVP forms for events that’s included with the latest update to RSVPMaker.

    To be clear, I’m not trying to reproduce all the work of the good folks running the Gutenberg block editor project. My editors don’t come close to the sophistication of the block editor, but they offer a simpler user experience for accomplishing specific tasks. That is, working with RSVP forms and Toastmasters agendas. These documents can contain other sorts of blocks — paragraphs, headings, and images — but the advantage of my specialized editors is that they are focused. Rather than having to hunt through the block inserter to find my specialized blocks — amidst all the blocks geared toward blog posts and web pages — I can present just the blocks relevant to my application.

    For example, my equivalent of the inserter for this RSVP form editor just offers form fields:

    Custom block inserter

    For each block, there are also options to move blocks up or down within the document, change attributes, or delete the block.

    Options for form fields

    The effect winds up being effectively the same as working with those same blocks in the WordPress block editor, where the field options are shown in the sidebar. Although my custom-built editor doesn’t allow you to add other blocks, it can move them up or down within the document without corrupting that content.

    Same form in the standard block editor

    The secret to making this work is turning the WordPress document you want to work with into an array of JSON objects you can manipulate in your client-side application. You then send the altered version back to the server as JSON and have your server-side API turn that data back into block format that can be saved as the updated body of the post in question. Naturally, this requires some attention to detail to make sure the technique can’t be used to rewrite your home page into some hacker’s manifesto. But the tools for doing it securely are available within the WordPress platform.

    Turning the content of any WordPress document into JSON turns out to be easy, with the use of a function called parse_blocks, shown here in an excerpt from my REST API code.

    $form_id = (empty($_GET['form_id'])) ? $rsvp_options['rsvp_form'] : intval($_GET['form_id']); 
    $form = get_post($form_id);
    $response['form_id'] = $form_id;
    $response['form'] = parse_blocks($form->post_content);
    ...
    return new WP_REST_Response( $response, 200 );
    

    This results in the data being downloaded in this format:

    Downloading the data as JSON

    On the client side, I’ve got a React app — my first real foray into using React outside of creating WordPress editor blocks — that I use to add, delete, and rearrange items in the block array, preserving the structure of blockName, attrs (attributes) object, innerHTML (string) and arrays for innerBlocks and innerContent.

    The altered array of block objects can then be posted back to the server, as shown below. In this example, I’m moving the Email field above First Name and Last Name.

    Posting a new array of blocks

    On the server side, I catch this input, transform it back into blocks format, and use it to update the post.

    $json = file_get_contents('php://input');
    $data = json_decode(trim($json));
    $output = '';
    foreach($data->form as $index => $block) {
    	if($block->blockName)
    	$output .= rsvpBlockDataOutput($block, $post_id);
    }
    $updated['ID'] = $form_id;
    $updated['post_content'] = $output;
    wp_update_post($updated);

    The function doing the work of formatting the content into block data — the comments-plus-JSON format that goes into the body of the post — is shown below. I suspect that there is a similar function in WordPress core that I could be using instead, except that I haven’t found it yet. Meanwhile, this seems to work perfectly well for every block I’ve tried it on so far, including those with nested innerBlocks content.

    https://gist.github.com/davidfcarr/6e0a750f58c903b054323fd3ac0c8373

    I’m omitting some details for the sake of making these examples clearer, such as the code for creating a new post rather than updating an existing one, but you can find my API code here and the JavaScript and script enqueuing functions here.

    For client-server communication, I’m using the combination of React Query and Axios. React Query is supposed to simplify a few things, although I stumbled over many details such as getting optimistic updates to work and not using the async / await keywords correctly on my API get and post functions. I found this tutorial helpful in figuring out that part.

    Let me know if you find this useful.

  • Case Study: From Mailchimp to RSVPMaker for WordPress + Postmark for Florida Bulldog

    Case Study: From Mailchimp to RSVPMaker for WordPress + Postmark for Florida Bulldog

    The editor of Florida Bulldog came to me a few months ago asking for ideas on how to stretch the budget of his nonprofit news website. He particularly asked if we could find a more economical alternative to Mailchimp, for which the subscription fee was rising with the size of his list. Florida Bulldog is an investigative news site, and whenever it publishes a new hard-hitting report, email is an important element of getting those stories read.

    His query prompted me to take a closer look at Postmark, a reliable and cost effective service for email distribution. RSVPMaker makes it possible to compose email messages using the same WordPress editor you use to write and edit blog posts and other web content. Postmark integration allows you to distribute those messages to thousands of people, with Postmark handling the complexities of bounced emails and spam complaints. Like Mailchimp and similar services, Postmark can track how many people opened your messages and clicked on links.

    “For me, this is a heck of a lot easier than dealing with Mailchimp!”

    Dan Christensen, Editor and Founder, Florida Bulldog

    Here’s how it works:

    (more…)
  • Postmark integration for email newsletters and event invitations now part of the free RSVPMaker plugin for WordPress

    Previously announced as a beta test of a premium plugin, the code for enabling Postmark integration is now part of the free core RSVPMaker plugin.

    Starting at $10 per month for 10,000 email sends, Postmark is a reliable and efficient email distribution service that supports both broadcast messages (newsletters, event invitations, and announcements) as well as transactional messages (registration notifications and confirmations). In combination with RSVPMaker’s tools for composing email messages in the WordPress editor, it provides a convenient and cost-effective alternative to services like Mailchimp and MailPoet.

    Previewing an email composed in the WordPress editor with an embedded YouTube video

    “For me, this is a heck of a lot easier than dealing with Mailchimp!”

    Dan Christensen, Editor and Founder, Florida Bulldog (see case study)

    Although I would like to profit from the work I’ve invested in making RSVPMaker and Postmark work together, I’ve decided to hold back only a few premium features (and access to my services as a consultant).

    If you’re in the business of hosting small business websites on WordPress multisite, talk with me about how you can provide your clients with access to email marketing services as an upgrade to their subscription. That’s something I’m doing myself for users of Toastmost, a website hosting service for Toastmasters clubs and districts. Also not included in the base plugin are features for managing email forwarders and discussion lists from within the WordPress dashboard, also created as part of the Toastmost solution.

    Contact me at david@rsvpmaker.com for more information.

  • RSVP Mailer: Embedding YouTube Video and Blog Posts

    Here’s a video demo of how you can incorporate YouTube videos and lists of blog posts into your event promotion / event replay emails as well as other types of email newsletters using the RSVP Mailer component of RSVPMaker for WordPress.

    Key components of this solution include, a way of importing the content of entire posts into the email template.

    I applied that technique to this content, creating the blog post first and then using it as the basis for an email to my list.

    Add New -> Copy to Email option for RSVP Email
    (more…)
  • Join the Beta: RSVPMaker’s Alternative to MailPoet and Mailchimp

    For a long time, I’ve been looking for a better email newsletter and event invitation solution for website managers than either Mailchimp or MailPoet. By piggybacking on the Postmark service for high-volume email, I’ve finally created a solution I’m happy with, and I’d like you to help test it.

    Update: The essential code for enabling Postmark is now part of the free core RSVPMaker plugin. The part I’m holding back to be offered as a premium plugin, or as part of consulting services, is related to (a) managing forwarders and email discussion lists from the WordPress dashboard and (b) a bundle of features for monetizing the service on a subscription basis if you host websites on a WordPress multisite install. Contact me at david@rsvpmaker.com for more information.

    The Postmark service, which starts at $10 for 10,000 email sends per month. That would likely represent a cost savings for most of you, although it depends on the size of your list and how often you send to it. Even if you won’t save money, you will send time by managing your website and your email list within the same dashboard, creating content with the same editor.

    TBD. As a beta tester, you can get it for free.

    Beyond newsletters and other broadcasts, Postmark helps you deliver transactional messages such as RSVP confirmations and password resets more reliably. What it doesn’t offer is a slick authoring environment — which is the gap I fill with RSVPMaker.

    The RSVP Mailer utility included with RSVPMaker has been in the software for a long time but has become more powerful with the addition of block-based email templates.

    See also:

    With the RSVPMaker Mailer, you compose newsletters and event invitations in the block editor, then preview and send them in a special front end template that includes the controls for sending messages.

    Preparing to send the email version of this blog post.
    (more…)