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

9seeds

Building Custom WordPress Solutions | Plugin Development

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

plugin update

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

    Plugin update, WP Time Tracker 1.2

    Posted on October 21, 2013

    This summer we released version 1.0 of the WP Time Tracker plugin. We know it was the minimum viable product, but wanted to get it out the door so we could start to get some feedback. Since that release we’ve been fielding some requests for additional functionality in the plugin. We’re happy to announce the release of WP Time Tracker version 1.2.

    The Highlights

    • Clients are now stored as a custom post type allowing you to store contact information for each client.
    • Hours are now tracked against projects which are assigned to clients. This opens up the plugin to additional breakdown reports which will be coming soon.
    • New, quicker data entry form for adding hours.
    • The ‘My Hours’ page shows each staff member all the hours they’ve previously entered.
    • Staff members can use the in-line editor on the ‘My Hours’ page to update any record that hasn’t already been marked as invoiced.
    • Staff members no longer need to be authors/editors on the site. Instead, you can mark any user on the site as an active contractor via the user edit screen.

    We’ve already been using the new version for a few weeks, and I have to tell you, I absolutely love how much quicker it is to enter hours each day.

    Screenshots

    What’s On Tap?

    We’re just getting started with Time Tracker. We’ve got a number of additional features that we’ll be adding in the coming weeks and months, including new set of reports.

    Don’t Wait, Buy Now!

    Buy the plugin today and you’ll receive a full year of automatic updates and support!
    [purchase_link id=”1290″ text=”Purchase” style=”button” color=”blue”]

    Upgrading from version 1.0

    This upgrade is pretty sizable and changes how some features work. For example, your staff members no longer need access to the WordPress dashboard. Instead, you will create two pages that can be accessed on the front end, but are only viewable to logged in users.

    Here’s how the upgrade process will work:

    • After you upgrade, the plugin will convert your existing clients to custom post type entries
    • Next, it will create a default project for each client
    • All existing hours entries will be associated to the proper client’s default project
    • Edit each of your staff’s user profiles and mark them as “active contractors” by checking the box at the bottom of the profile
    • Create two pages; Hours and My Hours
      • Hours is where your staff will enter their hours
      • My Hours is where your staff can view and edit existing hours entries
    • Edit each of your projects and select which of your staff members has access. Note, admin level users have access to all projects.

    Give your staff the direct links to both pages and you’re all set!

    Continue Reading

    john

      More by john

      WP Affiliate Manager version 1.5

      Posted on January 7, 2013

      We’re glad to announce the release of WP Affiliate Manager version 1.5.0.  This version initially centered around a bugfix having to do with a namespace conflict in the latest (3.8.9.x) versions of WP e-Commerce.  However in the process, we were able to add several minor enhancements that will enhance WP Affiliate Manager for the future.

      gettext translation wrappers

      While not all screens have had the gettext translation wrappers applied (notably the settings and paypal pages in wp-admin), everything else has been added.  Expect a 1.5.x release early in 2013 that will be fully translatable.

      As such, we’re putting out a call for translators.  We are willing to offer free one-year licenses (with support & upgrades) for WP Affiliate Manager to anyone who contributes a full translation in their own language. We have a couple of people already talking to us about certain languages, so if you’re interested, please fill out the form on our translation page and let us know what language you’d like to help us add to WP Affiliate Manager!

      money_format() for Windows

      money_format() is a native PHP function, but it does not exist on Windows platforms.  We added a simple one for those hosting in Windows environments which should get the job done.

      PayPal enhancements

      First, the sandbox PayPal URL has been fixed.  This is mostly used for development/testing purposes, but none-the-less is important.

      Also, we removed the requirement for needing the PHP cURL module requirement.  Instead, WP Affiliate Manager uses WordPress’ native HTTP request methods.

      jQuery UI Tabs + cookies + mod_security bugfix

      An interesting sidenote… we discovered a bug where if you went to the 2nd tab on WP Affiliate Manager’s “My Affiliates” screen on our test server, your next navigation point in WordPress would either result in a 404 error, or an endless loop of 302 redirects.

      Turns out the bug was caused by a perfect storm of Apache’s mod_security (which is enabled on our test server) and the use of jQuery UI Tabs with a cookie save option.  What was occurring was the cookie name was being saved as “ui-tabs-1” and if your last visited tab was the 2nd tab (index 1) the cookie was saved as “ui-tabs-1=1”.  This would be passed with each HTTP request as a cookie header.  Since mod_security doesn’t like anything where “1=1”, it was changing the request, causing WordPress to become all sorts of confused.  You can see a bug report about it here: http://bugs.jqueryui.com/ticket/8027

      The solution was to name the cookie, so the automatically generated name wasn’t used:

      jQuery("#tabs").tabs({
          cookie: {
              name: 'wpam_detail_tab'
          }
      });

      Enjoy all of the fixes!

      Continue Reading

      justin

        More by justin

        Plugin Update: CPT Speakers

        Posted on April 8, 2011

        Back in January I released a plugin that we put together when we were building the site for WordCamp Las Vegas to make it easy to display a page of speakers for the event. It’s was pretty basic, but it served our purpose. We released it in hopes that we could save somebody else some time if they had a similar need.

        Fast forward a couple months… I received an email from Josh Harrison letting me know he used the plugin for WordCamp Seattle’s site, and, he had made several improvements to it. Nice! He sent the updates with a note:

        I made some modifications to your plugin CPT Speakers. Go ahead and use them if you’d like. Here is what I added:

        • template tags for speaker information with filters and paragraph formatting
        • shortcode to include the speaker information on an agenda (like what I put on http://wordcampseattle.org/agenda)
        • post thumbnails. I did not remove the old way of uploading images though.

        After merging in the changes Josh made, it made perfect sense to go ahead and remove the old way we were dealing with speaker image uploads and instead use the featured image method.

        WordPress Community
        One of the greatest parts about working with the WordPress community is their willingness to give back. It would have been very easy for Josh to use the plugin we provided, make his changes, use it for his site and go about his merry way. But instead, when he was done he bundled up the changes and did his part to make the plugin better for the next person who comes along. That’s what it’s all about. Thanks, Josh!

        You can download the latest version (1.1) from the WordPress plugin directory.

        Upgrading
        If you are planning to upgrade from a previous version, keep in mind that you will need to go back and add the speaker’s photo as the featured image for their post as we’ve switched the way photos are handled. Also, you will need to manually move single-speakers.php and template_speakers.php from the plugin folder to your active theme folder.

        Styling
        After you install the plugin you will want to add some styling to it. There is no inline styling, so you will need to some CSS to your existing style sheet. You can use the following as a base and change it up as needed:

        #speakers {
        font-size: 12px;
        min-height: 300px;
        }

        #speaker_image_section {
        width: 150px;
        float: left;
        height: 300px;
        margin-right: 18px;
        }

        #speaker_image img {
        margin-top: 5px;
        border: 1px solid #333;
        padding: 3px;
        background: #0099cc;
        }

        #speaker_name {
        font-size: 18px;
        font-weight: bold;
        margin-bottom: 10px;
        }

        #speaker_url {
        text-align: center;
        }

        #speaker_twitter_url {
        text-align: center;
        }

        #speaker_pres_title {
        margin: 5px 0px 5px 0px;
        font-size: 13px;
        }

        #speaker_pres_description {
        font-size: 12px;
        font-family: arial, helvetica;
        line-height: 16px;
        }

        #speaker_session_description {
        font-size: 12px;
        line-height: 18px;
        }

        #speaker_image_section_single {
        width: 150px;
        float: left;
        height: 600px;
        margin-right: 18px;
        }

        #speaker_image_section_single img{
        margin-top: 5px;
        border: 1px solid #333;
        padding: 3px;
        background: #0099cc;
        }

        #pres_url {
        text-align: center;
        }

        .speaker_snippet .thumbnail {
        float:left;
        display:inline;
        margin-right:10px;
        border-bottom:0;
        }
        #content .speaker_snippet .thumbnail a {
        border-bottom:0;
        }
        .speaker_snippet .name {
        font-weight:bold;
        line-height:16px;
        }
        .speaker_snippet .title {
        font-size:0.9em;
        line-height:15px;
        }

        Continue Reading

        john

          More by john

          WP Affiliate Manager adds Paypal Mass Pay

          Posted on January 24, 2011

          Huzzah! The holidays are finally over! Now it’s time to get back to work. We have a lot going on at 9seeds, and you’re going to be seeing several updates to some existing plugins, along with a couple of new ones we’ve been working on. So let’s get started!

          Introducing WP Affiliate Manager version 1.3

          In version 1.3 you’ll find a handful of new features highlighted by the addition of Paypal MassPay which will allow you to pay all your affiliates at the same time. For sites with a large number of affiliates, this is a HUGE time saver!

          Along with the new plugin update, we’re also updating the wpaffiliatemanager.com website to include a bunch more information about the plugin and how it works. We’ve also added a blog where we’ll provide detailed information about each new release, starting with a post about today’s release.

          Continue Reading

          john

            More by john

            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 2023 | 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