{"id":3722,"date":"2016-08-17T11:52:56","date_gmt":"2016-08-17T16:52:56","guid":{"rendered":"http:\/\/www.lonhosford.com\/lonblog\/?p=3722"},"modified":"2018-05-18T19:01:34","modified_gmt":"2018-05-19T00:01:34","slug":"wordpress-plugin-stripe","status":"publish","type":"post","link":"https:\/\/www.lonhosford.com\/lonblog\/2016\/08\/17\/wordpress-plugin-stripe\/","title":{"rendered":"Why I Wrote My First WordPress Plugin WP Stripe Kit?"},"content":{"rendered":"<figure id=\"attachment_3724\" aria-describedby=\"caption-attachment-3724\" style=\"width: 256px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/www.lonhosford.com\/wp-stripe-kit-lite\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3724 size-full\" src=\"https:\/\/www.lonhosford.com\/lonblog\/wp-content\/uploads\/2016\/08\/icon-256x256.png\" alt=\"WP Stripe Kit\" width=\"256\" height=\"256\" srcset=\"https:\/\/www.lonhosford.com\/lonblog\/wp-content\/uploads\/2016\/08\/icon-256x256.png 256w, https:\/\/www.lonhosford.com\/lonblog\/wp-content\/uploads\/2016\/08\/icon-256x256-150x150.png 150w\" sizes=\"auto, (max-width: 256px) 100vw, 256px\" \/><\/a><figcaption id=\"caption-attachment-3724\" class=\"wp-caption-text\">WP Stripe Kit Plugin<\/figcaption><\/figure>\n<p>You never know what experiences will lead you down a path. This one lead me to develop my first software product: the\u00a0<strong>WP Stripe Kit\u00a0Lite<\/strong>\u00a0Wordpress plugin and I had no intention of ever writing one.<\/p>\n<p><strong>Bad Code and Bad Support Spells Trouble<\/strong><br \/>\nI was working with a client recently who wanted to integrate the\u00a0<a title=\"Stripe Payment Platform\" href=\"http:\/\/www.stripe.com\/\" target=\"_blank\" rel=\"noopener\">Stripe payment platform<\/a>\u00a0into their WordPress\u00a0website. What they experienced was\u00a0<em>costly\u00a0trouble<\/em>.<\/p>\n<p>In locating help they found me from my\u00a0<a title=\"Stripe PHP Developer Courses\" href=\"http:\/\/webskillsbootcamp.teachable.com\/\" target=\"_blank\" rel=\"noopener\">Stripe PHP Developer Courses<\/a>.<\/p>\n<p>Initially their requirement appeared to be a simple item product purchase like an eBook and a monthly subscription to their printed newsletter.<\/p>\n<p>They already had selected a few plugins available at the\u00a0Wordpress\u00a0plugins website. For most plugins they had to purchase\u00a0the &#8220;pro&#8221; version to get the features they wanted. Often this involved uninstalling and reinstalling.<\/p>\n<p>Plugin\u00a0after plugin they tried created either erratic results, you know\u00a0working and then not working, or they broke their WordPress theme, a theme that had a high user satisfaction record in the marketplace.<\/p>\n<p>After analyzing each plugin I found bad programming practices as the cause for the problems. In fact, some of the plugin support pages admitted possible conflicts with other plugins and themes. Image that!<\/p>\n<p>And it gets worse, some plugin developers were nowhere to be found getting back on support questions and often blaming their own users.\u00a0<em>I even sent the them code fixes they needed to implement to make their plugin more stable.<\/em><\/p>\n<p><strong>The Truth Will Set You Free<\/strong><br \/>\nOften a you need to report the truth to a client and risk ending the engagement need.<\/p>\n<p>Unfortunately I had to report to the client all the plugins they tried would not work with their WordPress site, a site they already put lots of hours into setting up.<\/p>\n<p>At that point the engagement changed from helping them fix broken software to finding a solution. As it turned out by listening to their needs\u00a0a more robust ecommerce plugin was needed and then they\u00a0found one, installed it and tested it. Even it had a problem, but fortunately the plugin developer fixed it and provided fast support.<\/p>\n<p><strong>A Better Mouse Trap?<\/strong><br \/>\nAs I was working on the engagement I learned how WordPress plugins were built. I thought I should create a plugin like all those that had problems but with better software programming practices.<\/p>\n<p>It started out as a learning exercise and quickly grew into a product.<\/p>\n<p>I got intoxicated with the plugin development process and ended up with the\u00a0<strong>WP Stripe Kit\u00a0Lite<\/strong>\u00a0plugin. It is open source and free and available on the\u00a0<a title=\"WP Stripe Kit Lite at WordPress.org\" href=\"https:\/\/wordpress.org\/plugins\/wp-stripe-kit-lite\/\" target=\"_blank\" rel=\"noopener\">WordPress plugin<\/a>\u00a0site and at\u00a0<a title=\"WP Stripe Kite Lite at Lon Hosford.com\" href=\"https:\/\/www.lonhosford.com\/wp-stripe-kit-lite\" target=\"_blank\" rel=\"noopener\">my website<\/a>.<\/p>\n<figure id=\"attachment_3728\" aria-describedby=\"caption-attachment-3728\" style=\"width: 840px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3728 size-large\" src=\"https:\/\/www.lonhosford.com\/lonblog\/wp-content\/uploads\/2016\/08\/screenshot-3-1024x579.png\" alt=\"WP Stripe Kit Lite Order Flow\" width=\"840\" height=\"475\" srcset=\"https:\/\/www.lonhosford.com\/lonblog\/wp-content\/uploads\/2016\/08\/screenshot-3-1024x579.png 1024w, https:\/\/www.lonhosford.com\/lonblog\/wp-content\/uploads\/2016\/08\/screenshot-3-300x170.png 300w, https:\/\/www.lonhosford.com\/lonblog\/wp-content\/uploads\/2016\/08\/screenshot-3-768x434.png 768w, https:\/\/www.lonhosford.com\/lonblog\/wp-content\/uploads\/2016\/08\/screenshot-3-1200x679.png 1200w, https:\/\/www.lonhosford.com\/lonblog\/wp-content\/uploads\/2016\/08\/screenshot-3.png 1529w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><figcaption id=\"caption-attachment-3728\" class=\"wp-caption-text\">WP Stripe Kit Lite Order Flow with Shipping<\/figcaption><\/figure>\n<p>This is my first effort at creating a software program that anyone could use. I was pretty nervous about\u00a0the exposure and the whole process\u00a0but managed to navigate through the tricky WordPress developer documentation to getting one approved and released.<\/p>\n<p>I first went out to find the best practices for writing WordPress plugins and found plenty of information that apparently the plugins that failed my client were ignoring. I even improved on these best practices by adding one of my own called namespaces (programmers will understand what that means).<\/p>\n<p><strong>A Better Plugin World Perhaps<\/strong><br \/>\nHopefully\u00a0<a title=\"WP Stripe Kit Lite Product Page\" href=\"https:\/\/www.lonhosford.com\/wp-stripe-kit-lite\" target=\"_blank\" rel=\"noopener\">WP Stripe Kit\u00a0Lite<\/a>\u00a0will help those WordPress website owners who need to quickly\u00a0integrate checkout buttons into their WordPress pages and posts for single item orders or recurring billing subscriptions.<\/p>\n<p>Since it is open source, other plugin programmers may benefit from the best practices I put into place.<\/p>\n<p><strong>Where to go next?<\/strong><br \/>\nNow I am hooked on developing for WordPress and begun looking at updating this plugin with more features ( I cut a lot out to get it released) and even started looking at building WordPress themes.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>You never know what experiences will lead you down a path. This one lead me to develop my first software product: the\u00a0WP Stripe Kit\u00a0Lite\u00a0Wordpress plugin and I had no intention of ever writing one. Bad Code and Bad Support Spells Trouble I was working with a client recently who wanted to integrate the\u00a0Stripe payment platform\u00a0into [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-3722","post","type-post","status-publish","format-standard","hentry","category-general"],"_links":{"self":[{"href":"https:\/\/www.lonhosford.com\/lonblog\/wp-json\/wp\/v2\/posts\/3722","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lonhosford.com\/lonblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lonhosford.com\/lonblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lonhosford.com\/lonblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lonhosford.com\/lonblog\/wp-json\/wp\/v2\/comments?post=3722"}],"version-history":[{"count":7,"href":"https:\/\/www.lonhosford.com\/lonblog\/wp-json\/wp\/v2\/posts\/3722\/revisions"}],"predecessor-version":[{"id":3735,"href":"https:\/\/www.lonhosford.com\/lonblog\/wp-json\/wp\/v2\/posts\/3722\/revisions\/3735"}],"wp:attachment":[{"href":"https:\/\/www.lonhosford.com\/lonblog\/wp-json\/wp\/v2\/media?parent=3722"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lonhosford.com\/lonblog\/wp-json\/wp\/v2\/categories?post=3722"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lonhosford.com\/lonblog\/wp-json\/wp\/v2\/tags?post=3722"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}