<?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>Krum Cheshmedjiev</title>
	<atom:link href="http://krumch.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://krumch.com</link>
	<description>I have already created everything what you can imagine, and several  things, that you can&#039;t imagine too :-)</description>
	<lastBuildDate>Wed, 22 May 2013 14:30:09 +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>KC S2M+MC Pro was born</title>
		<link>http://krumch.com/2013/05/18/kc-s2mmc-pro-was-born/</link>
		<comments>http://krumch.com/2013/05/18/kc-s2mmc-pro-was-born/#comments</comments>
		<pubDate>Sat, 18 May 2013 22:34:56 +0000</pubDate>
		<dc:creator>krumch</dc:creator>
				<category><![CDATA[Hacks]]></category>

		<guid isPermaLink="false">http://krumch.com/?p=806</guid>
		<description><![CDATA[For all my existing clients (and for new ones of course), there already exists a brand new Pro version of the plugin KC S2M+MC. There is one new feature, which will save you even more manual jobs to support your &#8230; <a href="http://krumch.com/2013/05/18/kc-s2mmc-pro-was-born/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>For all my existing clients (and for new ones of course), there already exists a brand new Pro version of the plugin <a href="http://krumch.com/2012/08/24/kc-bidirectional-integration-of-s2member-with-mailchimp/" title="Bidirectional transparent integration/synchronization/bridge of s2Member® with MailChimp®">KC S2M+MC</a>.</p>
<p>There is one new feature, which will save you even more manual jobs to support your site and list. Be sure to check that.</p>
<p>The Pro version again comes with double license, so you can choose whichever you need.</p>
]]></content:encoded>
			<wfw:commentRss>http://krumch.com/2013/05/18/kc-s2mmc-pro-was-born/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>KC AVIS client</title>
		<link>http://krumch.com/2013/04/24/kc-avis-client/</link>
		<comments>http://krumch.com/2013/04/24/kc-avis-client/#comments</comments>
		<pubDate>Wed, 24 Apr 2013 17:46:31 +0000</pubDate>
		<dc:creator>krumch</dc:creator>
				<category><![CDATA[Products]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[AVIS]]></category>
		<category><![CDATA[booking]]></category>
		<category><![CDATA[car]]></category>
		<category><![CDATA[car hire]]></category>
		<category><![CDATA[cars]]></category>
		<category><![CDATA[integrate]]></category>
		<category><![CDATA[integration]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[travel]]></category>

		<guid isPermaLink="false">http://krumch.com/?p=793</guid>
		<description><![CDATA[This is a client application to the AVIS car hiring system. You can see it in use at http://www.cars4less.co.za/. This application allows you to provide car hiring services to the visitors of your site with AVIS. It acts as client &#8230; <a href="http://krumch.com/2013/04/24/kc-avis-client/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[
<p>This is a client application to the AVIS car hiring system. You can see it in use at <a href="http://www.cars4less.co.za/" target="_blank">http://www.cars4less.co.za/</a>.</p>
<p>This application allows you to provide car hiring services to the visitors of your site with AVIS. It acts as client to the AVIS system. Your client can choose the exactly car, select extras, can book it, and if needs &#8211; can cancel it. All the process are automated. To use this client you need to have API credentials from AVIS. This is a PHP and AJAX solution, using the PHP REST client of AVIS.</p>
<p>The page you will see at the address above can be customized to your site. All the operations are made in the right side rectangle. After successful booking the client gets a mail with reservation details. Same mail gets the admin as well.</p>
<p>There is wide possibilities of customizations, so you can ask me for almost anything. This is not my first car hire system, there is another one what I support, it is at <a href="http://algarve-rental.com" target="_blank">http://algarve-rental.com</a>.</p>
<p>Here you can buy the client &#8220;as is&#8221;. <a title="Contacts" href="http://krumch.com/contacts/">Contact me</a> if you need customization. There is only one restriction &#8211; I can not sell to South Africa. Sorry, I promise this to my existing customer.</p>
<table style="text-align: left; width: 100%;" border="0" cellspacing="2" cellpadding="2">
<tbody>
<tr>
<td style="white-space: nowrap; width: 20px;"></td>
<td style="white-space: nowrap;">Price: 300 USD<br />
You must <a href="http://krumch.com/blog/wp-login.php">log in or create account</a> to purchase this client.<br />
</td>
<td style="white-space: nowrap; width: 80%;"></td>
<td style="white-space: nowrap; vertical-align: middle;"></td>
<td style="white-space: nowrap; width: 20px;"></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://krumch.com/2013/04/24/kc-avis-client/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Nivo slider&#8221; v1.9 quick fix</title>
		<link>http://krumch.com/2013/02/23/nivo-slider-v1-9-quick-fix/</link>
		<comments>http://krumch.com/2013/02/23/nivo-slider-v1-9-quick-fix/#comments</comments>
		<pubDate>Sat, 23 Feb 2013 22:28:27 +0000</pubDate>
		<dc:creator>krumch</dc:creator>
				<category><![CDATA[Hacks]]></category>

		<guid isPermaLink="false">http://krumch.com/?p=752</guid>
		<description><![CDATA[&#8220;Nivo slider&#8221; is a good plugin for slideshow, but the version 1.9, upgraded today, comes with a bug &#8211; it shows a message: Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /homepages/19/d395780486/htdocs/wp-content/plugins/nivo-slider/nivo-slider.php on &#8230; <a href="http://krumch.com/2013/02/23/nivo-slider-v1-9-quick-fix/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>&#8220;Nivo slider&#8221; is a good plugin for slideshow, but the version 1.9, upgraded today, comes with a bug &#8211; it shows a message:</p>
<pre><b>Warning</b>: array_key_exists() [<a href="http://www.thepricematchreport.com/wp-admin/function.array-key-exists">function.array-key-exists</a>]: The second argument should be either an array or an object in <b>/homepages/19/d395780486/htdocs/wp-content/plugins/nivo-slider/nivo-slider.php</b> on line <b>1572</b></pre>
<p>So it needs some emergency surgery&#8230; Here is the quick fix: add a new row</p>
<pre>if(!is_array($sources)) $sources = array($sources);</pre>
<p>right before the row 1572.</p>
<p>Stupid&#8230; If it&#8217;s stupid but it works, it ain&#8217;t stupid! (Murphy&#8217;s law)</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://krumch.com/2013/02/23/nivo-slider-v1-9-quick-fix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to add custom post types to your main WordPress RSS feed</title>
		<link>http://krumch.com/2013/02/06/how-to-add-custom-post-types-to-your-main-wordpress-rss-feed/</link>
		<comments>http://krumch.com/2013/02/06/how-to-add-custom-post-types-to-your-main-wordpress-rss-feed/#comments</comments>
		<pubDate>Wed, 06 Feb 2013 17:28:34 +0000</pubDate>
		<dc:creator>krumch</dc:creator>
				<category><![CDATA[Hacks]]></category>

		<guid isPermaLink="false">http://krumch.com/?p=749</guid>
		<description><![CDATA[Here and there is described how to add custom post types to WordPress RSS feed, but none ways works for me with WP 3.5.1, so I was need to create a new one. Difference is with more sophistical check for &#8230; <a href="http://krumch.com/2013/02/06/how-to-add-custom-post-types-to-your-main-wordpress-rss-feed/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://wordpress.org/support/topic/custom-post-types" target="_blank">Here</a> and <a href="http://www.wpbeginner.com/wp-tutorials/how-to-add-custom-post-types-to-your-main-wordpress-rss-feed/" target="_blank">there</a> is described how to add custom post types to WordPress RSS feed, but none ways works for me with WP 3.5.1, so I was need to create a new one. Difference is with more sophistical check for types to be included in RSS. Here is the code:</p>
<pre>function kc_customs2RSS($qv) {
	if(isset($qv['feed'])) {
		if(!isset($qv['post_type'])) {
			$qv['post_type'] = array('mytype', 'post');
		} else {
			if(!in_array('mytype', $qv['post_type'])) $qv['post_type'][] = 'mytype';
			if(!in_array('post', $qv['post_type'])) $qv['post_type'][] = 'post';
		}
	}
	return $qv;
}
add_filter('request', 'kc_customs2RSS');</pre>
<p>As this is pure PHP code, you can put it in your theme&#8217;s &#8220;functions.php&#8221;, or in a PHP file inside yours &#8220;mu-plugin&#8221; directory (create it if not exists), or in your plugin as well. Hope I save some time of yours.</p>
]]></content:encoded>
			<wfw:commentRss>http://krumch.com/2013/02/06/how-to-add-custom-post-types-to-your-main-wordpress-rss-feed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hack the &#8220;Debug Bar&#8221;, &#8220;Debug Bar Action Hooks&#8221; and &#8220;Kint Debugger&#8221; plugins</title>
		<link>http://krumch.com/2012/11/26/hack-the-debug-bar-debug-bar-action-hooks-and-kint-debugger-plugins/</link>
		<comments>http://krumch.com/2012/11/26/hack-the-debug-bar-debug-bar-action-hooks-and-kint-debugger-plugins/#comments</comments>
		<pubDate>Mon, 26 Nov 2012 19:34:08 +0000</pubDate>
		<dc:creator>krumch</dc:creator>
				<category><![CDATA[Hacks]]></category>

		<guid isPermaLink="false">http://krumch.com/?p=729</guid>
		<description><![CDATA[I try to trace execution of a plugin in WordPress, so I install several developer&#8217;s plugins: &#8220;Developer&#8220;, &#8220;Debug Bar&#8220;, &#8220;Debug Bar Transients&#8220;, &#8220;Debug Bar Action Hooks&#8220;, &#8220;Kint Debugger&#8220;. Then I try to show a variable in the &#8220;Kint Debugger&#8221;, but &#8230; <a href="http://krumch.com/2012/11/26/hack-the-debug-bar-debug-bar-action-hooks-and-kint-debugger-plugins/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I try to trace execution of a plugin in WordPress, so I install several developer&#8217;s plugins: &#8220;<a href="http://wordpress.org/extend/plugins/developer/">Developer</a>&#8220;, &#8220;<a href="http://wordpress.org/extend/plugins/debug-bar/">Debug Bar</a>&#8220;, &#8220;<a href="http://wordpress.org/extend/plugins/debug-bar-transients/">Debug Bar Transients</a>&#8220;, &#8220;<a href="http://wordpress.org/extend/plugins/debug-bar-action-hooks/">Debug Bar Action Hooks</a>&#8220;, &#8220;<a href="http://wordpress.org/extend/plugins/kint-debugger/">Kint Debugger</a>&#8220;. Then I try to show a variable in the &#8220;Kint Debugger&#8221;, but falls. Seems variable was used before the &#8220;Kint Debugger&#8221; plugin runs, and can not be used yet &#8211; the function &#8220;d()&#8221; was not created yet.</p>
<p>Well, but &#8220;Debug Bar Action Hooks&#8221; works, and shows hooks before and after the code what I looking for&#8230; So I create a new hook with the info I need in the name :-)</p>
<pre>do_action("KC level: $level", get_defined_vars());</pre>
<p>The hook was fired. Nobody wants it, as no action was created for it. But &#8220;Debug Bar Action Hooks&#8221; registers it and I was able to see need info inside hooks lists :-) Nobody complains (loudly enough) about spaces in hook&#8217;s name. It works even I need entire array/object to show:</p>
<pre>do_action("KC field: &lt;pre&gt;".print_r($field, true)."&lt;/pre&gt;", get_defined_vars());</pre>
<p>It is much of fun, so I share it with you :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://krumch.com/2012/11/26/hack-the-debug-bar-debug-bar-action-hooks-and-kint-debugger-plugins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hack the maximum execution time in WordPress</title>
		<link>http://krumch.com/2012/11/20/hack-the-maximum-execution-time-in-wordpress/</link>
		<comments>http://krumch.com/2012/11/20/hack-the-maximum-execution-time-in-wordpress/#comments</comments>
		<pubDate>Tue, 20 Nov 2012 22:54:10 +0000</pubDate>
		<dc:creator>krumch</dc:creator>
				<category><![CDATA[Hacks]]></category>
		<category><![CDATA[maximum execution time]]></category>
		<category><![CDATA[s2m]]></category>
		<category><![CDATA[s2member]]></category>
		<category><![CDATA[timeout]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://krumch.com/?p=721</guid>
		<description><![CDATA[Today I find a problem: time ends&#8230; Well, for a WordPress plugin only, the KC S2M+MC one. I mean I got &#8220;Maximum execution time of 60 seconds exceeded&#8221; error, when I run a long operation (synchronizing members in Mailchimp list &#8230; <a href="http://krumch.com/2012/11/20/hack-the-maximum-execution-time-in-wordpress/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Today I find a problem: time ends&#8230; Well, for a WordPress plugin only, the <a title="Bidirectional transparent integration/synchronization/bridge of s2Member® with MailChimp®" href="http://krumch.com/2012/08/24/kc-bidirectional-integration-of-s2member-with-mailchimp/">KC S2M+MC</a> one.</p>
<p>I mean I got &#8220;Maximum execution time of 60 seconds exceeded&#8221; error, when I run a long operation (synchronizing members in Mailchimp list and the site can be very long, there was a list of 400 users to create on the site). The value in my php.ini for &#8216;max_execution_time&#8217; was set to 60, but this was not enough.</p>
<p>To extend it we have several ways:</p>
<p>1. By wp-config.php &#8211; must add a row:</p>
<pre>set_time_limit(300);</pre>
<p>It must be above “/* That’s all, stop editing! Happy blogging. */” comment. Just in case.</p>
<p>But this was not good for me &#8211; I don&#8217;t like the idea users of my plugin to touch site&#8217;s config file. Just in case&#8230;</p>
<p>2. Addition in php.ini file &#8211; here it must be:</p>
<pre>max_execution_time = 300 ;</pre>
<p>But most probably users have no access to php.ini file&#8230;</p>
<p>3. In .htaccess &#8211; the row there is:</p>
<pre>php_value max_execution_time 300</pre>
<p>Still not good &#8211; not all users can find and work with .htaccess file. Also some providers don&#8217;t allow &#8216;php_value&#8217; there. Also they run my plugin, it must cares about everything.</p>
<p>Well, what&#8230;? Did you read &#8220;<a href="http://en.wikipedia.org/wiki/The_Twelve_Chairs">The Twelve Chairs</a>&#8221; book from Ilf and Petrov? There a personage knows &#8220;four hundred comparatively honest ways of taking money away from the population&#8221;. But no one works in the case it was. So he invents 401-st :-)</p>
<p>I am not invent much, but remember that php_ini values can be changed inside the script. So here is my solution:</p>
<p>4. Inside the script:</p>
<pre>ini_set('max_execution_time', '300');</pre>
<p>Be ready for long play :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://krumch.com/2012/11/20/hack-the-maximum-execution-time-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>KC s2Member ccap drip timer</title>
		<link>http://krumch.com/2012/11/06/kc-s2member-ccap-drip-timer/</link>
		<comments>http://krumch.com/2012/11/06/kc-s2member-ccap-drip-timer/#comments</comments>
		<pubDate>Tue, 06 Nov 2012 19:56:39 +0000</pubDate>
		<dc:creator>krumch</dc:creator>
				<category><![CDATA[Products]]></category>
		<category><![CDATA[ccap]]></category>
		<category><![CDATA[ccap drip]]></category>
		<category><![CDATA[ccap timer]]></category>
		<category><![CDATA[drip]]></category>
		<category><![CDATA[drip content]]></category>
		<category><![CDATA[drip timer]]></category>
		<category><![CDATA[monthly access]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[restricted access]]></category>
		<category><![CDATA[s2m]]></category>
		<category><![CDATA[s2m conditions]]></category>
		<category><![CDATA[s2member]]></category>
		<category><![CDATA[s2Member ccap]]></category>
		<category><![CDATA[s2member conditions]]></category>
		<category><![CDATA[short code]]></category>
		<category><![CDATA[time restriction]]></category>
		<category><![CDATA[timer]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://krumch.com/?p=678</guid>
		<description><![CDATA[WordPres&#8217;s plugin s2Member® has its own &#8220;scripting language&#8221; of several &#91;&#93;-tags. One (and maybe most used) tag is &#91;s2If …&#93; &#91;/s2 If&#93;, where we can set conditionals to show or hide content, functions etc, depending of the privileges of the &#8230; <a href="http://krumch.com/2012/11/06/kc-s2member-ccap-drip-timer/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><br />
WordPres&#8217;s plugin <a href="http://www.s2member.com/2842.html" title="">s2Member</a>® has its own &#8220;scripting language&#8221; of several &#91;&#93;-tags. One (and maybe most used) tag is &#91;s2If …&#93; &#91;/s2 If&#93;, where we can set conditionals to show or hide content, functions etc, depending of the privileges of the current viewer, like this:</p>
<pre>&#91;s2If current_user_can(access_s2member_ccap_may2012)&#93;
for everyone who has ccap "may2012".
&#91;/s2 If&#93;</pre>
<p><a href="http://www.s2member.com/2842.html" title="">s2Member</a>® also has a function to drip content, but it is limited to a timestamps established based on the level registration, meaning when a member gains access to Level 1 or Level 2. This brings in limitation since the levels are not independent from each other, and Level 2 members would usually have access to level 1 content too. In addition, this would limit the number of different products you could drip to 4, since there are only 4 levels in the basic set up of <a href="http://www.s2member.com/2842.html" title="">s2Member</a>®.</p>
<p>Custom capabilities (ccap) are very powerful since they allow the site admin to assign content and protect it in various products, while using only one level. One member can then access a &#8220;general cooking class&#8221;, a &#8220;cake decorating class&#8221; and a &#8220;confectionary class&#8221; as each content can be assigned a specific ccap. The problem is that this would be an all or nothing situation, and dripping content for all those classes, at the same time, is not possible with the basic set up. So we needed a way to assign a timestamp based on the transaction (or purchase of a specific product), no matter the level.</p>
<p>This particular function will allow the admin to create a particular code that will generate a custom ccap based on the date of the transaction AND the product sold. So, without any manual work, a member might be assigned a &#8220;time&#8221; ccap which will be generated by the system. Then, this ccap can be used in a shortcode to drip the content for each course, separately, allowing the member to start the &#8220;cooking&#8221; class in September, the &#8220;cake decorating&#8221; class in October and the &#8220;confectionary&#8221; class in January of the next year.</p>
<p>The dripping is also possible based on any schedule you want, whether it is on a daily, weekly or monthly basis, or anything in between (after 3 days, after 8 days, after 12 weeks, etc.) and can also be different from one course to the other, taken at the same time.</p>
<p>This tool multiplies the features of <a href="http://www.s2member.com/2842.html" title="">s2Member</a>® to give the admin a lot more flexibility than the basic plugin function can offer.</p>
<p>Disclaimer: I am in no way associated with <a href="http://www.s2member.com/2842.html" title="">s2Member</a>®, Webshark or the development team of <a href="http://www.s2member.com/2842.html" title="">s2Member</a>®.</p>
<p>Purchase Options:<br />
Kit &#8211; installation guide, code etc. &#8211; 15 USD<br />
Kit + installation and some customization &#8211; 35 USD<br />
Kit + installation and heavy customization &#8211; 60+ USD<br />
You must <a href="http://krumch.com/blog/wp-login.php">log in or create account</a> to purchase this kit.</p>
]]></content:encoded>
			<wfw:commentRss>http://krumch.com/2012/11/06/kc-s2member-ccap-drip-timer/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>KC s2Member ccap clock timer</title>
		<link>http://krumch.com/2012/11/06/kc-s2member-ccap-clock-timer/</link>
		<comments>http://krumch.com/2012/11/06/kc-s2member-ccap-clock-timer/#comments</comments>
		<pubDate>Tue, 06 Nov 2012 17:51:37 +0000</pubDate>
		<dc:creator>krumch</dc:creator>
				<category><![CDATA[Products]]></category>
		<category><![CDATA[ccap]]></category>
		<category><![CDATA[ccap clock]]></category>
		<category><![CDATA[ccap timer]]></category>
		<category><![CDATA[clock]]></category>
		<category><![CDATA[clock timer]]></category>
		<category><![CDATA[monthly access]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[restricted access]]></category>
		<category><![CDATA[s2m]]></category>
		<category><![CDATA[s2m conditions]]></category>
		<category><![CDATA[s2member]]></category>
		<category><![CDATA[s2Member ccap]]></category>
		<category><![CDATA[s2member conditions]]></category>
		<category><![CDATA[short code]]></category>
		<category><![CDATA[time restriction]]></category>
		<category><![CDATA[timer]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://krumch.com/?p=680</guid>
		<description><![CDATA[WordPres&#8217;s plugin s2Member® has its own &#8220;scripting language&#8221; of several &#91;]-tags. One (and maybe most used) tag is &#91;s2If …] &#91;/s2If], where we can set conditionals to show or hide content, functions etc, depending of the privileges of the current &#8230; <a href="http://krumch.com/2012/11/06/kc-s2member-ccap-clock-timer/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><br />
WordPres&#8217;s plugin <a href="http://www.s2member.com/2842.html" title="">s2Member</a>® has its own &#8220;scripting language&#8221; of several &#91;]-tags. One (and maybe most used) tag is &#91;s2If …] &#91;/s2If], where we can set conditionals to show or hide content, functions etc, depending of the privileges of the current viewer, like this:</p>
<pre>&#91;s2If current_user_can(access_s2member_ccap_may2012)]
for everyone who has ccap "may2012".
&#91;/s2If]</pre>
<p>Although this is very useful and versatile, there are times when you might want to give access to multiple pieces of content that will have different ccaps (so they might be sold separately) based on when the member makes the purchase. This is currently not possible with the basic ccaps from <a href="http://www.s2member.com/2842.html" title="">s2Member</a>® as the only timestamp available is based on the level registration, meaning when a member gains access to Level 1 or Level 2, and even then, there is no way to compare the ccap to give partial access based on that timestamp.</p>
<p>Here is a scenario to illustrate what we needed. You have a monthly magazine that can be purchase every month. You set a ccap for each issue, like mag201201 (for the January issue), mag201202 (for the February issue) and so on. If a subscriber wants to purchase a single issue of the magazine, it is no problem to add the particular ccap in the Paypal button or the pro-form. However, you might want to offer a monthly subscription to the magazine where the customer will pay today, and then be granted access to all the issues AFTER TODAY. The long way would be to go in the user profile and add mag201210, mag201211, mag201212, and so on, but if you have to edit each subscriber’s profile, every month, it is not convenient at all. If you were to protect all the issues with one single ccap, like “magazine”, and use a conditional like this:</p>
<pre>&#91;s2If current_user_can(access_s2member_ccap_magazine)]
Content for everyone who has ccap "magazine".
&#91;/s2If]</pre>
<p>Then you run into another problem: the subscriber who pays in October would also be granted access to the issues from before the start of the subscription. Not logical either. So we needed a way to use the time of registration as a way to determine if one issue is accessible or not. This is how this function will work.</p>
<p>This tool will allow you to insert a specific code into the Paypal button or the pro-form that will create a custom ccap based on the time of the transaction, no matter what level it is, no matter if the user was a registered member (but not subscribed to that particular product). Then, with a shortcode or a PHP code (your choice), you will add a conditional that will return “true” if the “timestamp ccap” is before a specific date.</p>
<p>Going back to our magazine example, it means that the site owner can now sell individual issues with a standard ccap associated with it, but also allow subscribers to join at any time, and get access to the issues AFTER the registration timestamp. So if the subscriber is assigned a ccap like mag201209 (meaning he purchased the subscription in September), the particular issue can be protected with this shortcode:</p>
<pre>&#91;s2If kc_magazine_check(201209)]
for everyone who has a ccap of 201209 or before meaning they purchased the subscription in September or before.
&#91;/s2If]</pre>
<p>This is a functionality that is not offered by <a href="http://www.s2member.com/2842.html" title="">s2M</a>, and allows you more flexibility. This can be used for magazine issues, classes, workshops, samples, etc.</p>
<p>With some editing, you can create various such ccaps to suit your particular needs. You can also use the year only, the year and month, or the year, month and day if you have products that are based on another schedule than a monthly subscription. The details for editing and creating your own ccaps are included in the instructions that come with your purchase.</p>
<p>Disclaimer: I am in no way associated with <a href="http://www.s2member.com/2842.html" title="">s2Member</a>®, Webshark or the development team of <a href="http://www.s2member.com/2842.html" title="">s2Member</a>®.</p>
<p>Purchase Options:<br />
Kit &#8211; installation guide, code etc. &#8211; 15 USD<br />
Kit + installation and some customization &#8211; 35 USD<br />
Kit + installation and heavy customization &#8211; 60+ USD<br />
You must <a href="http://krumch.com/blog/wp-login.php">log in or create account</a> to purchase this kit.</p>
]]></content:encoded>
			<wfw:commentRss>http://krumch.com/2012/11/06/kc-s2member-ccap-clock-timer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New features for &#8220;KC Taxonomy List&#8221; plugin</title>
		<link>http://krumch.com/2012/10/03/new-features-for-kc-taxonomy-list-plugin/</link>
		<comments>http://krumch.com/2012/10/03/new-features-for-kc-taxonomy-list-plugin/#comments</comments>
		<pubDate>Wed, 03 Oct 2012 21:43:52 +0000</pubDate>
		<dc:creator>krumch</dc:creator>
				<category><![CDATA[Votes]]></category>
		<category><![CDATA[WordPress plugins]]></category>

		<guid isPermaLink="false">http://krumch.com/?p=510</guid>
		<description><![CDATA[Thanks for your appreciation of the &#8220;KC TaxList&#8221; plugin. To help me better understand your needs, I set up this voting system. Please consider some donation. Why this survey is paid? To ask other questions please go to this page. So, &#8230; <a href="http://krumch.com/2012/10/03/new-features-for-kc-taxonomy-list-plugin/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Thanks for your appreciation of the <a href="http://krumch.com/2012/09/27/kc-taxonomy-list//">&#8220;KC TaxList&#8221; plugin</a>.</p>
<p>To help me better understand your needs, I set up this voting system. Please consider some donation.</p>
<p><a title="Why payd surveys?" href="http://krumch.com/2012/08/20/why-payd-surveys/">Why this survey is paid?</a></p>
<p>To ask other questions please go to <a title="Contacts" href="http://krumch.com/contacts/">this page</a>.</p>
<p>So, which feature do you need first:</p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" name="vote"><input type="hidden" name="cmd" value="_s-xclick" /><input type="hidden" name="hosted_button_id" value="DVQP57W3VRBPL" /><input type="hidden" name="on0" value="Vote for KC TaxList" /><input type="radio" name="os0" value="To create templates by 'template editor'." />To create templates by &#8220;template editor&#8221;. (0)</p>
<p><input type="radio" name="os0" value="To create templates by wizard." /> To create templates by wizard. (0)</p>
<p><input type="radio" name="os0" value="To create need short code and function call by wizard." /> To create the necessary short code and function call by wizard. (0)</p>
<p><input id="other" type="radio" checked="checked" name="os0" value="Other" /> Other: <input style="width: 100%;" type="text" onfocus="document.getElementById('other').checked=1" onchange="document.getElementById('other').value=this.value" /></p>
<div style="text-align: center;"><input type="image" alt="PayPal - The safer, easier way to pay online!" name="submit" src="http://krumch.com/images/btn_vote.gif" /> <img alt="" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1" border="0" /></div>
</form>
<p>Thanks, your vote is appreciated.</p>
]]></content:encoded>
			<wfw:commentRss>http://krumch.com/2012/10/03/new-features-for-kc-taxonomy-list-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>KC Taxonomy List</title>
		<link>http://krumch.com/2012/09/27/kc-taxonomy-list/</link>
		<comments>http://krumch.com/2012/09/27/kc-taxonomy-list/#comments</comments>
		<pubDate>Thu, 27 Sep 2012 18:30:23 +0000</pubDate>
		<dc:creator>krumch</dc:creator>
				<category><![CDATA[Products]]></category>
		<category><![CDATA[WordPress plugins]]></category>
		<category><![CDATA[custom]]></category>
		<category><![CDATA[custom taxonomy]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[page]]></category>
		<category><![CDATA[PHP function]]></category>
		<category><![CDATA[post]]></category>
		<category><![CDATA[post selection]]></category>
		<category><![CDATA[post taxonomy]]></category>
		<category><![CDATA[result]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[search results]]></category>
		<category><![CDATA[short code]]></category>
		<category><![CDATA[taxonomy]]></category>
		<category><![CDATA[taxonomy list]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[templated list]]></category>
		<category><![CDATA[unlimited]]></category>
		<category><![CDATA[widget]]></category>
		<category><![CDATA[widgets]]></category>

		<guid isPermaLink="false">http://krumch.com/?p=514</guid>
		<description><![CDATA[This WordPress plugin (short name &#8211; &#8220;KC TaxList&#8221;) creates custom taxonomy lists (search results by taxonomies and tags). It allows an unlimited number of such custom lists on single posts/pages. It displays the results by &#8220;short code&#8221; or PHP function, so &#8230; <a href="http://krumch.com/2012/09/27/kc-taxonomy-list/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>This WordPress plugin (short name &#8211; &#8220;KC TaxList&#8221;) creates custom taxonomy lists (search results by taxonomies and tags). It allows an unlimited number of such custom lists on single posts/pages. It displays the results by &#8220;short code&#8221; or PHP function, so it can be used anywhere, in pages and widgets.</p>
<table style="width: 100%;" border="0">
<tbody>
<tr>
<td style="width: 20px;"></td>
<td>
<ol>
<li><a href="#Description">Description</a></li>
<li><a href="#Installation">Installation</a></li>
<li><a href="#FAQ">FAQ</a></li>
<li><a href="#Usage">Usage</a></li>
<li><a href="#DOWNLOAD">Download</a></li>
</ol>
</td>
<td style="width: 20px;"></td>
<td>Price: 15 USD</p>
<p>You must <a href="http://krumch.com/blog/wp-login.php">log in or create account</a> to purchase this plugin.<br />
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p><a name="Description"></a><span style="font-size: x-large;">Description</span></p>
<p>You can specify the search terms by taxonomies and tags. It allow several taxonomies and multiple tags to be used in one search. You can use it both as WP shortcode or PHP function. It generates HTML code. You can place several short codes (or use function several times; or both functions and shorcodes) in a single post/page/template/widget/function.</p>
<p>Actually, except &#8220;template&#8221;, all the parameters are the same as in &#8220;standard&#8221; taxonomy &#8220;WP query&#8221;, so more info can find at <a href="http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters">WordPress docs</a>.</p>
<p>Taxonomies are not easy matter, so they can be a problem. Got problems? READ the documentation carefully. Still have problems? Read the documentation CAREFULLY&#8230; :-)</p>
<p>&nbsp;</p>
<p><a name="Installation"></a></p>
<p><span style="font-size: x-large;">Installation</span></p>
<p>Nothing special, just a generic installation. No settings needed. In admin area (adds new row &#8220;Settings-&gt; KC TaxList&#8221;) you will find just usage instructions.</p>
<p>&nbsp;</p>
<p><a name="FAQ"></a></p>
<p><span style="font-size: x-large;">FAQ</span></p>
<p>Ask me, I will answer.</p>
<p>&nbsp;</p>
<p><a name="Usage"></a></p>
<p>&nbsp;</p>
<p><span style="font-size: x-large;">Usage</span></p>
<p><strong>Templates</strong><br />
You must create at least one template for this plugin. This is a usual template for your theme (and with theme&#8217;s settings, if needs), PHP file. It must contain only the &#8220;post loop&#8221; (see example). Templates must be in the directory of the plugin. <a title="Contacts" href="http://krumch.com/contacts/">Ask me</a> for custom templates (usually 10-50 USD), if necessary.</p>
<p><strong>Functions</strong><br />
Can be used in themes and plugins.</p>
<p>(HTML)string kc_taxonomylist($options = array(&#8216;template&#8217; =&gt; &#8216;template-1.php&#8217;, &#8216;posts_per_page&#8217; =&gt; &#8216;INTEGER&#8217;, &#8216;nopaging&#8217; =&gt; false, &#8216;relation&#8217; =&gt; &#8216;AND&#8217;, &#8216;taxonomy1&#8242; =&gt; &#8216;taxonomy1&#8242;, &#8216;field1&#8242; =&gt; &#8216;slug&#8217;, &#8216;terms1&#8242; =&gt; &#8216;terms1&#8242;, &#8216;include_children1&#8242; =&gt; &#8217;1&#8242;, &#8216;operator1&#8242; =&gt; &#8216;IN&#8217;));</p>
<p><strong>Short code</strong><br />
Just place the shortcode anywhere in page or post.</p>
<p>[kc_taxonomylist template="template-1.php" posts_per_page="INTEGER" nopaging=0 relation="AND" taxonomy1="taxonomy1" field1=slug terms1=terms1 include_children1=1 operator1=IN]</p>
<p><strong>Parameters</strong></p>
<p><em>template</em> (string) &#8211; the filename of needed template.</p>
<p><em>posts_per_page</em> (int) &#8211; number of post to show per page. Use &#8216;posts_per_page&#8217;='-1&#8242; to show all posts. Note if the query is in a feed, wordpress overwrites this parameter with the stored &#8216;posts_per_rss&#8217; option. No default value, not used if missing.<br />
<em>nopaging</em> (boolean) &#8211; 0 or 1 &#8211; show all posts or use pagination. Default value is &#8216;false&#8217; (0), use paging. </p>
<p><em>relation</em> (string) -&#8217;AND&#8217; (default) or &#8216;OR&#8217; &#8211; Shortcode/function takes an array of tax query arguments arrays (it takes an array of arrays). This construction allows you to query multiple taxonomies by using the relation parameter to describe the boolean relationship between the taxonomy queries.</p>
<p><em>taxonomy</em>1 (string) &#8211; Taxonomy slug.</p>
<p><em>field1</em> (string) &#8211; Select taxonomy term by &#8216;id&#8217; or &#8216;slug&#8217; (default).</p>
<p><em>terms1</em> (int/string/array) &#8211; Taxonomy term(s). If it is an integer, this is the term ID. If string &#8211; slug. If it is an array, put a string of IDs or slugs with a coma as a delimiter (&#8220;term1,term2,term3&#8230;&#8221;).</p>
<p><em>include_children1</em> (boolean) &#8211; 0 or 1 &#8211; Whether or not to include children for the hierarchical taxonomies. Defaults to true (1).</p>
<p><em>operator1</em> (string) &#8211; Operator to test. Possible values are &#8216;IN&#8217; (default), &#8216;NOT IN&#8217; and &#8216;AND&#8217;.</p>
<p>Supports <em>consecutive taxonomyN-fieldN-termsN-include_childrenN-operatorN</em> sets (N = 1&#8230;1000). If <em>taxonomyN</em> or <em>termsN</em> is missing (zero-string), the set is omitted.</p>
<p><a name="DOWNLOAD"></a></p>
<p>&nbsp;</p>
<p><span style="font-size: x-large;">Download</span></p>
<table style="text-align: left; width: 100%;" border="0" cellspacing="2" cellpadding="2">
<tbody>
<tr>
<td style="white-space: nowrap; width: 20px;"></td>
<td style="white-space: nowrap;">Price: 15 USD</p>
<p>You must <a href="http://krumch.com/blog/wp-login.php">log in or create account</a> to purchase this plugin.<br />
</td>
<td style="white-space: nowrap; width: 80%;"></td>
<td style="white-space: nowrap; vertical-align: middle;"></td>
<td style="white-space: nowrap; width: 20px;"></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://krumch.com/2012/09/27/kc-taxonomy-list/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
