<?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>Damian Gostomski &#124; Freelance Web Development</title>
	<atom:link href="http://gostomski.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://gostomski.co.uk</link>
	<description></description>
	<lastBuildDate>Mon, 14 May 2012 20:39:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>WooCommerce passes 150,000&#160;downloads</title>
		<link>http://gostomski.co.uk/2012/05/woocommerce-passes-150000-downloads/</link>
		<comments>http://gostomski.co.uk/2012/05/woocommerce-passes-150000-downloads/#comments</comments>
		<pubDate>Mon, 14 May 2012 20:39:10 +0000</pubDate>
		<dc:creator>Damian Gostomski</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://gostomski.co.uk/?p=357</guid>
		<description><![CDATA[Congratuations to WooCommerce on passing 150,000 downloads in the WordPress plugin repository. I&#8217;ve used WooCommerce on several E-Commerce websites and it&#8217;s the best solution for WordPress based sites that I&#8217;ve come across so&#160;far.]]></description>
			<content:encoded><![CDATA[<p>Congratuations to <a>WooCommerce</a> on passing 150,000 downloads in the WordPress plugin repository. I&#8217;ve used WooCommerce on several E-Commerce websites and it&#8217;s the best solution for WordPress based sites that I&#8217;ve come across so far.</p>
]]></content:encoded>
			<wfw:commentRss>http://gostomski.co.uk/2012/05/woocommerce-passes-150000-downloads/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XKCD&#160;Kickstarter</title>
		<link>http://gostomski.co.uk/2012/05/xkcd-kickstarter/</link>
		<comments>http://gostomski.co.uk/2012/05/xkcd-kickstarter/#comments</comments>
		<pubDate>Mon, 14 May 2012 08:09:51 +0000</pubDate>
		<dc:creator>Damian Gostomski</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://gostomski.co.uk/?p=353</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><img src="http://imgs.xkcd.com/comics/kickstarter.png" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://gostomski.co.uk/2012/05/xkcd-kickstarter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First thoughts on&#160;FuelPHP</title>
		<link>http://gostomski.co.uk/2012/05/first-thoughts-on-fuelphp/</link>
		<comments>http://gostomski.co.uk/2012/05/first-thoughts-on-fuelphp/#comments</comments>
		<pubDate>Sun, 13 May 2012 22:16:45 +0000</pubDate>
		<dc:creator>Damian Gostomski</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[FuelPHP]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://gostomski.co.uk/?p=350</guid>
		<description><![CDATA[I&#8217;ve been using CodeIgniter for about 4 years now, although not so much lately (I&#8217;ve been doing a lot more WordPress development recently). After my break from PHP frameworks, I decided to take a look at the options for a side project I&#8217;m starting and decided to give FuelPHP a go. Although I can&#8217;t give a comprehensive review of it just yet, first impressions are very positive: It seems very well thought through and simplifies some of the common stumbling blocks It&#8217;s very feature rich, but for a framework that&#8217;s &#8220;based on the best ideas of other frameworks with a&#8230;]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using <a href="http://codeigniter.com/" target="_blank">CodeIgniter</a> for about 4 years now, although not so much lately (I&#8217;ve been doing a lot more <a href="http://wordpress.org/" target="_blank">WordPress</a> development recently). After my break from PHP frameworks, I decided to take a look at the options for a side project I&#8217;m starting and decided to give <a href="http://fuelphp.com/" target="_blank">FuelPHP</a> a go.</p>
<p>Although I can&#8217;t give a comprehensive review of it just yet, first impressions are very positive:</p>
<ul>
<li><strong>It seems very well thought through</strong> and simplifies some of the common stumbling blocks</li>
<li><strong>It&#8217;s very feature rich</strong>, but for a framework that&#8217;s &#8220;based on the best ideas of other frameworks with a fresh start&#8221;</li>
<li><strong>Very easy to pick up</strong>. I&#8217;ve not yet looked into some of the more complex parts such as the ORM, but what I&#8217;ve seen so far is very intuitive and standardised</li>
</ul>
<p>Hopefully more FuelPHP stuff to come in the future!</p>
]]></content:encoded>
			<wfw:commentRss>http://gostomski.co.uk/2012/05/first-thoughts-on-fuelphp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pull request&#160;etiquette</title>
		<link>http://gostomski.co.uk/2012/03/pull-request-etiquette/</link>
		<comments>http://gostomski.co.uk/2012/03/pull-request-etiquette/#comments</comments>
		<pubDate>Sun, 18 Mar 2012 12:29:47 +0000</pubDate>
		<dc:creator>Damian Gostomski</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://gostomski.co.uk/?p=337</guid>
		<description><![CDATA[Lately, I&#8217;ve been trying to get more involved in the communities areound the open source software I use on a daily basis. Although this can take many forms, including contributing code, helping out in support forums, writing documentation, testing and more, I&#8217;ll be focusing on the first of these. To cut a long story short, I&#8217;d forked the project on GitHub, made my modifications and sent a pull request. And then I waited&#8230; &#8230; And waited some more&#8230; &#8230; Nothing. I was annoyed This was the first time I&#8217;d attempted to contribute to the core of an open source project,&#8230;]]></description>
			<content:encoded><![CDATA[<p>Lately, I&#8217;ve been trying to get more involved in the communities areound the open source software I use on a daily basis. Although this can take many forms, including contributing code, helping out in support forums, writing documentation, testing and more, I&#8217;ll be focusing on the first of these.</p>
<p>To cut a long story short, I&#8217;d forked the project on GitHub, made my modifications and sent a pull request. And then I waited&#8230;</p>
<p>&#8230; And waited some more&#8230;</p>
<p>&#8230; Nothing.</p>
<hr /><h2>I was annoyed</h2>
<p>This was the first time I&#8217;d attempted to contribute to the core of an open source project, and my first impression wasn&#8217;t all that great. It had even put me off further attempting to contribute to that project, something I&#8217;d diiscussed in their feature request forums.</p>
<hr /><h2>The 3 commandments</h2>
<p>To prevent similar experience to this, I propose the following &#8220;commandments&#8221; to people managing open source projects, especially with contributions in the form of pull requests.</p>
<ol>
<li><strong>Reply, fast &#8212; </strong>In this day and age, everyone expects everything instantly. Although this may be an unrealistic expectation, an initial response to the pull request, even if just an acknowledgement of it, should happen within a few days.<strong><br />
</strong></li>
<li><strong>Terminate early &#8212; </strong>If you don&#8217;t appprove of a pull request, it&#8217;s much better to decline it that it is to ignore it. I would be much happier knowing my request was declined than being ignored.<strong><br />
</strong></li>
<li><strong>Give feedback &#8212; </strong>Instead of jjust declining it, you should also provide a reason. This way, the contributor will at least have some direction if they choose to try again. In my pull request, I&#8217;d actually anticipated some of their reasons for declining it, and suggested alternative implementations.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://gostomski.co.uk/2012/03/pull-request-etiquette/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QR Code Generator&#160;Bookmarklet</title>
		<link>http://gostomski.co.uk/2012/02/qr-code-generator-bookmarklet/</link>
		<comments>http://gostomski.co.uk/2012/02/qr-code-generator-bookmarklet/#comments</comments>
		<pubDate>Wed, 29 Feb 2012 19:00:04 +0000</pubDate>
		<dc:creator>Damian Gostomski</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://gostomski.co.uk/?p=303</guid>
		<description><![CDATA[http://code.google.com/p/qrbookmarklet/]]></description>
			<content:encoded><![CDATA[<p>If you ever need to generate a QR code for the current webpage, there is a <a href="http://code.google.com/p/qrbookmarklet/" target="_blank">very handy bookmarklet</a> on Google Code.</p>
<p>For me, the main use for this, isn&#8217;t to create a QR code to share with others, but for a convenient way for me to open the current page on either my iPhone or iPad &#8212; Just scan and it&#8217;s done.</p>
<p><a href="http://code.google.com/p/qrbookmarklet/" target="_blank">View on Google Code</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://gostomski.co.uk/2012/02/qr-code-generator-bookmarklet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding password field to Gravity&#160;Forms</title>
		<link>http://gostomski.co.uk/2012/02/adding-password-field-to-gravity-forms/</link>
		<comments>http://gostomski.co.uk/2012/02/adding-password-field-to-gravity-forms/#comments</comments>
		<pubDate>Tue, 28 Feb 2012 19:30:24 +0000</pubDate>
		<dc:creator>Damian Gostomski</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Gravity Forms]]></category>

		<guid isPermaLink="false">http://gostomski.co.uk/?p=306</guid>
		<description><![CDATA[By default, Gravity Forms doesn&#8217;t include a password field in the various field types you can use, but it does have that functionality built in. All you have to do, is add the following code snippet to activate it. That&#8217;s it &#8211; The Password field type will now appear under advanced&#160;fields.]]></description>
			<content:encoded><![CDATA[<p>By default, Gravity Forms doesn&#8217;t include a password field in the various field types you can use, but it does have that functionality built in. All you have to do, is add the following code snippet to activate it.</p>
<pre class="brush: php; title: ; notranslate">
add_action('gform_enable_password_field', '__return_true');
</pre>
<p>That&#8217;s it &#8211; The Password field type will now appear under <em>advanced fields</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://gostomski.co.uk/2012/02/adding-password-field-to-gravity-forms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Pricing Formula &#8211; Seth&#160;Godin</title>
		<link>http://gostomski.co.uk/2012/02/seth-godin-pricing-formula/</link>
		<comments>http://gostomski.co.uk/2012/02/seth-godin-pricing-formula/#comments</comments>
		<pubDate>Tue, 28 Feb 2012 11:15:27 +0000</pubDate>
		<dc:creator>Damian Gostomski</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://gostomski.co.uk/?p=290</guid>
		<description><![CDATA[Pricing your product is actually simple, as long as you consider it from the buyer&#8217;s point of view. How much it costs you to make something is irrelevant. They don&#8217;t care (of course, you can&#8217;t price something at a loss and hope to stay in business for long). Seth Godin It&#8217;s so simple, and yet most people overlook it! Read the full article for the 2 main factors to&#160;consider.]]></description>
			<content:encoded><![CDATA[<blockquote><p>Pricing your product is actually simple, as long as you consider it from the buyer&#8217;s point of view. How much it costs you to make something is irrelevant. They don&#8217;t care (of course, you can&#8217;t price something at a loss and hope to stay in business for long).<br />
<cite>Seth Godin</cite></p></blockquote>
<p>It&#8217;s so simple, and yet most people overlook it! <a href="http://sethgodin.typepad.com/seths_blog/2012/01/the-pricing-formula-ss.html" target="_blank">Read the full article</a> for the 2 main factors to consider.</p>
]]></content:encoded>
			<wfw:commentRss>http://gostomski.co.uk/2012/02/seth-godin-pricing-formula/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Plugin:&#160;Imposter</title>
		<link>http://gostomski.co.uk/2012/02/wordpress-plugin-imposter/</link>
		<comments>http://gostomski.co.uk/2012/02/wordpress-plugin-imposter/#comments</comments>
		<pubDate>Mon, 27 Feb 2012 23:01:16 +0000</pubDate>
		<dc:creator>Damian Gostomski</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://gostomski.co.uk/?p=298</guid>
		<description><![CDATA[I&#8217;ve just released my first WordPress plugin &#8212; Imposter. This allows website administrators to take on the role of other users, which is useful for development, testing and troubleshooting purposes. When they&#8217;re done, they just logout to revert to being themselves. You can read more about it on my plugin&#160;page.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just released my first WordPress plugin &#8212; <a href="http://wordpress.org/extend/plugins/imposter/" target="_blank">Imposter</a>.</p>
<p>This allows website administrators to take on the role of other users, which is useful for development, testing and troubleshooting purposes. When they&#8217;re done, they just logout to revert to being themselves.</p>
<p>You can read more about it on <a title="WordPress Imposter Plugin" href="http://gostomski.co.uk/code/wordpress-imposter-plugin/">my plugin page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://gostomski.co.uk/2012/02/wordpress-plugin-imposter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Webmaster tools prompts to update&#160;software</title>
		<link>http://gostomski.co.uk/2012/02/google-webmaster-tools-prompts-to-update-software/</link>
		<comments>http://gostomski.co.uk/2012/02/google-webmaster-tools-prompts-to-update-software/#comments</comments>
		<pubDate>Sun, 26 Feb 2012 22:30:14 +0000</pubDate>
		<dc:creator>Damian Gostomski</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://gostomski.co.uk/?p=282</guid>
		<description><![CDATA[Just logged into my Google WebMaster Tools account for the first time in what seems forever, and noticed a very nice touch. It prompts you to update your CMS if there&#8217;s an update available (in my case, I&#8217;d not updated to WordPress 3.3.1 in 3 weeks!). This is a seemingly small detail, but it&#8217;s often the small details that make a product or service a success or&#160;failure.]]></description>
			<content:encoded><![CDATA[<p>Just logged into my Google WebMaster Tools account for the first time in what seems forever, and noticed a very nice touch. It prompts you to update your CMS if there&#8217;s an update available (in my case, I&#8217;d not updated to WordPress 3.3.1 in 3 weeks!).</p>
<p><img class="wp-image-283 alignnone" title="google-webmaster-tools-software-update" src="http://gostomski.co.uk/wp-content/uploads/2012/02/google-webmaster-tools-software-update.jpg" alt="" width="614" height="256" /></p>
<p>This is a seemingly small detail, but it&#8217;s often the small details that make a product or service a success or failure.</p>
]]></content:encoded>
			<wfw:commentRss>http://gostomski.co.uk/2012/02/google-webmaster-tools-prompts-to-update-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modify the JigoShop Cart&#160;widget</title>
		<link>http://gostomski.co.uk/2012/02/wordpress-jigoshop-cart-widget/</link>
		<comments>http://gostomski.co.uk/2012/02/wordpress-jigoshop-cart-widget/#comments</comments>
		<pubDate>Sat, 25 Feb 2012 21:25:14 +0000</pubDate>
		<dc:creator>Damian Gostomski</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[E-Commerce]]></category>
		<category><![CDATA[JigoShop]]></category>
		<category><![CDATA[Widget]]></category>

		<guid isPermaLink="false">http://gostomski.co.uk/?p=244</guid>
		<description><![CDATA[JigoShop is a great E-Commerce system built on top of WordPress. As part of a site I was working on, I needed to display the contents of the basket in the sidebar &#8212; A common need for an E-Commerce site. So I went and added the widget, which is shown on the right, however I needed to tweak it slightly. Most of it could be done via CSS, but I also needed to change the text of the buttons, however there was no way of changing this when adding the widget. I had a look at the source code for&#8230;]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-246" title="The default JigoShop cart widget" src="http://gostomski.co.uk/wp-content/uploads/2012/02/wordpress-jigoshop-default-cart.jpg" alt="" width="191" height="196" /></p>
<p>JigoShop is a great E-Commerce system built on top of WordPress. As part of a site I was working on, I needed to display the contents of the basket in the sidebar &#8212; A common need for an E-Commerce site. So I went and added the widget, which is shown on the right, however I needed to tweak it slightly. Most of it could be done via CSS, but I also needed to change the text of the buttons, however there was no way of changing this when adding the widget.</p>
<p>I had a look at the source code for the widget, and sure enough, the text for the buttons was hard coded as can be seen in the following code snippet:</p>
<pre class="brush: php; title: ; notranslate">
// Print view cart &amp; checkout buttons
echo '&lt;p class=&quot;buttons&quot;&gt;';
echo '&lt;a href=&quot;' . esc_attr( jigoshop_cart::get_cart_url() ) . '&quot; class=&quot;button&quot;&gt;' . __( 'View Cart &amp;rarr;', 'jigoshop' ) . '&lt;/a&gt;';
echo '&lt;a href=&quot;' . esc_attr( jigoshop_cart::get_checkout_url() ) . '&quot; class=&quot;button checkout&quot;&gt;' . __( 'Checkout &amp;rarr;', 'jigoshop' ) . '&lt;/a&gt;';
echo '&lt;/p&gt;';
</pre>
<hr /><h2>Using the gettext filter</h2>
<p>The text is passed through the translation function, so it&#8217;s possible to hook into this, and modify the text this way. The problem with this, is that every bit of text within the theme and plugin is passed through (<em>should be passed through</em>) this function, which will cause additional overhead.</p>
<p>The following code snippet shows how this could be acheived:</p>
<pre class="brush: php; title: ; notranslate">
function djg_jigoshop_custom_text($translated, $text, $domain) {
	if($domain != 'jigoshop') return $translated;

	switch($text) {
		case 'View Cart &amp;rarr;':
			return 'Edit';
		case 'Checkout &amp;rarr;':
			return 'Proceed to Checkout';
		default:
			return $translated;
	}
}
add_filter('gettext', 'djg_jigoshop_custom_text', 10, 3);
</pre>
<p>The first thing I do, is check if the supplied text is part of JigoShop, as I don&#8217;t want to modify anything else. If it is, I check if it&#8217;s the button text I&#8217;m after, and if so, return my alternate text, otherwise, return the suppplied text.</p>
<p>Although this solution works, it&#8217;s not very ideal, as if I wanted to make some other non text changes, this wouldn&#8217;t work.</p>
<hr /><h2>Overriding the cart widget</h2>
<p>If you need more control over the output of the cart widget, you can create a custom widget and use that instead. The following code will:</p>
<ol>
<li>Create a custom widget, which extends the default one</li>
<li>Override the widget method, which allows us to change the output</li>
<li>Unregister the default cart widget, as we no longer need this</li>
</ol>
<pre class="brush: php; title: ; notranslate">
function djg_jigoshop_register_widgets() {
	unregister_widget('Jigoshop_Widget_Cart');
	register_widget('DJG_Jigoshop_Widget_Cart');
}
add_action('widgets_init', 'djg_jigoshop_register_widgets');

class DJG_Jigoshop_Widget_Cart extends Jigoshop_Widget_Cart {
	public function widget( $args, $instance ) {

		// Hide widget if page is the cart
		if ( is_cart() )
			return false;

		extract( $args );

		// Set the widget title
		$title = apply_filters(
			'widget_title',
			( $instance['title'] ) ? $instance['title'] : __( 'Cart', 'jigoshop' ),
			$instance,
			$this-&gt;id_base
		);

		// Print the widget wrapper &amp; title
		echo $before_widget;
		echo $before_title . $title . $after_title;

		// Get the contents of the cart
		$cart_contents = jigoshop_cart::$cart_contents;

		// If there are items in the cart print out a list of products
		if ( ! empty( $cart_contents ) ) {

			// Open the list
			echo '&lt;ul class=&quot;cart_list&quot;&gt;';

			foreach ( $cart_contents as $key =&gt; $value ) {

				// Get product instance
				$_product = $value['data'];

				if ( $_product-&gt;exists() &amp;&amp; $value['quantity'] &gt; 0 ) {
				echo '&lt;li&gt;';
					// Print the product image &amp; title with a link to the permalink
					echo '&lt;a href=&quot;' . esc_attr( get_permalink( $_product-&gt;id ) ) . '&quot; title=&quot;' . esc_attr( $_product-&gt;get_title() ) . '&quot;&gt;';

					// Print the product thumbnail image if exists else display placeholder
					echo (has_post_thumbnail( $_product-&gt;id ) )
							? get_the_post_thumbnail( $_product-&gt;id, 'shop_tiny' )
							: jigoshop_get_image_placeholder( 'shop_tiny' );

					// Print the product title
					echo '&lt;span class=&quot;js_widget_product_title&quot;&gt;' . $_product-&gt;get_title() . '&lt;/span&gt;';
					echo '&lt;/a&gt;';

					// Print the quantity &amp; price per product
					echo '&lt;span class=&quot;js_widget_product_price&quot;&gt;' . $value['quantity'].' &amp;times; '. $_product-&gt;get_price_html() . '&lt;/span&gt;';
				echo '&lt;/li&gt;';
				}
			}

			echo '&lt;/ul&gt;'; // Close the list

			// Print the cart total
			echo '&lt;p class=&quot;total&quot;&gt;&lt;strong&gt;';
			echo __( ( ( get_option( 'jigoshop_prices_include_tax') == 'yes' ) ? 'Total' : 'Subtotal' ), 'jigoshop' );
			echo ':&lt;/strong&gt; ' . jigoshop_cart::get_cart_total();
			echo '&lt;/p&gt;';

			do_action( 'jigoshop_widget_cart_before_buttons' );

			// Print view cart &amp; checkout buttons
			echo '&lt;p class=&quot;buttons&quot;&gt;';
			echo '&lt;a href=&quot;' . esc_attr( jigoshop_cart::get_cart_url() ) . '&quot; class=&quot;button&quot;&gt;' . __( 'Edit', 'jigoshop' ) . '&lt;/a&gt;';
			echo '&lt;a href=&quot;' . esc_attr( jigoshop_cart::get_checkout_url() ) . '&quot; class=&quot;button checkout&quot;&gt;' . __( 'Proceed to Checkout', 'jigoshop' ) . '&lt;/a&gt;';
			echo '&lt;/p&gt;';

		} else {
			echo '&lt;span class=&quot;empty&quot;&gt;' . __( 'No products in the cart.', 'jigoshop' ) . '&lt;/span&gt;';
		}

		// Print closing widget wrapper
		echo $after_widget;
	}
}
</pre>
<p>By extending the default widget, I can utilise most of the existing logic, and just copy the widget method, making the required modifications.</p>
<hr /><h2>Making it user friendly</h2>
<p><img class="alignleft size-full wp-image-251" title="Custom JigoShop Cart" src="http://gostomski.co.uk/wp-content/uploads/2012/02/wordpress-jigoshop-custom-cart.jpg" alt="" width="270" height="253" /></p>
<p>Although both of the above methods work, they&#8217;re not the sort of thing a typical end user will be able to do &#8212; They need an easy way of controlling this via the admin interface.</p>
<p>I&#8217;ve <a href="https://github.com/damiangostomski/jigoshop/blob/dev/widgets/cart.php" target="_blank">updated the original cart widget</a> to provide the ability to set the button text when adding the widget and have submitted a pull request to the JigoShop authors, so hopefully this will get integrated in the future. If not, I&#8217;ll package it up as a plugin, so anyone can install it and have more control over the cart widget.</p>
]]></content:encoded>
			<wfw:commentRss>http://gostomski.co.uk/2012/02/wordpress-jigoshop-cart-widget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

