Adding Email Subscription to WordPress

In this tutorial I will show you how to integrate an email subscription plugin in your WordPress site that will allow users to enter their email address to subscribe to new posts and emails that you send out.

  1. To get this working in your WordPress site you will first need to install the “Subscribe2″ plugin. You can search and install this from WordPress by going to Plugins -> Add new and then searching for Subscribe2
  2. Once you’ve installed Subscribe2, review the plugin settings and determine which posts categories should be sent out and how often. I also checked the Enable Subscribe2 widget option so that I could use the subscribe plugin in my sidebar (look to your left).
  3. If you are going to insert the form into a page, then edit the page and you will see S2 in the WYSIWYG. Simply click that.
  4. If you are going to insert the form into a widget (e.g. sidebar), then go to Appearance -> Widgets and drag the Subscribe2 widget to your sidebar.
  5. The rest of this tutorial assume you are using the widget method.
  6. You can configure the options, but I only changed the class from “search” to “subscribe” and also removed the ’2′ from the title.
  7. At this point your Subscribe input field and buttons may look pretty wimpy. That’s okay we will address that now.
  8. Open your stylesheet and add two new styles for:
    1. .subscribe input[type=text] { /* these styles are for the text field */ }
    2. .subscribe input[type=submit] { /* these styles are for the buttons */ }
  9. Here is the full CSS I used to style my subscribe widget
  10. .subscribe input[type=text] { 
       width: 260px;
       height: 20px;
       padding: 10px 5px;
       float: left;
       font: bold 15px 'lucida sans', 'trebuchet MS', 'Tahoma'; 
       border: 0; 
       background: #eee;
       border-radius: 3px;
       margin-bottom:5px;
    }
            
    .subscribe input[type=text]:focus {
       outline: 0;
       background: #fff;
       box-shadow: 0 0 2px rgba(0,0,0,.8) inset;
    }
    
    
    .subscribe input[type=text]::-webkit-input-placeholder {
       color: #999;
       font-weight: normal;
       font-style: italic;
    }
    
    .subscribe input[type=text]:-moz-placeholder {
       color: #999;
       font-weight: normal;
       font-style: italic;
    }
    
    .subscribe input[type=text]:-ms-input-placeholder {
       color: #999;
       font-weight: normal;
       font-style: italic;
    }  
    
    .subscribe input[type=submit] {
       padding: 10px;
       -webkit-border-radius: 2px 2px;
       border: solid 1px #3079ed;
       background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#4d90fe), to(#4787ed));
       background: #4d90fe; /* Old browsers */
       background: -moz-linear-gradient(top,  #4d90fe 0%, #4787ed 100%); /* FF3.6+ */
       background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#4d90fe), color-stop(100%,#4787ed)); /* Chrome,Safari4+ */
       background: -webkit-linear-gradient(top,  #4d90fe 0%,#4787ed 100%); /* Chrome10+,Safari5.1+ */
       background: -o-linear-gradient(top,  #4d90fe 0%,#4787ed 100%); /* Opera 11.10+ */
       background: -ms-linear-gradient(top,  #4d90fe 0%,#4787ed 100%); /* IE10+ */
       background: linear-gradient(top,  #4d90fe 0%,#4787ed 100%); /* W3C */
       filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#4d90fe', endColorstr='#4787ed',GradientType=0 ); /* IE6-9 */
       color: #fff;
       text-decoration: none;
       cursor: pointer;
       display: inline-block;
       text-align: center;
       font-weight:bold;
       font-family:Arial, Helvetica, sans-serif;
       text-transform:uppercase;
       font-size:11px;
       line-height: 1;
    }
    
    .subscribe input[type=submit]:hover {
       border: 1px solid #2f5bb7;
       background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgb(221, 75, 57)), to(rgb(197, 55, 39)));
       background: #4d90fe; /* Old browsers */
       background: -moz-linear-gradient(top,  #4d90fe 0%, #357ae8 100%); /* FF3.6+ */
       background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#4d90fe), color-stop(100%,#357ae8)); /* Chrome,Safari4+ */
       background: -webkit-linear-gradient(top,  #4d90fe 0%,#357ae8 100%); /* Chrome10+,Safari5.1+ */
       background: -o-linear-gradient(top,  #4d90fe 0%,#357ae8 100%); /* Opera 11.10+ */
       background: -ms-linear-gradient(top,  #4d90fe 0%,#357ae8 100%); /* IE10+ */
       background: linear-gradient(top,  #4d90fe 0%,#357ae8 100%); /* W3C */
       filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#4d90fe', endColorstr='#357ae8',GradientType=0 ); /* IE6-9 */
       -webkit-box-shadow: 0 1px 1px #333333;
       -moz-box-shadow: 0 1px 1px #333333;
       box-shadow: 0 1px 1px #333333;
    }
    

5 comments

  1. dedtalash says:

    Hi, thanks for that, this is great and worked very well for me.
    Any ideas on how to get rid of the “your email:” just above the email field box since “enter your email..” IN the box makes it pretty much redundant. I would imagine that it requires editing the plugin PHP files but I tried swimming through the code and it is a little bit above my head at the moment.

    Thanks, Josh!

  2. jolamar says:

    Search for “your email:” in subscribe2/classes/class-s2-frontend.php and remove it both instances of that string. I confirmed this works!

    Hope this helps.

    Lil Josh

  3. Nizam says:

    Really informative and useful post. Well, a video tutorial would be more helpful for WordPress newbies. Thanks though !

  4. a says:

    i copied it to style.css but nothing changes?

Leave a Reply

Your email address will not be published. Required fields are marked *