Voting functionality needed to be developed based on Wordpress CMS, as well as integrate it along with the rest of functionality into provided layout coding.
The main features of the plugin:
The plugin will allow voting any custom type or taxonomy, as Wordpress platform included many of them not just articles.
Example: the platform has X active contests, every contest has Y items participating in the contest. Every user has Z votes (let´s say 3) to distribute in every of the active contests, this means, the user can vote 3 items in the contest.
The 3 votes the user can distribute have different values:
- Type 1 (Gold Star) equals 100 points
- Type 2 (Silver Star) equals 70 points
- Type 3 (Bronze Star) equals 50 points
The three stars (gold, silver or bronze) are the votes (not the rating!). The process of voting is: the one drags one of the three stars (gold, silver or bronze) and drop it on an item (any item in the contest). The item then receives the amount of points associated with that star (100, 70 or 50).
Raiting should be developed in such a way so when a user gave one of the start for one item and then decided to give the SAME start for another, previous vote is canceled and a new vote is counted as points (as many as that represents) for the current product.
Tasks: The task was to create functionality necessary to implement voting feature based on Wordpress CMS. Functionality involves displaying of the posts of a certain post-type. For each post user can vote only once. As a vote user can give a post gold, silver or bronze star. At the same time this post is scored points appropriate to the given star. There is also a possibility to re-vote. If a user has already given, for example, gold star for a certain post, he can change his mind and vote with this star for another post. At the same time points from a previous post is removed and are scored to a new one (in behalf for which re-voting was done). At the bottom of each page there is a counter of the given stars. The process itself is organized in the following way: at the bottom of the screen there are 3 stars which could be used to vote for something (in case they were not given to any of the posts before), users drags necessary star to the post, for which he is going to vote for and points which equals to the dragged star is scored to this post.
After this template for the page was coded according to the provided by a client mockup. Necessary functionality was implemented for certain pages in order to load content dynamically (layout coding was already done, but content was hardcoded). At some of the pages upload of the posts by means of AJAX was done (without necessity to refresh the page).
For the work with user profiles there was BuddyPress plugin already installed at the website. For user profiles which are displayed by this plugin, template was changed according to the provided instructions and activity feed was changed as user's activity at the voting page was added there (i.e. it is displayed when, for the product of which restraint and in which voting user took part and whom did he gave his vote).
Technologies used: Wordpress; PHP; jQuery; jQuery Responsive Slider; Slider plugin; AJAX; HTML; CSS; WP-Types - Plugin needed to create custom posts, taxonomies and fields; Posts 2 Posts - Plugin for creation of relations between posts; Buddypress, plugin used to organize social network.