• Skip to primary navigation
  • Skip to main content
  • Skip to footer
  • Store
  • Support
  • Theme Documentation
  • My Account
  • Cart

9seeds

Building Custom WordPress Solutions | Plugin Development

 
  • Custom Development
  • Themes
  • Plugins
  • About
  • Contact
  • Blog

john

Finding Work/Life Balance as a Remote Worker

Posted on June 12, 2014

We’ve all said it 1000 times, “I love what I do because I can do it from anywhere.” It’s the dream of pretty much every developer… travel the world and work from exotic locations. But if you’ve ever tried it, you’ve probably figured out that it’s a LOT of work.

At 9seeds, we all work remotely. Most of us work from home offices, co-working facilities or the occasional coffee shop. But, one of the guys on our team, Jon Brown, just spent 4 months traveling the globe and working along the way. Other than some challenges with scheduling times to chat, you’d almost not have noticed he wasn’t sitting at home working.

This past weekend at WordCamp Orange County, Jon gave a talk where he discussed finding the work/life balance as a remote worker. It was a great session and made me realize two things; 1) It IS a lot of work, 2) It sounds like the hard work is absolutely worth the effort!

Continue Reading

john

    More by john

    Finding Focus

    Posted on June 2, 2014

    In late December we were wrapping up our biggest quarter to date as a company. As we all took some time off for the holidays, it gave us time to take a serious look at the product side of our business. We had a small number of premium plugins that we made available for sale, and several other free plugins that we were also maintaining. As we headed in to the new year, we wanted to make sure that our time and energy was being spent wisely. As I’m sure you can relate to, when we pulled back the curtains, we realized that we were definitely spread thin.

    When you’re evaluating what projects to keep and which to kill, you have to take a lot in to consideration. Income, potential income, investments in both time and money, and one of the most important elements that I think we lost sight of, personal interest in the project. Even though we were working hard one of our projects, our passion for the product itself, just like Elvis, had left the building.

    Throwing away a lot of work
    In early February we made a decision that should have been made much earlier. We decided to stop developing the WP Event Ticketing plugin. The finial decision was easy to make. Getting to the point of making the decision wasn’t as easy.

    We had spent countless hours over the previous 2-3 years building the plugin, including a complete rewrite that we’d been working on for much of the past year. The thought of throwing that all away was painful. So painful that it kept us from making the final decision for more than a month after we already knew what the right thing to do was. But then…

    Revelation time
    Have you ever gone to bed thinking about a problem and had the answer hit you so hard at 3 in the morning that you sit bolt upright in bed and shout, “Booya, Bitches!” OK, maybe that’s not what you shouted, but I’m pretty sure that’s what I shouted.

    I was forced awake with a single thought:

    Every minute we spend writing code, answering a support ticket or even thinking about the Event Ticketing plugin is one more minute that we are not focusing on our clients or the other products.

    That was it. The switch had been flipped. When I got to my desk I made the, now very easy, call to shut it all down. It felt like a weight had been lifted.

    You’re never done cleaning house
    That moment of clarity has come in handy a few times since then. But none more so than when we received an email asking if we would be interested in selling the WP Affiliate Manager plugin. Honestly, it wasn’t something we had given much thought to. But here we were faced with an opportunity to narrow our focus once again.

    Previous to 9seeds, I spent a decade working for a company that made the bulk of it’s income from affiliate marketing. The affiliate plugin seemed like a natural fit for us to build. But, affiliate marketing isn’t something we do much of these days, so there has been a decline in the amount of energy we’ve put in to the affiliate plugin recently. After some serious consideration, we came to the conclusion that selling WP Affiliate Manager was too good an opportunity for everybody involved that we simply couldn’t pass it up.

    The new owners have a list of short and long term goals for the product that will breath new life in to it. We are excited to see where they take it.

    Time to focus
    As I’ve mentioned in previous posts, Time Tracker is a product that I use literally every single day. It’s a tool we use internally for tracking time we spend working on client projects. We have a nice long list of features and enhancements that we want to add to the plugin. With the sale and transfer of Affiliate Manager complete, I’m thrilled for the additional time that we’ll be able to dedicate to it.

    One question we get asked a lot regarding Time Tracker is if there is a demo of the product they can try out before they purchase. It feels really good to finally be able to answer Yes! You can head over to http://timetrackerdemo.com/ to try out the plugin.

    If you have any questions or feature requests regarding Time Tracker, we’d love to hear from you.

    Continue Reading

    john

      More by john

      6 Other Uses for Gravity Forms

      Posted on April 7, 2014

      If you ask just about anybody who uses WordPress what their favorite plugin is for contact forms, they’re going to tell you it’s Gravity Forms. If you ask them why, they’ll tell you about how easy it is to set up a fairly complex form with radio buttons, dropdown lists, hidden fields and conditional logic. And they’re right. It easy to do those things. But, if you are only using Gravity Forms for contact forms, you’re only seeing the tip of the iceberg.

      Here are some other ways we’ve helped our clients while using Gravity Forms.

      1. Grow your mailing list
      add-to-mailinglist

      OK, this one is so simple, you’re going to kick yourself for not doing it a long time ago. Your site already has a contact form, right? Add a checkbox or radio button to the form that asks the question, “Can we add you to our mailing list?” If you use double opt-in for your mailing list, go ahead and default the answer to yes. Next, simply install the add-on plugin to connect your form to MailChimp, AWeber, Constant Contact, or whichever provider you use.

      2. Sell a product
      If you’re looking to build out a shopping cart with a bunch of products, this probably isn’t the answer. But If you have a single product that you’re looking to sell, Gravity Forms is up to the task. Grab the Paypal or Stripe add-on, add a product field to your form and you’ll be ready to start selling in minutes.

      3. Accept guest posts on your site

      guest-post
      Most times when sites tell you they’re looking for guest posters, they tell you to email your article to an editor. I feel sorry for the person who receives those entries. They’re having to do so much extra work. In Gravity Forms you simply need to use the Post Fields options. Add a Title and Body field to your form and then edit the title field’s settings. You’ll be able to mark the incoming posts as Drafts so they won’t be published until after you’ve approved them. If you want to get extra fancy you can also let the guest poster add an image that will be used as the Featured Image.

      You just made the process of accepting and processing guest posts drop-dead simple. Nice work!

      4. Add entries to a custom post type
      gf-event

      (This one is a little more advanced and is targeted more towards the developers in the room.)

      We’ve used this one for a number of clients. One that sticks out most was a client who said, “We’d like to let visitors submit upcoming events to display on our community calendar.” They already had a calendar plugin that used custom post types, so we only needed to create a form that had the proper fields, then use the Gravity Forms + Custom Post Types plugin to sync up the fields. The plugin lets you mark the incoming entries as drafts, making it easy for you to double-check the entries for bogus information before hitting publish. Bingo, you are now crowd sourcing your content!

      5. Connect. To. EVERYTHING.

      gf-to-zap

      This one could probably be a post all by itself. Have you ever heard of zapier.com? Zapier is a service that helps to connect services with other services based on actions being taken. For instance, you can use it to create an entry in Evernote each time somebody fills out a form on your site. Or post to Twitter, or ping you in HipChat, create a document in google Drive, post to Facebook, add files to Dropbox, create a record in Campfire, make a note in Basecamp or Asana… or one of another 100 or so things.

      The setup process for getting Zapier to work with Gravity Forms takes a little doing. I implore you to not assume anything and read the instructions as they’re given. Do one thing out of order and you’re starting over. Grab this add-on and get started.

      While it may be a little tricky to get set up, once you start automating, you’re going to want to automate even more.

      6. Build custom solutions
      gf-custom

      You’ve probably guessed that this one is on the advanced side, but I think it’s too important not to include.

      Event Central was a client who needed a shopping cart that wasn’t a shopping cart. They wanted to give clients the ability to shop like they were about to make a purchase, but instead of a checkout page, they end up at a Gravity Form. We collect a bunch of information about the event and then we use the Gravity Forms hooks & filters to pull in the products that the customer added to their shopping cart. All this information gets stored just like a standard Gravity Form and gets emailed to the appropriate person.

      This scenario is pretty specific, but that’s not important. What IS important is looking at Gravity Forms for all the things that it can do for you that might require a lot of extra work if you had to build it yourself. Data validation, storing the entries in an easy to use format, automated email responses, etc. All that is already built in to Gravity Forms, you simply need to tap in to it.

      Just the beginning

      Gravity Forms is one of the most powerful, most flexible WordPress plugins you’ll find. Our list of 6 uses still barely scratches the surface of everything you can do with it. If you have a custom use for Gravity Forms that you want to share, drop it in the comments. We’d love to hear about it!

       

      Continue Reading

      john

        More by john

        Time Tracker version 1.5.2

        Posted on February 8, 2014

        I was surprised to see that it had been more than 3 months since the last time I wrote about Time Tracker. That’s a shame because there’s been a lot going on with the plugin. Since last I wrote we’ve released 5 updates with a whole bunch of new functionality. Here’s a list of what’s new in Time Tracker.

        • Create/save invoice for hours worked
        • View/delete past invoices
        • New tabbed settings page
        • Option to send an email to site admin when new hours are entered by contractors
        • Option to display all projects to contractors (rather than on a case-by-case basis)
        • Summary of hours by contractor on ‘Create Invoice’ page
        • Default projects created when new clients are added

        We’ve been getting some great feedback from our users and we’ve got a number of features in the works. If you’ve got a feature you’re looking for, let us know and we’ll get it on the list.

        And if you haven’t done so already, purchase your license here.

        Continue Reading

        john

          More by john

          End of Life for Event Ticketing

          Posted on February 5, 2014

          It started with a question. I asked Justin, “Are you still excited about working on Event Ticketing?” He didn’t even have to answer. When it took him more than 2 seconds to answer, I knew he was looking for the right way to let me down easy.

          We spent the next 30 minutes talking about it, trying to rationalize keeping the plugin around. But ultimately, I explained it like this: “At the moment, the Event Ticketing plugin is a mediocre product. Since you are the person doing 90% of the development, if you aren’t excited about the project, there is no way we will ever make the plugin anything other than mediocre.”

          And with that, be both knew what we had to do.

          Today we are announcing the End of Life of both:

          – WP Event Ticketing (version 1.3.3)
          – Event Ticketing for WP (version 2.0.1)

          We did not make this decision lightly. It’s actually been on my mind for the past couple months. But after an increase in support requests starting coming in and the realization that it could be weeks or even months before we could get a couple key issues fixed, the writing was on the wall and I knew it was time to pull the plug.

          If you’re a developer and you would like to pick up where we left off and get Event Ticketing ready for prime time, the code can be found on github.

          Genesis Simple Headers

          And while we’re killing of plugins, he have also decided to remove Genesis Simple Headers from the WordPress repo.

          This plugin was something I wrote quickly to serve a very narrow purpose. I released it thinking “hey, maybe this will be useful for a couple people.” Then it was downloaded more than 30,000 times. Yikes!

          We finally decided to remove it thanks to two key factors;
          a) StudioPress started adding the header functionality to the bulk of their new themes
          b) With the release of Genesis 2.0, it would take a sizable amount of work to make GSH compatible

          With less themes needing our plugin, spending the time to fix the plugin’s issues just seems silly. So by having the plugin available in the repo, we’re causing frustration for new users.

          What about current users?

          If you’re currently using one of the plugins above without issue, our decision to stop development will not affect you immediately. Your current plugin will not automatically cease to function. However, as WordPress continues to release new versions, there is no guarantee that the plugin will continue to function and you may need to seek an alternative solution.

          Continue Reading

          john

            More by john
            • Page 1
            • Page 2
            • Page 3
            • Interim pages omitted …
            • Page 9
            • Next

            Footer

            Get in Touch

            • New Project Inquiry
            • Product Support and General Inquiry
            • Store Purchase Terms and Conditions
            • Store FAQ
            • Cookie Policy
            • Privacy Policy

            Our Services

            • Custom WP Development
            • Theme Store
            • Plugin Store

            WordPress Plugins for Sale

            • Time Tracker
            • Authorize.net SIM Gateway

            WordPress Plugins for Free

            • Simple Calendar
            • WP Chargify
            • Facebook
            • Twitter
            • LinkedIn
            • WordPress
            • GitHub

            Copyright 2025 | 9seeds, LLC

            Like nearly all websites this one uses cookies too. Like most users we think consent banners like these are a dumb solution, but it's what we've got until new laws are passed. We use cookies on our website for remembering your preferences, for example if you're logged in or what is in your cart. We also use 3rd party cookies for analytics so we know what pages on the site are most popular. By clicking “Accept”, you consent to the use of ALL the cookies.
            Do not sell my personal information.
            Cookie SettingsAccept
            Manage consent

            Privacy Overview

            This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience and may even preclude you being able to login to the website.
            Necessary
            Always Enabled
            Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
            CookieDurationDescription
            __stripe_mid1 yearThis cookie is set by Stripe payment gateway. This cookie is used to enable payment on the website without storing any patment information on a server.
            __stripe_sid30 minutesThis cookie is set by Stripe payment gateway. This cookie is used to enable payment on the website without storing any patment information on a server.
            cookielawinfo-checkbox-advertisement1 yearSet by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Advertisement" category .
            cookielawinfo-checkbox-analytics1 yearSet by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Analytics" category .
            cookielawinfo-checkbox-necessary1 yearSet by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Necessary" category .
            cookielawinfo-checkbox-others1 yearSet by the GDPR Cookie Consent plugin, this cookie is used to store the user consent for cookies in the category "Others".
            cookielawinfo-checkbox-performance1 yearSet by the GDPR Cookie Consent plugin, this cookie is used to store the user consent for cookies in the category "Performance".
            Functional
            Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
            Performance
            Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
            Analytics
            Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
            CookieDurationDescription
            _ga2 yearsThe _ga cookie, installed by Google Analytics, calculates visitor, session and campaign data and also keeps track of site usage for the site's analytics report. The cookie stores information anonymously and assigns a randomly generated number to recognize unique visitors.
            _gid1 dayInstalled by Google Analytics, _gid cookie stores information on how visitors use a website, while also creating an analytics report of the website's performance. Some of the data that are collected include the number of visitors, their source, and the pages they visit anonymously.
            CONSENT2 yearsYouTube sets this cookie via embedded youtube-videos and registers anonymous statistical data.
            Advertisement
            Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
            CookieDurationDescription
            VISITOR_INFO1_LIVE5 months 27 daysA cookie set by YouTube to measure bandwidth that determines whether the user gets the new or old player interface.
            YSCsessionYSC cookie is set by Youtube and is used to track the views of embedded videos on Youtube pages.
            yt-remote-connected-devicesneverYouTube sets this cookie to store the video preferences of the user using embedded YouTube video.
            yt-remote-device-idneverYouTube sets this cookie to store the video preferences of the user using embedded YouTube video.
            Others
            Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.
            CookieDurationDescription
            cookielawinfo-checkbox-functional1 yearThe cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
            SAVE & ACCEPT
            Powered by CookieYes Logo