<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Pippins Plugins</title>
	<atom:link href="http://pippinsplugins.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://pippinsplugins.com</link>
	<description>Daily WordPress Plugin Tutorials, Tips, Tricks, and Development</description>
	<lastBuildDate>Wed, 12 Jun 2013 12:04:11 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>bbPress Notices</title>
		<link>http://pippinsplugins.com/bbpress-notices/</link>
		<comments>http://pippinsplugins.com/bbpress-notices/#comments</comments>
		<pubDate>Wed, 12 Jun 2013 12:04:11 +0000</pubDate>
		<dc:creator>Pippin</dc:creator>
				<category><![CDATA[Add Ons]]></category>
		<category><![CDATA[Free]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[bbpress]]></category>

		<guid isPermaLink="false">http://pippinsplugins.com/?p=13159</guid>
		<description><![CDATA[<p>This add-on plugin for bbPress will allow you to place forum-wide notices for alerting your users to important information, such as delayed response times, operating hours, new features, etc. Notices are displayed above forum index, topic lists, and single topic pages, and they are displayed using the default styles in bbPress, giving you a seamless [...]</p><p>The post <a href="http://pippinsplugins.com/bbpress-notices/">bbPress Notices</a> appeared first on <a href="http://pippinsplugins.com">Pippins Plugins</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>This add-on plugin for <a href="http://bbpress.org" target="_blank">bbPress</a> will allow you to place forum-wide notices for alerting your users to important information, such as delayed response times, operating hours, new features, etc.<br />
<span id="more-13159"></span><br />
Notices are displayed above forum index, topic lists, and single topic pages, and they are displayed using the default styles in bbPress, giving you a seamless integration.</p>

<a href='http://pippinsplugins.com/bbpress-notices/screenshot-1-11/' title='screenshot-1'><img src="http://i2.wp.com/pippinsplugins.com/wp-content/uploads/2013/06/screenshot-1.png?resize=150%2C150" class="attachment-thumbnail" alt="screenshot-1" /></a>
<a href='http://pippinsplugins.com/bbpress-notices/screenshot-2-11/' title='screenshot-2'><img src="http://i0.wp.com/pippinsplugins.com/wp-content/uploads/2013/06/screenshot-2.png?resize=150%2C150" class="attachment-thumbnail" alt="screenshot-2" /></a>

<p><a href="https://github.com/pippinsplugins/bbPress-Notices" title="bbPress Notices on Github" class="tb-button tb-button-small default " target="_self"><span>bbPress Notices on Github</span></a> <a href="http://wordpress.org/plugins/bbpress-notices/" title="Download" class="tb-button tb-button-small default " target="_self"><span>Download</span></a></p>
<p>The post <a href="http://pippinsplugins.com/bbpress-notices/">bbPress Notices</a> appeared first on <a href="http://pippinsplugins.com">Pippins Plugins</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pippinsplugins.com/bbpress-notices/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Please Consider Not Using Curly Brackets {} in Template Files</title>
		<link>http://pippinsplugins.com/please-do-not-use-curly-brackets-in-template-files/</link>
		<comments>http://pippinsplugins.com/please-do-not-use-curly-brackets-in-template-files/#comments</comments>
		<pubDate>Sat, 08 Jun 2013 04:05:51 +0000</pubDate>
		<dc:creator>Pippin</dc:creator>
				<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[conditionals]]></category>
		<category><![CDATA[templates]]></category>

		<guid isPermaLink="false">http://pippinsplugins.com/?p=12954</guid>
		<description><![CDATA[<p>The vast majority of developers will cringe a bit when they hear the recommendation against using curly brackets, {}, but I believe very strongly that when writing template files, in both themes and plugins, you should strictly avoid using brackets. The reason being that template files should be written for clarity, both for developers and [...]</p><p>The post <a href="http://pippinsplugins.com/please-do-not-use-curly-brackets-in-template-files/">Please Consider Not Using Curly Brackets {} in Template Files</a> appeared first on <a href="http://pippinsplugins.com">Pippins Plugins</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>The vast majority of developers will cringe a bit when they hear the recommendation against using curly brackets, {}, but I believe very strongly that when writing template files, in both themes and plugins, you should strictly avoid using brackets. The reason being that template files should be written for clarity, both for developers and non-developers.<br />
<span id="more-12954"></span><br />
Template files are designed so that the layout and presentation of data can be manipulated, without actually touching or modifying the way the data is &#8220;created&#8221;. For example, take a look at the <a href="http://core.trac.wordpress.org/browser/trunk/wp-content/themes/twentythirteen/index.php" target="_blank">index.php</a> file from the Twenty Thirteen theme:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #009933; font-style: italic;">/**
 * The main template file.
 *
 * This is the most generic template file in a WordPress theme and one of the
 * two required files for a theme (the other being style.css).
 * It is used to display a page when nothing more specific matches a query.
 * For example, it puts together the home page when no home.php file exists.
 *
 * Learn more: http://codex.wordpress.org/Template_Hierarchy
 *
 * @package WordPress
 * @subpackage Twenty_Thirteen
 * @since Twenty Thirteen 1.0
 */</span>
get_header<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
        &lt;div id=&quot;primary&quot; class=&quot;content-area&quot;&gt;
                &lt;div id=&quot;content&quot; class=&quot;site-content&quot; role=&quot;main&quot;&gt;
                <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> have_posts<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
                        <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #666666; font-style: italic;">/* The loop */</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
                        <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span> have_posts<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> the_post<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
                                <span style="color: #000000; font-weight: bold;">&lt;?php</span> get_template_part<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'content'</span><span style="color: #339933;">,</span> get_post_format<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
                        <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endwhile</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
                        <span style="color: #000000; font-weight: bold;">&lt;?php</span> twentythirteen_paging_nav<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
                <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">else</span> <span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
                        <span style="color: #000000; font-weight: bold;">&lt;?php</span> get_template_part<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'content'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'none'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
                <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endif</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
                &lt;/div&gt;&lt;!-- #content --&gt;
        &lt;/div&gt;&lt;!-- #primary --&gt;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> get_sidebar<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> get_footer<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>The template file clearly sets up the HTML structure of the main content section of the site. One of the most important points to notice about this template file is that it is <em>semantically</em> easy to understand. Let me translate for you:</p>
<pre>
GET HEADER
	HTML
		IF WE HAVE POSTS
			FOR EACH OF THE POSTS WE HAVE
				HTML
			END FOR EACH POST SECTION
		END THE IF WE HAVE POSTS SECTION
	HTML
GET SIDEBAR
GET FOOTER
</pre>
<p>A user that doesn&#8217;t understand a single bit of PHP, and perhaps just minimal HTML, can clearly read my translation above and understand what is happening.</p>
<p>Notice that the template file is using the following conditional / loop notation:</p>
<pre>
if( something ) :
	
	while( something ) :

	endwhile;
	
else :

endif;
</pre>
<p>While most developers really do not like this, it is very semantically clear. In English, it says:</p>
<pre>
IF CONDITION

	WHILE CONDITION

	END WHILE CONDITION

END IF CONDITION
</pre>
<p>Developers usually prefer this method:</p>
<pre>
if( something ) {
	
	while( something ) {

	}
	
} else {

}
</pre>
<p>There are several reasons developers prefer working with this latter style of notation:</p>
<p><strong>1. It&#8217;s shorter</strong></p>
<p>When you write a lot of code, less can often be better. Bracket notation takes much less time to write than the alternative.</p>
<p><strong>2. Syntax highlighting</strong></p>
<p>Any decent code editor will automatically highlight opening and closing brackets when you select one, which makes it exceptionally easy to see where a conditional or loop starts and where it ends. This is especially useful when working with nested conditionals that go three, four, even five levels deep.</p>
<p>Very few code editors, however, support syntax highlighting for the longhand notation.</p>
<p><strong>3. It&#8217;s more &#8220;standard&#8221;</strong></p>
<p>The majority of coding standard guides will recommend the use of bracket notation, so for those of us that believe strongly in keeping with standards, this is really important. Note that the <a href="http://make.wordpress.org/core/handbook/coding-standards/php/#brace-style" target="_blank">WordPress coding standards handbook</a> instructs developers to use brackets.</p>
<p>There are all three very good reasons to use brackets, so why am I strongly advocating <em>against</em> the use of brackets in template files? It&#8217;s all about the users, not the developers.</p>
<p><strong>Templates files should be built for users</strong></p>
<p>A template file is built so that the layout and presentation of data can be controlled, with minimal interaction with the code that actually retrieves the data. Look back to the <a href="http://core.trac.wordpress.org/browser/trunk/wp-content/themes/twentythirteen/index.php" target="_blank">Twenty Thirteen index.php</a> again. Do you see any direct calls to the database? Or any calls to functions like wp_list_pluck()? Or any PHP arrays? No, all you see is a set of very semantic functions for have_posts() and the_post(). There are others as well, such as get_template_part(), but they are not important for this discussion.</p>
<p>One of the single most important aspects of user-friendly template files is semantics. A file that is easy to understand <em>in English</em> (or whatever your language &#8211; simply spoken/written word) will <em>always</em> be easier to understand and modify.</p>
<p>Brackets are not semantic, not even remotely.</p>
<p>Where, except perhaps advanced math or science, have you seen brackets that mean &#8220;start something&#8221; and &#8220;end something&#8221;? I champion you to try and think of a single example that the daily user encounters frequently, and frequently enough to the point where comprehending the meaning doesn&#8217;t take any thought effort at all.</p>
<p>IF &#8212; this is semantically easy to understand.</p>
<p>ENDIF &#8212; this is semantically easy to understand.</p>
<p>IF { &#8212; this is . . . wait, what&#8217;s that squiggly thing?</p>
<p>} &#8212; this is . . . WTF is that curly thing doing just sitting there?!</p>
<p>There is <em>nothing</em> inherently semantic or easy to understand about brackets for non developers.</p>
<p><strong>Remember what non-developers <del>don&#8217;t</del> know</strong></p>
<p>Users often want to make minor tweaks to template files, sometimes in order to add an image, add some text, or a variety of other small modifications.</p>
<p>As developers we often take it for granted what makes sense to us. We (developers) have no problem following something like this:</p>
<pre>
$protocal = is_ssl() ? 'https://' : 'http://';
</pre>
<p>A non developer will look at this and maybe understand that there is some sort of conditional check going on, but a complete grasp of exactly how this works is usually beyond someone that is not a developer. That&#8217;s not to say non-developers don&#8217;t have the capacity to understand this, it simply means this sort of syntax has not been introduced to them.</p>
<p>A non developer, however, will have very little difficulty understanding the general concept of this:</p>
<pre>
if( is_ssl() ) :
	$protocal = 'https://';
else :
	$protocal = 'http://';
endif;
</pre>
<p>It is very clear what is going on. A user doesn&#8217;t even need to understand what a variable is, or how to set one up, to understand that there is a conditional check happening for SSL.</p>
<p>Now, let&#8217;s be clear: code like this (checks for the protocol and such) should <em>never</em> exist in a template file, if at all possible.</p>
<p><strong>Developers can use both notations</strong></p>
<p>While developers have no difficulty reading / writing both forms of notation (even if begrudgingly), non-developers on the other hand struggle immensely with bracket notation. Even if (the person) reading this is a non-developer and you have no problem understanding bracket notation, I assure you that you are in the minority. I love that you understand them, but very few non-developers have your level of understanding in this area.</p>
<p><strong>Template files are the first place non-developers experience code</strong></p>
<p>The very first experience a non-developer will have with code, whether it be HTML, CSS, PHP, Javascript, or any other, is usually a theme&#8217;s template file, at least in the realm of WordPress. As a user, they download a theme, install it, then decide they wish to modify a few parts of it. They will do this in a variety of ways:</p>
<ul>
<li>Start by just opening the template files and exploring (brave user!)</li>
<li>Ask the theme developer how to do it and then open single.php (for example) upon instruction by the theme developer</li>
<li>Open a template file after reading online a basic guide about how to tweak a theme</li>
</ul>
<p>We can help users have a better experience with their first code experience by writing our template files in a semantic, easy to understand / follow (for users!) method.<br />
<div class="divider divider-solid"></div><br />
Aside from preferring brackets, one of the primary arguments I hear from developers on why brackets should be used in template files (at least for WordPress) is because the WordPress coding standards instruct us to use brackets. All of WordPress core is written with brackets, and all guides about how to follow the WordPress coding standards say to use brackets.</p>
<p>Well, that&#8217;s not entirely true. Not <em>all</em> of WordPress core uses brackets. <em>All</em> of the default theme actually avoid the use of brackets entirely inside of template files. Do you think this is an accident? Perhaps just an inconsistency that needs to be corrected? If you do, I&#8217;d strongly suggest you think about it a little longer.</p>
<p>The WordPress core team takes standards very seriously and decisions about formatting, notation, etc, are not taken lightly. It was a completely intentional and well thought out decision that resulted in the default theme template files using non-bracket notation for loops and conditionals. </p>
<p><strong>I&#8217;m a developer and I approve of the use of endif, endwhile, etc, in template files.</strong></p>
<p><strong>Update</strong><br />
Ultimately disagreement about what is easier and better is completely fine. The important thing is that you (speaking generally) as a developer consider very seriously what is and what is not best for the users, both those that have development experience and those that do not.</p>
<p>The post <a href="http://pippinsplugins.com/please-do-not-use-curly-brackets-in-template-files/">Please Consider Not Using Curly Brackets {} in Template Files</a> appeared first on <a href="http://pippinsplugins.com">Pippins Plugins</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pippinsplugins.com/please-do-not-use-curly-brackets-in-template-files/feed/</wfw:commentRss>
		<slash:comments>58</slash:comments>
		</item>
		<item>
		<title>Storing Session Data in WordPress without $_SESSION</title>
		<link>http://pippinsplugins.com/storing-session-data-in-wordpress-without-_session/</link>
		<comments>http://pippinsplugins.com/storing-session-data-in-wordpress-without-_session/#comments</comments>
		<pubDate>Sun, 02 Jun 2013 20:30:34 +0000</pubDate>
		<dc:creator>Pippin</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Writing Plugins]]></category>
		<category><![CDATA[Eric Mann]]></category>
		<category><![CDATA[WP_Session]]></category>

		<guid isPermaLink="false">http://pippinsplugins.com/?p=12718</guid>
		<description><![CDATA[<p>The term Session in web development refers to a general method of storing semi-permanent data, such as user logins, user interactions, ecommerce shopping carts, and many other examples. PHP has a system called $_SESSION, which is exceptionally simple to use, but has same major draw backs, including security issues, and intermittent  support across server environments. A few months [...]</p><p>The post <a href="http://pippinsplugins.com/storing-session-data-in-wordpress-without-_session/">Storing Session Data in WordPress without $_SESSION</a> appeared first on <a href="http://pippinsplugins.com">Pippins Plugins</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>The term <a href="http://en.wikipedia.org/wiki/Session_(computer_science)" target="_blank">Session</a> in web development refers to a general method of storing semi-permanent data, such as user logins, user interactions, ecommerce shopping carts, and many other examples. PHP has a system called <a href="http://php.net/manual/en/reserved.variables.session.php" target="_blank">$_SESSION</a>, which is exceptionally simple to use, but has same major draw backs, including security issues, and intermittent  support across server environments. A few months ago, <a href="http://eamann.com/tech/introducing-wp_session/" target="_blank">Eric Mann introduced WP_Session</a>; a new library that provides a session data storage system that has the simplicity of $_SESSIONs but without many of the drawbacks.<br />
<span id="more-12718"></span><br />
WP_Session allows you to store data in exactly the same way as you would with $_SESSION. For example, when using $_SESSION, you might do something like this:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'cart_items'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
	<span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
		<span style="color: #0000ff;">'item_id'</span>   <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">43</span><span style="color: #339933;">,</span>
		<span style="color: #0000ff;">'item_name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'My Product Name'</span>
	<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
	<span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
		<span style="color: #0000ff;">'item_id'</span>   <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">22</span><span style="color: #339933;">,</span>
		<span style="color: #0000ff;">'item_name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'My Second Product Name'</span>
	<span style="color: #009900;">&#41;</span>	
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>or</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$cart_items</span> <span style="color: #339933;">=</span> <span style="color: #339933;">!</span> <span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'cart_items'</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> ? <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'cart_items'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">:</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>With WP_Session, you can perform the exact same type of actions with a nearly identical syntax:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$wp_session</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$wp_session</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'cart_items'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
	<span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
		<span style="color: #0000ff;">'item_id'</span>   <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">43</span><span style="color: #339933;">,</span>
		<span style="color: #0000ff;">'item_name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'My Product Name'</span>
	<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
	<span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
		<span style="color: #0000ff;">'item_id'</span>   <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">22</span><span style="color: #339933;">,</span>
		<span style="color: #0000ff;">'item_name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'My Second Product Name'</span>
	<span style="color: #009900;">&#41;</span>	
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>and</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$cart_items</span> <span style="color: #339933;">=</span> <span style="color: #339933;">!</span> <span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$wp_session</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'cart_items'</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> ? <span style="color: #000088;">$wp_session</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'cart_items'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">:</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Eric has made the implementation of WP_Session extremely simple with his <a href="http://wordpress.org/plugins/wp-session-manager/" target="_blank">WP_Session Manager plugin</a>, available for free from WordPress.org.</p>
<p>I recently used Eric&#8217;s WP_Session class in Easy Digital Downloads with excellent results. Because I wanted to integrate it directly into my plugin, without relying on the installation of a second plugin, I included the WP_Session library as part of EDD and then wrote a wrapper class to handle the setting and retrieval of session data. You can see my <a href="https://github.com/easydigitaldownloads/Easy-Digital-Downloads/blob/master/includes/class-edd-session.php" target="_blank">wrapper class on Github</a>.</p>
<p>When I want to store some session data in Easy Digital Downloads, such as when a customer adds an item to the shopping cart, I simply do this:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$cart</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
	<span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
		<span style="color: #0000ff;">'item_id'</span>   <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">43</span><span style="color: #339933;">,</span>
		<span style="color: #0000ff;">'item_name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'My Product Name'</span>
	<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
	<span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
		<span style="color: #0000ff;">'item_id'</span>   <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">22</span><span style="color: #339933;">,</span>
		<span style="color: #0000ff;">'item_name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'My Second Product Name'</span>
	<span style="color: #009900;">&#41;</span>	
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
EDD<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">session</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">set</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'edd_cart'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$cart</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>And when I want to retrieve the session data:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">EDD<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">session</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'edd_cart'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>When Easy Digital Downloads was first written, it relied on $_SESSION for cart storage, as well as several other pieces of session data necessary for the plugin to operate. This resulted in a rather large number of support tickets from users that experienced problems due to the lack fo support for $_SESSION on their servers. By switching to WP_Session, we reduced the number of tickets related to session data problems by probably 90% or more.</p>
<p>Have you used WP_Session? What was your experience? I am personally a big advocate for it and would strongly encourage you to give it a test.</p>
<p>To read more about why Eric created WP_Session, and the types of problems it solves, read his <a href="http://eamann.com/tech/wp_session-a-proposal/" target="_blank">original proposal</a>.</p>
<p>The post <a href="http://pippinsplugins.com/storing-session-data-in-wordpress-without-_session/">Storing Session Data in WordPress without $_SESSION</a> appeared first on <a href="http://pippinsplugins.com">Pippins Plugins</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pippinsplugins.com/storing-session-data-in-wordpress-without-_session/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Test Your Plugins with RTL</title>
		<link>http://pippinsplugins.com/test-your-plugins-with-rtl/</link>
		<comments>http://pippinsplugins.com/test-your-plugins-with-rtl/#comments</comments>
		<pubDate>Thu, 23 May 2013 21:39:25 +0000</pubDate>
		<dc:creator>Pippin</dc:creator>
				<category><![CDATA[Beginner]]></category>
		<category><![CDATA[Quick Tips]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Video Tutorials]]></category>
		<category><![CDATA[Writing Plugins]]></category>
		<category><![CDATA[RTL]]></category>

		<guid isPermaLink="false">http://pippinsplugins.com/?p=12354</guid>
		<description><![CDATA[<p>Right-To-Left languages are those that start on the right and move to the left, in terms of word order and letters. By default, WordPress runs in Left-To-Right mode, but there are thousands and thousands of WordPress users that read RTL. One of the points that most WordPress plugin developers fail on is testing and ensuring [...]</p><p>The post <a href="http://pippinsplugins.com/test-your-plugins-with-rtl/">Test Your Plugins with RTL</a> appeared first on <a href="http://pippinsplugins.com">Pippins Plugins</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Right-to-left" target="_blank">Right-To-Left</a> languages are those that start on the right and move to the left, in terms of word order and letters. By default, WordPress runs in Left-To-Right mode, but there are thousands and thousands of WordPress users that read RTL. One of the points that most WordPress plugin developers fail on is testing and ensuring their plugins work with RTL. This is a short video that will give you a brief introduction to testing with RTL.<br />
<span id="more-12354"></span></p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='569' height='351' src='http://www.youtube.com/embed/0tdSuHkWFbk?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
<p>The post <a href="http://pippinsplugins.com/test-your-plugins-with-rtl/">Test Your Plugins with RTL</a> appeared first on <a href="http://pippinsplugins.com">Pippins Plugins</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pippinsplugins.com/test-your-plugins-with-rtl/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Campaign Monitor for Ninja Forms</title>
		<link>http://pippinsplugins.com/campaign-monitor-ninja-forms/</link>
		<comments>http://pippinsplugins.com/campaign-monitor-ninja-forms/#comments</comments>
		<pubDate>Mon, 20 May 2013 18:11:09 +0000</pubDate>
		<dc:creator>Pippin</dc:creator>
				<category><![CDATA[Add Ons]]></category>
		<category><![CDATA[Newsletter]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Premium]]></category>
		<category><![CDATA[campaign monitor]]></category>
		<category><![CDATA[Ninja Forms]]></category>

		<guid isPermaLink="false">http://pippinsplugins.com/?p=12230</guid>
		<description><![CDATA[<p>Ninja Forms is a super awesome, powerful, and free forms plugin for WordPress. If you need to build contact forms, surveys, proposal forms, even post submission, Ninja Forms will work wonders for you. This is a small extension I built that adds Campaign Monitor integration into Ninja Forms so that your users can easily subscribe [...]</p><p>The post <a href="http://pippinsplugins.com/campaign-monitor-ninja-forms/">Campaign Monitor for Ninja Forms</a> appeared first on <a href="http://pippinsplugins.com">Pippins Plugins</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://wpninjas.com/ninja-forms/?ref=14" target="_blank">Ninja Forms</a> is a super awesome, powerful, and free forms plugin for WordPress. If you need to build contact forms, surveys, proposal forms, even <a href="http://wpninjas.com/downloads/front-end-posting/?ref=14" target="_blank">post submission</a>, Ninja Forms will work wonders for you. This is a small extension I built that adds <a href="http://www.campaignmonitor.com/" target="_blank">Campaign Monitor</a> integration into Ninja Forms so that your users can easily subscribe to your newsletters while submitting forms.</p>
<p><span id="more-12230"></span></p>
<p>Whether you want to build a simple &#8220;Subscribe to Our Newsletter&#8221; form or an advanced project proposal form that includes a Campaign Monitor signup, this extension for Ninja Forms can take care of you.</p>

<a href='http://pippinsplugins.com/campaign-monitor-ninja-forms/screenshot-from-2013-05-20-130709/' title='Screenshot from 2013-05-20 13:07:09'><img src="http://i1.wp.com/pippinsplugins.com/wp-content/uploads/2013/05/Screenshot-from-2013-05-20-130709.png?resize=150%2C150" class="attachment-thumbnail" alt="Screenshot from 2013-05-20 13:07:09" /></a>
<a href='http://pippinsplugins.com/campaign-monitor-ninja-forms/screenshot-from-2013-05-20-130757/' title='Screenshot from 2013-05-20 13:07:57'><img src="http://i2.wp.com/pippinsplugins.com/wp-content/uploads/2013/05/Screenshot-from-2013-05-20-130757.png?resize=150%2C150" class="attachment-thumbnail" alt="Screenshot from 2013-05-20 13:07:57" /></a>
<a href='http://pippinsplugins.com/mailchimp-for-ninja-forms/screenshot-3-5/' title='screenshot-3'><img src="http://i1.wp.com/pippinsplugins.com/wp-content/uploads/2013/04/screenshot-31.png?resize=150%2C150" class="attachment-thumbnail" alt="screenshot-3" /></a>
<a href='http://pippinsplugins.com/mailchimp-for-ninja-forms/screenshot-4-3/' title='screenshot-4'><img src="http://i0.wp.com/pippinsplugins.com/wp-content/uploads/2013/04/screenshot-4.png?resize=150%2C150" class="attachment-thumbnail" alt="screenshot-4" /></a>

<a href="http://wpninjas.com/downloads/campaign-monitor/?ref=14" title="Purchase &#8211; $18" class="tb-button tb-button-small default " target="_self"><span>Purchase &#8211; $18</span></a>
<p>The post <a href="http://pippinsplugins.com/campaign-monitor-ninja-forms/">Campaign Monitor for Ninja Forms</a> appeared first on <a href="http://pippinsplugins.com">Pippins Plugins</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pippinsplugins.com/campaign-monitor-ninja-forms/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Submitting Your First Pull Request to a WordPress Plugin on Github</title>
		<link>http://pippinsplugins.com/submitting-your-first-pull-request/</link>
		<comments>http://pippinsplugins.com/submitting-your-first-pull-request/#comments</comments>
		<pubDate>Fri, 17 May 2013 19:47:17 +0000</pubDate>
		<dc:creator>Pippin</dc:creator>
				<category><![CDATA[Beginner]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Video Tutorials]]></category>
		<category><![CDATA[github]]></category>

		<guid isPermaLink="false">http://pippinsplugins.com/?p=12116</guid>
		<description><![CDATA[<p>Github is an extremely popular tool for managing WordPress plugins, and one of the greatest things about it is how easy it makes contributing back to plugins. Even someone who has never touched version control or even thought about it can easily submit improvements or bug fixes to plugins that are hosted on Github. This [...]</p><p>The post <a href="http://pippinsplugins.com/submitting-your-first-pull-request/">Submitting Your First Pull Request to a WordPress Plugin on Github</a> appeared first on <a href="http://pippinsplugins.com">Pippins Plugins</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://github.com" target="_blank">Github</a> is an extremely popular tool for managing WordPress plugins, and one of the greatest things about it is how easy it makes contributing back to plugins. Even someone who has never touched version control or even thought about it can easily submit improvements or bug fixes to plugins that are hosted on Github. This video gives a quick walk through of exactly how to do that.<br />
<span id="more-12116"></span></p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='569' height='351' src='http://www.youtube.com/embed/YTbRzhQju4c?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
<p>To learn more about Pull Requests, read the <a href="https://help.github.com/articles/using-pull-requests" target="_blank">Github tutorial</a> on them.</p>
<p>Github is one of the best tools you can utilize to <a href="http://pippinsplugins.com/how-to-encourage-community-collaboration-and-development/" target="_blank">encourage community collaboration</a>, and it is also the tool that makes it exceptionally easy for new users to give back to the plugins they love.</p>
<p><strong>Note</strong>: this tutorial shows how to use the inline code editor available on Github. I do not recommend using this for major edits. If you plan to make large contributions to plugins, it is highly recommended that you take some time to learn how to use Git so that you can make your edits on your local machine and then push them up to your forked copy of the repository.</p>
<p>The post <a href="http://pippinsplugins.com/submitting-your-first-pull-request/">Submitting Your First Pull Request to a WordPress Plugin on Github</a> appeared first on <a href="http://pippinsplugins.com">Pippins Plugins</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pippinsplugins.com/submitting-your-first-pull-request/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Restrict Content Pro &#8211; Member Discounts for Easy Digital Downloads</title>
		<link>http://pippinsplugins.com/restrict-content-pro-member-discounts-for-easy-digital-downloads/</link>
		<comments>http://pippinsplugins.com/restrict-content-pro-member-discounts-for-easy-digital-downloads/#comments</comments>
		<pubDate>Fri, 03 May 2013 21:30:42 +0000</pubDate>
		<dc:creator>Pippin</dc:creator>
				<category><![CDATA[Add Ons]]></category>
		<category><![CDATA[Memberships]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Shop]]></category>
		<category><![CDATA[easy digital downloads]]></category>
		<category><![CDATA[restrict content pro]]></category>

		<guid isPermaLink="false">http://pippinsplugins.com/?p=11489</guid>
		<description><![CDATA[<p>Restrict Content Pro is a complete membership and premium content manager plugin for WordPress. It allows you to create an unlimited number of memberships levels, including free, trial and premium. You can easily Manage members and their subscriptions, track payments, offer discounts with a complete discount code system, and provide premium, members-only content to your [...]</p><p>The post <a href="http://pippinsplugins.com/restrict-content-pro-member-discounts-for-easy-digital-downloads/">Restrict Content Pro &#8211; Member Discounts for Easy Digital Downloads</a> appeared first on <a href="http://pippinsplugins.com">Pippins Plugins</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://pippinsplugins.com/restrict-content-pro-premium-content-plugin/" target="_blank">Restrict Content Pro</a> is a complete membership and premium content manager plugin for WordPress. It allows you to create an unlimited number of memberships levels, including free, trial and premium. You can easily Manage members and their subscriptions, track payments, offer discounts with a complete discount code system, and provide premium, members-only content to your subscribers.</p>
<p><a href="https://easydigitaldownloads.com/" target="_blank">Easy Digital Downloads</a> is a complete e-commerce plugin for selling digital goods in WordPress.</p>
<p>This is an extension that integrates the two plugins and allows you to create automated discounts that give your paid subscribers a special discount on all Easy Digital Downloads purchases.</p>
<p>Want to give your &#8220;Platinum Level&#8221; subscribers a 10% discount on all shop purchases? That&#8217;s easy. Want to give a 5% discount to all &#8220;Gold Level&#8221; subscribers? That&#8217;s easy as well.</p>

<a href='http://pippinsplugins.com/restrict-content-pro-member-discounts-for-easy-digital-downloads/screenshot-from-2013-05-02-114419/' title='Screenshot from 2013-05-02 11:44:19'><img src="http://i2.wp.com/pippinsplugins.com/wp-content/uploads/2013/05/Screenshot-from-2013-05-02-114419.png?resize=150%2C150" class="attachment-thumbnail" alt="Screenshot from 2013-05-02 11:44:19" /></a>
<a href='http://pippinsplugins.com/restrict-content-pro-member-discounts-for-easy-digital-downloads/screenshot-from-2013-05-02-114450/' title='Screenshot from 2013-05-02 11:44:50'><img src="http://i0.wp.com/pippinsplugins.com/wp-content/uploads/2013/05/Screenshot-from-2013-05-02-114450.png?resize=150%2C150" class="attachment-thumbnail" alt="Screenshot from 2013-05-02 11:44:50" /></a>
<a href='http://pippinsplugins.com/restrict-content-pro-member-discounts-for-easy-digital-downloads/screenshot-from-2013-05-02-114518/' title='Screenshot from 2013-05-02 11:45:18'><img src="http://i2.wp.com/pippinsplugins.com/wp-content/uploads/2013/05/Screenshot-from-2013-05-02-114518.png?resize=150%2C150" class="attachment-thumbnail" alt="Screenshot from 2013-05-02 11:45:18" /></a>

<p><a href="https://easydigitaldownloads.com/extension/restrict-content-pro-member-discounts/" class="edd-submit button blue">$15 &#8211; Purchase</a></p>
<p>The post <a href="http://pippinsplugins.com/restrict-content-pro-member-discounts-for-easy-digital-downloads/">Restrict Content Pro &#8211; Member Discounts for Easy Digital Downloads</a> appeared first on <a href="http://pippinsplugins.com">Pippins Plugins</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pippinsplugins.com/restrict-content-pro-member-discounts-for-easy-digital-downloads/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Review: Ninja Forms Plugin</title>
		<link>http://pippinsplugins.com/review-ninja-forms-plugin/</link>
		<comments>http://pippinsplugins.com/review-ninja-forms-plugin/#comments</comments>
		<pubDate>Thu, 02 May 2013 19:41:21 +0000</pubDate>
		<dc:creator>Pippin</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Ninja Forms]]></category>
		<category><![CDATA[WP Ninjas]]></category>

		<guid isPermaLink="false">http://pippinsplugins.com/?p=11452</guid>
		<description><![CDATA[<p>Ninja Forms is a free WordPress plugin for creating forms; contact forms, email collection forms, surveys, and any other kind of form your website needs. With its really simple, intuitive, drag-and-drop interface, Ninja Forms is an excellent, and highly powerful, tool for building forms inside of your WordPress admin. This video review of the plugin [...]</p><p>The post <a href="http://pippinsplugins.com/review-ninja-forms-plugin/">Review: Ninja Forms Plugin</a> appeared first on <a href="http://pippinsplugins.com">Pippins Plugins</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://wpninjas.com/ninja-forms/?ref=14" target="_blank">Ninja Forms</a> is a free WordPress plugin for creating forms; contact forms, email collection forms, surveys, and any other kind of form your website needs. With its really simple, intuitive, drag-and-drop interface, Ninja Forms is an excellent, and highly powerful, tool for building forms inside of your WordPress admin. This video review of the plugin walks through the process of creating forms, displaying the forms on your website, and even goes through some of the awesome <a href="http://wpninjas.com/downloads/category/ninja-forms/?ref=14" target="_blank">extensions</a> Ninja Forms has for extended functionality.<br />
<span id="more-11452"></span></p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='569' height='351' src='http://www.youtube.com/embed/hVfPmKzqYpk?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
<p>The video shows everything in-depth, but here are some of the highlights of the plugin:</p>
<ul>
<li><span style="line-height: 13px;">It&#8217;s completely free from <a href="http://wordpress.org/extend/plugins/ninja-forms/" target="_blank">WordPress.org</a></span></li>
<li>Easily create forms with a drag-and-drop interface</li>
<li>It&#8217;s really light weight</li>
<li>Reusuable fields</li>
<li>Developer friendly</li>
<li>Can be <a href="http://wpninjas.com/downloads/category/ninja-forms/?ref=14" target="_blank">extended</a> to be even more awesome</li>
</ul>
<p><strong>My Rating:</strong> 5 out of 5 stars</p>
<p>The post <a href="http://pippinsplugins.com/review-ninja-forms-plugin/">Review: Ninja Forms Plugin</a> appeared first on <a href="http://pippinsplugins.com">Pippins Plugins</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pippinsplugins.com/review-ninja-forms-plugin/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>MailChimp for Ninja Forms</title>
		<link>http://pippinsplugins.com/mailchimp-for-ninja-forms/</link>
		<comments>http://pippinsplugins.com/mailchimp-for-ninja-forms/#comments</comments>
		<pubDate>Mon, 29 Apr 2013 15:00:47 +0000</pubDate>
		<dc:creator>Pippin</dc:creator>
				<category><![CDATA[Add Ons]]></category>
		<category><![CDATA[Newsletter]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Premium]]></category>
		<category><![CDATA[mailchimp]]></category>
		<category><![CDATA[Ninja Forms]]></category>

		<guid isPermaLink="false">http://pippinsplugins.com/?p=11280</guid>
		<description><![CDATA[<p>Ninja Forms is a super awesome, powerful, and free forms plugin for WordPress. If you need to build contact forms, surveys, proposal forms, even post submission, Ninja Forms will work wonders for you. This is a small extension I built that adds MailChimp integration into Ninja Forms so that your users can easily subscribe to [...]</p><p>The post <a href="http://pippinsplugins.com/mailchimp-for-ninja-forms/">MailChimp for Ninja Forms</a> appeared first on <a href="http://pippinsplugins.com">Pippins Plugins</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://wpninjas.com/ninja-forms/?ref=14" target="_blank">Ninja Forms</a> is a super awesome, powerful, and free forms plugin for WordPress. If you need to build contact forms, surveys, proposal forms, even <a href="http://wpninjas.com/downloads/front-end-posting/?ref=14" target="_blank">post submission</a>, Ninja Forms will work wonders for you. This is a small extension I built that adds MailChimp integration into Ninja Forms so that your users can easily subscribe to your newsletters while submitting forms.</p>
<p><span id="more-11280"></span></p>
<p>Whether you want to build a simple &#8220;Subscribe to Our Newsletter&#8221; form or an advanced project proposal form that includes a MailChimp signup, this extension for Ninja Forms can take care of you.</p>

<a href='http://pippinsplugins.com/mailchimp-for-ninja-forms/screenshot-1-10/' title='screenshot-1'><img src="http://i1.wp.com/pippinsplugins.com/wp-content/uploads/2013/04/screenshot-11.png?resize=150%2C150" class="attachment-thumbnail" alt="screenshot-1" /></a>
<a href='http://pippinsplugins.com/mailchimp-for-ninja-forms/screenshot-2-10/' title='screenshot-2'><img src="http://i0.wp.com/pippinsplugins.com/wp-content/uploads/2013/04/screenshot-21.png?resize=150%2C150" class="attachment-thumbnail" alt="screenshot-2" /></a>
<a href='http://pippinsplugins.com/mailchimp-for-ninja-forms/screenshot-3-5/' title='screenshot-3'><img src="http://i1.wp.com/pippinsplugins.com/wp-content/uploads/2013/04/screenshot-31.png?resize=150%2C150" class="attachment-thumbnail" alt="screenshot-3" /></a>
<a href='http://pippinsplugins.com/mailchimp-for-ninja-forms/screenshot-4-3/' title='screenshot-4'><img src="http://i0.wp.com/pippinsplugins.com/wp-content/uploads/2013/04/screenshot-4.png?resize=150%2C150" class="attachment-thumbnail" alt="screenshot-4" /></a>

<a href="http://wpninjas.com/downloads/mail-chimp/?ref=14" title="Purchase &#8211; $18" class="tb-button tb-button-small default " target="_self"><span>Purchase &#8211; $18</span></a>
<p>The post <a href="http://pippinsplugins.com/mailchimp-for-ninja-forms/">MailChimp for Ninja Forms</a> appeared first on <a href="http://pippinsplugins.com">Pippins Plugins</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pippinsplugins.com/mailchimp-for-ninja-forms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plugin Development 101 &#8211; Introduction to Adding Dashboard Menus</title>
		<link>http://pippinsplugins.com/plugin-development-101-introduction-to-adding-dashboard-menus/</link>
		<comments>http://pippinsplugins.com/plugin-development-101-introduction-to-adding-dashboard-menus/#comments</comments>
		<pubDate>Mon, 29 Apr 2013 15:00:26 +0000</pubDate>
		<dc:creator>Pippin</dc:creator>
				<category><![CDATA[Beginner]]></category>
		<category><![CDATA[Member Restricted]]></category>
		<category><![CDATA[Subscriber Only]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[WordPress Admin / Dashboard]]></category>
		<category><![CDATA[Writing Plugins]]></category>
		<category><![CDATA[add_menu_page]]></category>
		<category><![CDATA[add_submenu_page]]></category>

		<guid isPermaLink="false">http://pippinsplugins.com/?p=11198</guid>
		<description><![CDATA[<p>Adding new menus, both top level and sub level, to the WordPress Dashboard is a really common task for plugins. Whether it be via a custom post type, a settings page, or even a help page, dashboard menus are often the focus point for plugins from a user perspective, so it&#8217;s really important that you [...]</p><p>The post <a href="http://pippinsplugins.com/plugin-development-101-introduction-to-adding-dashboard-menus/">Plugin Development 101 &#8211; Introduction to Adding Dashboard Menus</a> appeared first on <a href="http://pippinsplugins.com">Pippins Plugins</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Adding new menus, both top level and sub level, to the WordPress Dashboard is a really common task for plugins. Whether it be via a custom post type, a settings page, or even a help page, dashboard menus are often the focus point for plugins from a user perspective, so it&#8217;s really important that you learn to set them up early on. Once you have a dashboard page setup, there&#8217;s an infinite list of things you can do with your plugin.<br />
<span id="more-11198"></span><br />
Adding a menu page is quite simple, as the video shows, thanks to the WordPress helper functions, which you can find listed below:</p>
<ul>
<li><span style="line-height: 13px;"><a href="http://codex.wordpress.org/Function_Reference/add_menu_page" target="_blank">add_menu_page()</a> &#8211; For adding a top level page</span></li>
<li><a href="http://codex.wordpress.org/Function_Reference/add_submenu_page" target="_blank">add_submenu_page()</a> &#8211; For adding a sub menu page to an existing, top level menu</li>
<li><a href="http://codex.wordpress.org/Function_Reference/add_submenu_page#Parameters" target="_blank">Additional helpers</a> for adding sub menus to core menus added by WordPress core</li>
</ul>
<p>The post <a href="http://pippinsplugins.com/plugin-development-101-introduction-to-adding-dashboard-menus/">Plugin Development 101 &#8211; Introduction to Adding Dashboard Menus</a> appeared first on <a href="http://pippinsplugins.com">Pippins Plugins</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pippinsplugins.com/plugin-development-101-introduction-to-adding-dashboard-menus/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
