Membership Plugin Integration for Project Theme

WordPress Membership Plugin needs to be modified in order to charge recurrent fees for project bidders on a Project Bidding site. Project bidding site was built using a ProjectTheme child theme.

WordPress Membership Plugin Modification

This project was the third project for 'shabazzi'. He needed to charge members to bid on project based on a 3 month, 6 month or 1 year membership. He wanted a WordPress membership plugin called 'Paid Membership Pro' modified to achieve this functionality.

WordPress Membership Plugin Modification

WordPress Paid Membership Pro.

This plugin is from 'Stranger Studios'. According to the plugin description, "Paid Memberships Pro is a WordPress Plugin and support community for membership site curators. PMPro's rich feature set allows you to add a new revenue source to your new or current blog or website and is flexible enough to fit the needs of almost all online and offline businesses" (

Paid Membership Pro Plugin Customization

WordPress Project Theme child theme modification for membership.

The client had a website that used a child theme for ProjectTheme. The required outcome was to allow anyone (should have at least free membership) to post a project (with required charges for featuring, sealing, etc. project - Note: These fees are independant of membership chargets and charged at the end of project posting process to complete the new project publication). In other words even free members can post a project.

But in order to bid on a project, a member should have at least silver membership, which is a paid membership. If a non-paid/free member tried to bid on a project, then he will be prompted to upgrade his membership package.

Admins were allowed to create/alter the membership packages the same way the original plugin allows them. None of these options were changed during this particular development. This is same for the Project Theme too. Options pages in the WordPress admin were not altered in any way.

All the development took place inside the child theme functions.php. But for one function, it was needed to paste some code on ProjectTheme php file due to the lack of an action to be hooked.

Successful completion of the WordPress update project.

The project was marked as a successful completed project. I received a 5 star rating for this project.

Upeksha Wisidagama Project Review

I was awarded the 'Smooth Operator' badge for completing 10 projects on time. The Perfectionist badge was too awarded for receiving 5-star ratings in 90% of my completed projects (minimum 10 projects).

new badges were awarded to upeksha wisidagama

I received a tip from 'shabazzi' for the successful project completion.

Custom Post Lists for Akita Child Theme using Shortcodes

Akita theme is a responsive theme by Jason Bobich. MoccMD site, the site related to this project, had been built using a child theme for Akita theme. Akita theme comes with a good options panel in the admin-end. It allows you to create custom templates in the WordPress admin back-end and assign them as page templates.

Akita Theme Component Needed

The employer, mrbrant, needed to develop a component which will allow the theme to include a list of titles of custom posts for a given letter in the alphabet. Symptoms were the custom posts and an alphabetical list of symptoms were needed to be listed on a particular page. This functionality was implemented using WordPress short-codes API.

Akita Theme Component Development

The required amount of custom functions were added to the functions.php file of the child theme. A new short-code was introduced and using the new short-code the theme is capable of inserting alphabetical lists of custom posts. This project was completed successfully.

Shortcode Components for Akita Theme

Responsive Classipress Child Theme Development

A Classipress child theme was needed to be updated in order be compatible with latest Classipress update. Classipress framework has introduced a major change in their template system, so each and every child theme designed and developed for Classipress will need to be updated. This project was from 'shabazzi'. This is the second project for him.
php sri lanka projects

Classipress Template Update

Classipress has introduced a new templae file called 'wrapper.php', which automatically wraps every other template. With the wrapper, the other template files need not to include header and footer templates using template tags. If the child theme uses those tags, then they need to be removed. The update task can be summarized into copying 'wrapper.php' into the child theme and removing the header and footer inclusion from all templates.

upeksha wisidagama projects

Responsive Classipress Child Theme

Updated child theme needed to be responsive to various device widths too. This was a challenging task to achieve. Especially the client needed the site to be compatible with his iPhone. I was able to make the site responsive using CSS3 media queries.

Successful completion of responsive Classipress child theme

I was able to successfully complete the child theme update project. I was able to earn the 'Feedback Guru' badge upon completion. I received a 5 star rating too.

classipress chile theme review

Project Theme Child Theme Creation from Classipress Child Theme

A child theme for 'Project Theme' by '' had to be created to match the appearance of a child theme of the 'Classipress' theme. In other words a WordPress child-theme had to be created to match the appearance to another child-theme.

A Child-theme of 'ClassiPress' Theme called 'Greeny_319'

I quoted the following description from the 'ClassiPress' theme stylesheet description. "A highly customizable classified ads application theme brought to you by AppThemes." ( According to their website you can "Instantly turn your WordPress blog into a professional Classified Ads Web site." Moreover they say "ClassiPress is the original & most popular classified ads theme for WordPress. Our feature-rich theme was built for ease-of-use and tight integration with WordPress so you’ll be online and selling classified ads within minutes.".

This theme has a child theme called "Greeny_319". "A Nature ClassiPress Theme". This child theme comes with nice menus, wrappers and tabbed panes. The client wanted those designs to be incorporated into his theme (Project Theme) as a child theme.

'Project Theme' by 'SiteMile'

Again from the 'Project Theme' stylesheet description "The only WordPress theme that allows you to build a project bidding, freelancer, or chores website from your WordPress blog. A turn-key solution for your business. Create a full featured outsourcing website in minutes". This theme allows you create a like website in WordPress.


The project was to create a child-theme for this 'Project Theme' theme. This child-theme had to incorporate the desired features from the 'Greeny_319'.

Freelance WordPress Child Theme Modification

"I need a child theme modified to work with a WordPress Freelancer Theme I purchased". This was an excerpt of the project description on By "I need a child theme modified", he mentioned about the 'Classipress' child-theme 'Greeny'. And 'WordPress Freelancer Theme', he mentioned about 'Project Theme' theme by 'sitemile'. Now this may seems to be impossible. But the underlying need is to have the 'Classipress' child theme appearance in his new child theme, which is possible. The project poster was 'shabazzi'.


I was able to complete this project successfully. I received a five star rating for this project.


It was a pleasure to have a bonus after the completion of this project. This was the third time I was received a bonus for the successful completion of a freelance project on


Two new badges were earned with the completion of this project. 'The Critic' badge was for the completion of 10 projects on budget and 'Simply the Best'  was for completing 5 or more projects, with a 95% completion rate.


SEO Optimized Next-Gen Image Gallery

The client was from SEO (Search Engine Optimization) industry. He was actually new to 'fabiodeleonardis' was just experimenting the uses of However after the initial discussion he awarded me the project.

Wanted: A SEO Optimized Image Gallery for WordPress

This project was to implement an image gallery simillar to the used in ''. In his own words , "I need an image gallery for WordPress very similar to mashable image gallery". He explained it further, "My objective is to maximize the number of page view using a dynamic and simple image gallery. "

After searching a bit on I found customizing the Next-Gen gallery plugin for WordPress is the best approach in achieving this. So started by reading the source code. I separately inspected their PHP gallery functionality in the back-end and tha Javascript gallery functionality in the front-end. I was able to complete this project successfully.

Employer was satisfied with what I have implemented for him. I received a 5 star rating on this project. Upon reviewing him with 5 star rating for ease of work with him I was received the 'The Critic' badge too.

A Pageview per slide transition

A pageview needs to be generated per slide transition. i.e. If the user views x number of images by clicking x number of thumbnails, then x number of Pageviews should be generated. This was achieved using using a function in the Google Analytics script. The function was responsible for informing Google Analytics about the pageviews.

Asynchronous advertisement retrieval with Custom Ad Server

When the image slide in the gallery in the changes, a new add needs to be displayed to the visitor. In other words, advertisement needs to be refreshed per image. Ads are getting more page-views using this method. Slide transition is done when user clicks on a thumbnail below the main slideshow. Upon receiving the click from the visitor JavaScript code asynchronously retries an advertisement from the ad-server and display it removing the old advertisement. The relevance of the advertisement is ensured by sending the unique #hash tag associated with the each image in the slideshow.

In the above image advertisement is related to fish. This advertisement, unique to the main image in the slideshow, was retrieved by passing the #tag of that image as an argument to the ad-server. When you click a thumbnail main image associated with it displays and window location becomes http://previous-url/#currentimagetag. They it retrieves the advertisement related to that image.

Google Adsense Hacking

Changing the Google Analytics and Adsense code violating TOS of the Google will terminate your Google Account. The following is an excerpt of Google TOS.

"Clicks on Google ads must result from genuine user interest. Any method that artificially generates clicks or impressions on your Google ads is strictly prohibited. These prohibited methods include but are not limited to repeated manual clicks or impressions, using robots, automated click and impression generating tools, third-party services that generate clicks or impressions such as paid-to-click, paid-to-surf, autosurf, and click-exchange programs, or any deceptive software."

Be careful when you deal with Google Analytics and Adsense codes or when you hack the Google Codes. If something is not clear to you contact Google and make sure you don't violate Google TOS before implementing changes to Google Analytics and Adsense codes.

Mailchimp Templates for baseballman

A few months ago, I was awarded a project related to modifying an existing MailChimp Template. I was able to earn $60USD from that project. I have done several projects on since then.

A few days ago, I had been busy bidding on projects rapidly one after another to find a project. But I was not either fortunate enough or qualified enough to win the bid and get awarded the project.

Mailchimp Template Change Project

Strangely enough, I received an email from baseballman. At this time he seems to need his templates get modified again and further. In his email he was asking whether I would be able and available for him to get his MailChimp templates modified to the next level.


I promptly replied him saying I am ready to start work immediately. We were agreed for a budget of $30USD for this project.

I completed the project successfully. I received the payment as discussed.

The New Payment Method

But at this time, something strange happened. No project postings on No bidding on projects on No awarding of the project on No creation of milestones on What happened at this time is a mere transfer of $30USD from baseballmans account to my account. That was it!


PayPal Support for Sri Lanka

Initially we planned to do the payment via PayPal. But that attempt was failed because PayPal had said him Sri Lankan accounts are only allowed to send funds. Sri Lankan accounts are not allowed to receive funds. Actually there were several campaigns on getting PayPal work in Sri Lanka. I have just forgotten those things whilst agreeing to receive payments via PayPal. First I transfer my funds to Moneybookers(Skrill). Then I transfer funds to my local bank in Sri Lanka (Commercial Bank of Sri Lanka).


I completed another freelance project.

Implementing the Facebook Like Gate

In the previous example, the 'Facebook PHP SDK' hosted in the Heroku servers was downloaded and used. Now it will be downloaded from GitHub and be included manually. Download the 'Facebook PHP SDK' from GitHub.

facebook php sdk on github

Extract it. We need only facebook.php and base_facebook.php files. Copy them to app directory. Delete all other files in .git folder. Now there should be only 4 files. Add new files to the git repository.

git add facebook.php
git add base_facebook.php

facebook app files

Now edit the index.php file to match our simple like gate requirements. First create a 'Facebook Object'.

require 'facebook.php';

$facebook = new Facebook(array(
'appId' => '405567522824849',
'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'cookie' => true

Now 'Facebook Object' exists. Objects have methods. Use 'getSignedRequest' method. It contains a value called 'page-liked'. Use it to check whether visitor has already 'liked' the page.

$signed_request = $facebook->getSignedRequest();

if ( $signed_request['page']['liked'] )

Conditionally check the 'liked' state and take further actions.

if ( $signed_request['page']['liked'] ){
   echo 'A fan.';
   echo 'Not a fan yet.';

Now the 'index.php' file should look like this.

require 'facebook.php';

$facebook = new Facebook(array(
'appId' => '405567522824849',
'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
, 'cookie' => true

$signed_request = $facebook->getSignedRequest();

if ( $signed_request['page']['liked'] )
   echo 'A fan.';
   echo 'Not a fan yet.';

facebook app index file

If one has not liked the page yet, it displays 'Not a fan'.

not a fan yet

After the one liked the page. It displays 'A fan'.

a liked facebook fan

Visit app integrated page tab below.

Try It Yourself!

Have a look at the other parts of this tutorial.

Part 1: Simple Facebook Like Gate with Heroku Hosting
Part 2: Developing and Deploying with Heroku
Part 3: Implementing the Facebook Like Gate

Add Flexible Layout

This was the second project for Mr. Brant. This project was about making a website iPhone and iPad responsive.

add flexible layout

I completed this project on time. i.e. within 5 days.

responsive wordpress themes

I received a positive feedback from Mr. Brant for this project.

completed a responsive theme

Update WordPress Design

This project was about updating an existing WordPress website. The layout needed to be updated to be responsive. I used CSS3 media queries to implement the responsiveness.
The project poster was Mr. Brant.
This project took 3 weeks to complete. However I was able to do the project successfully.
The following is the project feedback.

Simple Data Entry Project Gone Wrong on

I should say upfront that neither I was awarded this data entry project nor I had a reply to my last message to the project poster. Ever since I bid on this particular data entry project, I was wondering how would I be able to do the data entry work in my free time and earn money.

The following was project description page on I bid on this project for $100USD.

data entry project description

I asked the project poster the typical "how should I proceed?" question. To my surprise I received a lengthy message in reply. The following is the complete message.


Follow Steps To start work::

Step 1:
Go to this site:

Step 2:
Enter User ID and Pass:
User Id : Ridoy132
pass : 12345

Step 3:
==>> After entering to the site Click on 'grapimage'
==>> Then image/code will come and you have to type it simultaneously one by one
==>> Please type 100% correctly(Try your level best) AND USE ALL SMALL LETTER
==>> If you type too many wrong entry then you account will be suspended and no payment will be given
==>> please work honestly and correctly

Step 4:
==>>Rate and payment method:
==>>Rate 1000correct entry= $10
==>>Payment method: paypal/moneybookers/gaf
==>>I will pay you after every 5000 entry completed

Step 5:
Working hours:
==>>Night time is the best time to work
==>>working time is 6pm to 3am(GMT+0)
==>>Only work during this time

==>>So Start work right now and try your level best to do more and more entry daily

With Best regards

Then I asked him whether he would be able to award me the project and create the initial milestone. He asked for my email address and convinced me that he would pay the amount directly to my PayPal account once the project start to progress. I agreed to him; otherwise I will have to pay 20% to too.

I logged onto the 'Data Entry System'. The following shows how it looks like.

simple data entry project

Even-though It was supposed to display an image each and every time "Grab Image" button, Images did not show up that way. It was actually a very tedious task. Sometimes one has to wait 10-15 minutes to image to appear. However I spent a couple of hours doing this simple(!not that simple) data entry work. But I didn't receive the payment on PayPal as promised. I have asked several times about the payment. But no reply received so far!.

The message: Don't work on project if,
1. The project is still open (Not awarded to you).
2. Initial milestone is not created.

Eventhough is the best freelancer site (a.k.a. best outsourcing site) in the world, people like the above project poster try to tarnish the image of this very helpful freelance website. So Be careful of this kind of bad people.

Responsive Web Design and Development

Responsive web design and development.

1. From scratch using basic CSS
2. Using Twitter Bootstrap
3. Using Zurb's Foundation

My personal preference is Zurb's Foundation. But I can use the frameworks you want.

wordpress foundation themes

Pending projects on

I never had 4 projects pending in my dashboard. This is what I saw on 2012-09-23 in dashboard.

pending projects

I am - level 10 - A Student - @ I have earned many badges and activated a number of rewards on badges

First Dispute on

This post is about my first dispute in I came to know about this dispute in today morning (2012-09-24). When I open my email inbox I saw a strange email from (I told you I received this kind of strange email a few weeks ago too. It was about a deleted project on This time the mail was about a dispute regarding an initial milestone payment.

A few days ago I received a 'Someone wants to hire you' email. That said,

"Congratulations! cargoria is impressed by your Profile and wants to hire you directly for their project on You don't even have to bid!"

Then it said,

"Good news! cargoria has created a Milestone Payment of $50 USD for 'Final Hand Facebook App'."

I didn't even bid on this particular project. Usually I stop bidding for other projects once I was awarded a project. I was working on another project at this time. So once I received this message about the custom project that had been awarded to me, I messaged back to the project poster about my inability to accept the project. He understood my explanation and agreed to work after finishing the current project.

Normally, when I do not accept a project, the project is automatically revoked and any milestones created is refunded back to the creator. But at this time he, the project poster, had filed a dispute regarding his initial milestone. This was a new experience to me. Initially I though I might need to pay some kind of compensation for him. But the dispute was resolved through few clicks on the dispute resolution pages on

The message I am trying to communicate is; if you cant accept the project, reject it with a polite message. Then the milestones will be refunded back to the project poster. Otherwise he will need to wait until the project is automatically revoked. (Actually I don't know how this is shown in project poster's interface, as I neither awarded a project to anyone on nor created a milestone.) Always reject if you can't accept the project. It does not hurt the project poster.

Website Language Convert

This project was about creating a widget enabling a visitor translate the site into a number of different languages. Initially ran into some questions regarding which API to use. Initially the translation widget was implemented using Microsoft Translation API (also called as Bing Translation API). Then it was modified use the Google Translation API.

The following was the project description.

I created the following demo to show the translation in action for the given pages. Integration of some scripts to the site pages required to add the translation widget to the website.
I was able to complete the project successfully

I earned the following badge during the project. It was for receiving 10 milestone payments for all projects done in