Real Estate Plugin

Complete Real Estate Wordpress Plugin


Build your Real Estate Portal in WordPress

Minimal Requirements:

Quick installation:

  1. You should have WordPress installed ( https://wordpress.org/ )
  2. Upload zip on server via cpanel file manager to folder "wp-content/plugins" and extract directly on server or just extract in localhost server
  3. Open your Wordpress Administration, click on Plugins and Activate Winter Classified plugin
  4. Click on Listings and install demo content (on standard themes installation will automatically create all widgets/pages/fields for beginning)

NOTE: Installation is also possible via wordpress standard plugin installation but usually server have max upload size configuration too limited for our plugin (around 10MB)

Cpanel screens:

1. Upload and extract plugins.zip into "wp-content/plugins"

2. Activate plugins in your WordPress admin dashboard:

3. Install demo content:

 

 

 

Plugin support custom register/login page, users registered there will automatically become agents/owners.

Visitors can also quick submit listings even without registration proccess, but if user is not registered account will be automatically created (require only email).

For other account types by default quick submission is disabled, but you can enable user type transformation for subscriber in Admin->Listings->Settings

Custom register page can be defined in:

Quick submission

In Admin->Listings->Settings you can define Quick submission page

This page can be used for quick submission (require to populate only required fields and defined fields by administrator). Visitors can submit listings even without registration proccess, but if user is not registered account will be automatically created (require only email).

You can add this page link into your menu if you wish.

You can also add nice quick submission button widget to sidebar, example:

Example of usage:

Admin/Agent/Regular submission

In Admin (Dashboard)->Listings admins/agents can add llistings:

 

 

Plugin support categories, and based on categories you can define visible fields

This visible fields dependent on categories will have effect on listing submission and search form

To enable this feature go to Admin->Listings->Settings->Check "Show categories"->Save

In Admin->Listings->Settings you can also check "Search in sub-categories", this means that when searching, results from subcategories also will be visible in results

You can manage categories in Admin->Listings->Categories

When edit category, you can manage visible fields:

Map pin icons

Map pin icons are also related to categories, example:

Automatic locations

Plugin support automatic locations based on user populated fields like address, country, city, and auto search based on this data with help from google api to detect coordinates.

Search example with google api suggestions, and after that detect coordinates:

Manual strict locations

You can also additionaly add manual strict locations like Country->City->Neighbourhood

To enable this feature go to Admin->Listings->Settings->Check "Show locations"->Save

Then in Admin->Listings->Locations add location tree like example:

You can also add multiple values at once, example:

Location search field can be also added in Admin->Locations->Search form

Now you can select location on listing submission form

After that if you don't want to use custom Country or CIty field you can remove them

Complete plugin is organized based on Fields, so listing details are collected from fields.

You can manage this fields (Drag & drop) to reorder, edit, delete in Admin->Listings->Fields

Some fields are RED LOCKED, this means that we doesn't allow to remove them. We doesn't allow this because field is importand by design/functionality for web or for mobile api. But in any case you can rename it suggesting for some similar purpose.

If you want to customize listing preview HTML, related file:

wp-content\plugins\SW_Win_Classified\codeigniter\application\views\frontend\listingpreview.php

Example code in case when you wish to show custom icon, image or similar based on specific field value, in such case field ID is 1, and value also 1:

Related to price on results listing:

Price in listings is also listing field, so parameters like currency can be changed there.

1. Click on edit price related where you want to change currency

2. Change currency prefix or suffix

Related to currency on payment for rank packages, this is separated and used in invoices:

 

 

Search form is designed as widget or VIsual Composer element. Every search result also must content primary search form to work properly.

When user first click on search form it's redirected to results page ( defined in Admin->Listings->Settings )

Search form contains listing fields, and can be visually generated in Admin->Listings->Search form

For some searching based on numbers from/to you need to make fields searchable and all new added listing will be searchable by this field, example, when edit non-searchable field:

You can also transform INPUTBOX/INTEGER into dropdown on search form, in some cases like Price selection.

Example solution:

 

 

 

Results page ( defined in Admin->Listings->Settings ) containe result items

Result item contain listing fields, and can be visually generated in Admin->Listings->Result item

If you want some HTML changes on result item or result page its located in:

wp-content\plugins\SW_Win_Classified\codeigniter\application\views\frontend\resultspage.php

If you want to customize infowindow on map then file:

wp-content\plugins\SW_Win_Classified\codeigniter\application\views\frontend\infowindow.php

 

For translations we suggest Loco Translate plugin

Localization files can be found in: wp-content\plugins\SW_Win_Classified\locale

1. Multilanguage is very good supported with Free plugin qTranslate-X so install it: https://wordpress.org/plugins/qtranslate-x/

2. After this plugin installation you should manage your langauges:

3. You can add language switcher widget to your template as usual with qTranslate-X:

4. To translate regular translation words use Loco Translate plugin as described in previous section, qTranslate-X will automatically load this translations for selected language.

5. Translate fields:

6. Translate categories

7. Translate listings

8. Some translate settings

Multilanguage required - In dashboard required fields must be populated for all languages

If Multilanguage required will be unchecked, then fields will be copied or auto translated

You can provide Google Translate API key (not free) for best Google translations, in other case MyMemory free api will be used.

Instructions to get API key: https://cloud.google.com/translate/v2/getting_started

Limit cURL calls is there because some servers doesn't allow unlimited calls for translations (each input field translation require one call), here can be limited and other translations will be just copied.

On quick submission user need to populate only default language

Multilingual WordPress

Our plugin also support commercial WPML if you will need it, WPML require additional page for each langauge.

1. Buy and Download CMS version here: https://wpml.org/

2. Install WPML in usual regular way (default order of languages, because in our plugin first language in order is also default) and add new pages for each langauge and page:

3. You should add language switcher widget

4. To translate regular translation words use Loco Translate plugin as described in previous section, WPML also support some additional tools:

5. Translate fields:

6. Translate categories

7. Translate listings

8. Some translate settings

Multilanguage required - In dashboard required fields must be populated for all languages

If Multilanguage required will be unchecked, then fields will be copied or auto translated

You can provide Google Translate API key (not free) for best Google translations, in other case MyMemory free api will be used.

Instructions to get API key: https://cloud.google.com/translate/v2/getting_started

Limit cURL calls is there because some servers doesn't allow unlimited calls for translations (each input field translation require one call), here can be limited and other translations will be just copied.

On quick submission user need to populate only default language

 

 

As any other Wordpress plugin, our also contain lot of Widgets which can be added to some predefined places in specific template

Usually it's right sidebar or footer. For example search form fit nicely right sidebat, map results listing footer etc.

In Admin->Appearance->Widgets you can drag & drop existing widgets (prefixed with SW) to such predefined places in your template

As any other Wordpress plugin, our also contain lot of Shortcodes which can be added to pages

Shortcodes example

[swlisting id="xx"]

Single listing based on listing id "xx", listing id is numeric value and can be found in Admin->Listings, column #

[swlistings text_criteria="xx" show_featured="xx" num_listings="xx" agent_id="xx"]

Multiple listings with filter options

text_criteria can be any text for search, example "luxury"

show_featured can be ALSO_FEATURED or ONLY_FEATURED or ONLY_FEATURED

num_listings is number of listings limitation

agent_id can be user ID or user email

[swagent id="xx"]

Single agent based on user ID "xx", or user email

[swagents text_criteria="" num_listings="xx"]

Multiple agents with filter options

text_criteria can be any text for search, example "luxury"

num_listings is number of listings limitation

[swagencies text_criteria="" num_listings="xx"]

Multiple agencies with filter options

text_criteria can be any text for search, example "luxury"

num_listings is number of listings limitation

[swmap address="xx" content="xx"]

Show map with pin on specific address and with specific content on infowindow

[swmaplistings text_criteria="xx" num_listings="xx" agent_id="xx"]

Multiple listings with filter options, visible on map

text_criteria can be any text for search, example "luxury"

num_listings is number of listings limitation

agent_id can be user ID or user email

[swfeaturedlistings]

Show featured listings only

[swcontact email="xx"]

Show contact form

[swprimarysearch] - Show primary search form 
[swsecondarysearch] - Show secondary search form 

You can use this only if you have VIsual Composer installed

Our plugin also contain lot of VIsual composer elements which can be added to some page, similar to shortcodes, but this one is visualy.

When editing specific page click on for example Frontend editor, when you click on + you can select one of our plugin elements (prefixed with SW)

Search links

If you need link to specific search query, you can use query tags like example:

http://geniuscript.com/replugin/results-page/?search_what=cestica

For more example you can try search directly on your website and check URL bar

Listing Tags

Plugin also support something similar to tags, so you can add new page, set it for page tags (Admin->Listings->Settings->Tags page) and then based on page permalink create tag links as example on screenshot:

Mobile api

Mobile api is also supported for mobile app templates:

Android: https://codecanyon.net/item/real-estate-android-app/14991247

iOS: http://iwinter.com.hr/support/?p=7480

In mobile app code you should define urls to access api like that:

<string name="script_url">http://your-website.com/wp-content/plugins/SW_Win_Classified/codeigniter/mobileapi.php/</string>
<string name="files_url">http://your-website.com/wp-content/plugins/SW_Win_Classified/files/</string>
<string name="thumbnails_url">http://your-website.com/wp-content/plugins/SW_Win_Classified/files/thumbnail/</string>

Of course, replace your-website.com with your real website domain and run first url from browser to check if works properly.

For multilanguage:

In file: wp-content\plugins\SW_Win_Classified\codeigniter\application\config\mobileapp_config.php, also populate $config['lang_config'] array if you using more then one langauge (example available in file)

Only quick search, advanced search, near listings features works for now. Favourites, Login, Register, Quick submission, Taking photos planned in future.

JSON API is compatible with our regular script version: http://real-estate.iwinter.com.hr/documentation/#!/public_api_rss

Facebook login

You should create app in facebook for facebook login functionality:

Create app by this guide: http://iwinter.com.hr/support/?p=552

Then enter parameters in Admin->Listings->Settings

Google reCaptcha SPAM prevention

Get your recaptcha keys on page: https://www.google.com/recaptcha

Then enter parameters in Admin->Listings->Settings

You can export all users email in Admin->Tools->MailChimp, this can be used in mailchimp and also some another apps to import and build newslatter campaign

 

Map:

You can use [swmaplistings] shortcode for this purpose.

Our example on twenty sixteen template:

Slider:

You can use any slider plugin not-dependent to our plugin.

We suggesting and tested with this version:

https://wordpress.org/plugins/ml-slider/

You can just follow this slider or any other slider guides for installation and usage.

Our example on twenty sixteen template:

Some details:

https://www.metaslider.com/documentation/getting-started-with-meta-slider/

https://www.metaslider.com/documentation/how-do-i-include-a-slideshow-in-the-header-of-my-site/

Related to templates:

For demo purposes we using Twenty Sixteen and Total, but tested also with:

Twenty Seventeen,Twenty Sixteen,Twenty Fifteen,Twenty Fourteen and Total

CSS:

If you need to customize some styles, change it in:

wp-content\plugins\SW_Win_Classified\assets\css\style.css

Or even better in your theme custom css file.

For some CSS customizations we suggesting to use Firefox and Developer Tools (CTRL+Shift+K)

PHP related:

Our plugin is based on Codeigniter MVC arhitecture and Bootstrap on frontend.

https://www.codeigniter.com/user_guide/

MVC means:

M = Models (generate database queries)

V = View, contains mostly HTML

C = Controller contains mostly logic, transfer data from M to V

How to detect in which file is something:

We organized Wordpress URL in this way, when url looks like:

wp-admin/admin.php?page=listing_manage

This means listing is controller in admin, and manage is method in this controller

Controller code can be found in: wp-content\plugins\SW_Win_Classified\codeigniter\application\controllers\Listing.php

View (HTML) code can be found in: wp-content\plugins\SW_Win_Classified\codeigniter\application\views\admin\listing\manage.php

When we using URL like this:

wp-admin/admin.php?page=currency_manage&function=addcurrency&id=32

This means currency is controller in admin, and addcurrency is method called in this controller

Controller code can be found in: wp-content\plugins\SW_Win_Classified\codeigniter\application\controllers\Currency.php

View (HTML) code can be found in: wp-content\plugins\SW_Win_Classified\codeigniter\application\views\admin\currency\addcurrency.php

Dashboard menus:

It's defined in file: sw_win_options.php

Widget controller:

wp-content\plugins\SW_Win_Classified\codeigniter\application\controllers\Widgets.php

Widget name represents controller method

Widget views (HTML):

Can be found in: wp-content\plugins\SW_Win_Classified\codeigniter\application\views\widgets

Shortcode controller:

wp-content\plugins\SW_Win_Classified\codeigniter\application\controllers\Shortcodes.php

Shortcode name represents controller method

Shortcode views (HTML):

Can be found in: wp-content\plugins\SW_Win_Classified\codeigniter\application\views\shortcodes

Custom pages defined in Admin->Listings->Settings:

Controller is: wp-content\plugins\SW_Win_Classified\codeigniter\application\controllers\frontend.php

Views can be found in: wp-content\plugins\SW_Win_Classified\codeigniter\application\views\frontend

 

 

 

 

From v1.4 weimplemented advance theme support.

Please reading custom coding section before that.

So you can add custom HTML for all view files based on your theme requirements.

Structure is same as in plugin folder, but here it's located in theme folder, example:

Additionaly we added some custom functions support for themes like demo installation.

By default this functions are implemented in file:

wp-content\plugins\SW_Win_Classified\codeigniter\application\models\Install_m.php

Example how we run this function:

You can define this functions in functions.php template file or similar where you saving such functions usually.

Example functions, we suggesting custom install.php file for such functions:

We have special website made for support, frequency questions for customizations, guides for basic CSS/HTML, tips & tricks etc.: http://iwinter.com.hr/support

Regarding hosting providers, we testing on:

a2_hosting_logo

I've used the following files and services as listed:

  1. Wordpress
  2. jQuery
  3. Bootstrap
  4. The Documenter

Thank you so much for purchasing this plugin. We will do our best to help you if you have any questions or issue relating to this plugin.