Tools from Ihsana for developing your own WordPress Plugin
without coding
The way to install it is the same as the general website, but you don't need to install mysql/database.
You can download that file by logging into https://codecanyon.net/downloads and clicking the Downloads Tab
To download Wordpress CMS, you should download it from the official website, namely: https://wordpress.org/download/
Please extract your iWP-Dev Toolz v2 file (rev21.xx.xx.zip) using winrar/winzip/7zip/tar and copy it into your webroot folder, example: d:/xampp/htdocs/iwpdev
Linux and macOS users are advised to change permissions using chmod via the Terminal/SSH
$ sudo su $ cd cd /Applications/XAMPP/xamppfiles/htdocs $ chmod -R 777 *
After successfully extracting and changing the file permissions, then you can configure it via the browser. Open http://localhost/iwpdev, for the first time you will be directed to the Setup configuration page and please enter the requested data.
Check the system requirements, if all support you can click the Next button
On Setup configuration tab you are asked to enter Your Purchase code and Email address, you can find it in the xxxxx-license.txt file
Here you are also asked to install WordPress CMS for Live Test in the wp-test folder, please install your WordPress there.
When finished, please click the Save Changes button, if everything is correct the Next button will appear.
Then you click the Get Activation button, wait until you get the activation code, then click Save Changes button and click Finish/Next button
It is not recommended that you install it on a public server, because this tool is a php code generator, so we recommend using sandbox hosting. Because this will be very dangerous for the security of your server and will also make it difficult for you to edit the code and images for your plugin. Preferably work on a local machine eq: Windows, MacOs or Linux Desktop.






.

http://localhost/iwpdev/ or click Unregister
Then Click Save Changes button
Then Click Save Changes button

To create a new plugin, you need to follow these four steps:
Goto Project page by clicking Projects menu on side menu, then we click Get Started in the Add Project box.
You will be directed to the project page and please enter the required data
| Name | Info | Example |
|---|---|---|
| Project Name | A nice name, only allowed: a-z characters and space | My Private Plugin |
| Short Name | The name of the plugin is written with 3 characters | MPP |
| Project URL | Your plugin provider website | https://ihsana.com/my-plugin |
| Short Description | Write a short description of your plugin | |
| Tags | Each word is separated by a comma | analytics, statistics, stats |
| Version | Version of the plugin to be made | 1.0.1 |
| Name | Info | Example |
|---|---|---|
| Author | Write the name of the plugin owner | Jasman |
| Author URL | Write the author's website | https://facebook.com/jasmanxcrew |
| License | Write a plugin license | GNU General Public License v2 or later |
| License URL | Write a plugin license url | https://www.gnu.org/licenses/gpl-2.0.html |
| Name | Info | Example |
|---|---|---|
| Contributors | Comma separated list of WordPress.org usernames | |
| Donate Link | The link to your donations page |
Once the project is saved, you must activate the newly created project. by clicking the Active button.
Next you have to create a README file, this file is useful if you publish your plugin to the official wordpress site. Click the ReadMe menu on the side menu, you will be asked to fill out the forms provided or let it use the default data.
| Name | Info | Example |
|---|---|---|
| Long Description | Plugin full description, written in markdown format | |
| Installation | Plugin installation instruction, written in markdown format | |
| Project URL | Your plugin provider website | https://ihsana.com/my-plugin |
| FAQ | Plugin frequently asked questions, written in markdown format | |
| Change Log | List versions from most recent at top to oldest at bottom, written in markdown format | |
| Upgrade Notice | Upgrade notices describe the reason a user should upgrade, written in markdown format |
| Name | Info | Example |
|---|---|---|
| WordPress version | The lowest WordPress version the plugin will work on | 5.0 |
| Tested up to | The highest WordPress version the plugin test on | 5.4 |
| Stable tag | The subversion "tag" of the latest stable version in trunk folder | 5.4 |
| PHP version | The lowest PHP version required to run the plugin | 5.6 |
Screenshots fields are written with alternative text or image captions
You need to login to WordPress Live Test and go to the WordPress Dashboard, then click the plugins menu then Installed Plugins. If your plugin appears and tries to Activate, if successful it means you've successfully created a basic plugin.
Goto Image Size page by clicking Image Sizes menu on side menu, after that click Add New Image Size button. Then complete the fields provided and Click Save Changes Button.
| Name | Info | Example |
|---|---|---|
| Name | Image size identifier, only allowed: a-z and - characters | my-cover |
| Label | Label name, only allowed: a-z, A-Z and space characters | My Cover |
| Note | Just an additional note about this image size | |
| Width | Image width in pixels, default: 0 | 80 |
| Height | Image height in pixels, default: 0 | 80 |
| Crop | The image will be cropped to the specified dimensions using center position | OFF |
Login to WordPress Dashboard and try to create a new post. Write the content, by adding blocks and selecting images and uploading images. Once the image is uploaded, click the image and see the image properties on the right. the image size you created should appear in the image size option.
Roles is a role concept to give site owners the ability to control what users can and cannot do. Under the Image Sizes menu, there is the Roles menu, click Roles menu then click Add New Roles button, then the Roles page will appear, please complete the fields provided and Click Save Changes button
| Name | Info | Example |
|---|---|---|
| Role Name | only allowed: a-z characters and - | my-guest |
| Display Name | Display name for role | My Guest |
| Capabilities | Default capabilities |
You can select Capabilities manually as well
Login to your WordPress Dashboard and go to Plugins Menu then click Installed Plugins, please deactivate your plugin and activate your plugin again.
After that go to Users Menu then click Add New. The Add New User page appears, the roles you created should already be in the Role option.
Taxonomies is a way of grouping posts together based on a select number of relationships
How to add taxonomies is very easy, click the Taxonomies menu on sidemenu, then click Custom Taxonomies. The Taxonomies page will appear, then click the Add New Taxonomies button. Complete the fields provided, then click the Save Changes button.
Information fields that must be filled are as follows:
| Name | Info | Example |
|---|---|---|
| Taxonomy Name | Taxonomy Name is used as key, must not exceed 20 characters and may only contain a-z, 0-9, and - characters | genre |
| Label | Name of the Taxonomies shown in the menu, Usually plural | Genre |
| Description | A short descriptive summary of what the taxonomy is for | |
| Add to Post Types? | Adding Custom Taxonomy to WordPress default Post type | Post |
| Name | Info | Example |
|---|---|---|
| Public | Whether a taxonomy is intended for use publicly either via the admin interface or by front-end users | ON |
| Publicly Queryable | Whether the taxonomy is publicly queryable | ON |
| Hierarchical | Whether the taxonomy is hierarchical, eg: parent or children | OFF |
| Show UI | Whether to generate and allow a UI for managing terms in this taxonomy in the admin | ON |
| Show In Menu | Whether to show the taxonomy in the admin menu | ON |
| Show In Nav Menus | Makes this taxonomy available for selection in navigation menus | ON |
| Show In REST-API | Whether to include the taxonomy in the REST API | ON |
| Show Tagcloud | Whether to list the taxonomy in the Tag Cloud Widget controls | ON |
| Show In Quick Edit | Whether to show the taxonomy in the quick/bulk edit panel | ON |
| Show Admin Column | Whether to display a column for the taxonomy on its post type listing screens | ON |
The values in this box are used if the user has not entered the field.
| Name | Info | Example |
|---|---|---|
| Name | Default term name to be used for the taxonomy | Unknow |
| Slug | Default term slug to be used for the taxonomy | unknow |
| Description | Default term description to be used for the taxonomy |
If you want to use Custom User Roles please check Enable Custom Capabilities and select the desired role.
| Name | Info | Example |
|---|---|---|
| Singular Name | Genre | |
| Search Items | Search Genres | |
| All Items | All Genres | |
| Parent item | Parent genre | |
| Parent Item Colon | Parent Genre: | |
| Edit Item | Edit Genre | |
| Update Item | Update Genre | |
| Add new Item | Add new Genre | |
| New Item Name | New Genre Name | |
| Menu Name | Genre |
Post and Options:
Show UI and Show In Menu = ON
Sometimes You need additional fields in the category or taxonomies such as adding an image for the category, You can create it with the extra fields feature.
To create extra-fields code go to the Taxonomies menu then click Extra Fields, The extra-field page will appear then click Add New Extra-Fields button, and complete the requested data then click Save Changes button.
Information fields that must be filled are as follows:
| Name | Info | Example |
|---|---|---|
| Name | Write the name for the extra fields group | Icon |
| Add to Taxonomies? | You can add fields to the selected taxonomies | Post Tag |
| Type Generator | Auto Code | |
| Copy To Custom Code | This will overwrite your custom code, this is useful if you need code samples | ON |
You can create fields or form-input on the fields in this Extra-Fields box
This field is used to modify code generated automatically. Don't make changes if you are not experienced in PHP programming
To use this feature you must change the General Settings: Type Generator = Custom Code and Copy To Custom Code = OFF, after the settings are changed, you can edit the code in Custom Code Box
Category
Go to Custom Posts page by clicking Posts menu on side menu then click Custom Posts menu, after that click Add New Custom Post button. Then complete the fields provided and Click Save Changes Button.
Information fields that must be filled are as follows:
| Name | Info | Example |
|---|---|---|
| Name | Post type key, must not exceed 20 characters and may only contain a-z, 0-9, and - characters | Books |
| Label | Name of the post type shown in the menu, Usually plural | books |
| Menu Icon | Pass the name of a Dashicons helper class to use a font icon, e.g. 'dashicons-chart-pie' | dashicon-book |
| Description | Just an additional note about this custom post | Lorem Ipsum do ismet |
| Taxonomies | WP Core | Custom Taxonomies |
| Support | An array of taxonomy identifiers that will be registered for the post type | Title, Editor, Author |
| Name | Info | Example |
|---|---|---|
| Public | Whether a post type is intended for use publicly either via the admin interface or by front-end users | OFF |
| Publicly Queryable | Whether queries can be performed on the front end for the post type as part of parse request | ON |
| Query Variable | Sets the query_var key for this post type. If false, a post type cannot be loaded at ?{query_var}={post_slug} | OFF |
| Show UI | Whether queries can be performed on the front end for the post type as part of parse request | ON |
| Show In Menu | Where to show the post type in the admin menu | ON |
| Show In Navigation Menus | Makes this post type available for selection in navigation menus, Sometimes the boxes are hidden by default. Goto Appearance -» Menus, then click you try clicking on screen options in the top / right | OFF |
| Show In Admin Bar | Makes this post type available via the admin bar (top sidebar) | OFF |
| Show In REST-API | Whether to include the post type in the REST API | OFF |
| Has Archive | Whether there should be post type archives | OFF |
| Hierarchical | Whether the post type is hierarchical, eg: page | OFF |
By default custom post uses Capabilities: POST. But if you want to use Custom Roles/Capabilities, check Enable Custom Capabilities and choose the user roles that you want.
Labels are text that will appear on the wordpress dashboard
| Name | Info | Example |
|---|---|---|
| Singular Name | Item | |
| Add New | Add New | |
| Add New Item | Add New Item | |
| Add Item | Add Item | |
| Edit Item | Edit Item | |
| View Item | View Item | |
| All Items | All Items | |
| Search Items | Search Items | |
| Parent Items: | Parent Items: | |
| Not found | Not found | |
| No found in trash | No found in trash |
ON
Custom fields, also referred to as post meta, is a feature in WordPress which allows users to add additional information when writing a post
To add fields to a post, you can create it as follows: click the Posts menu on sidemenu, then click Meta Boxes. The Meta Boxes page will appear, then click the Add New Meta Boxes button. Complete the fields provided, then click the Save Changes button.
Information fields that must be filled are as follows:
| Name | Info | Example |
|---|---|---|
| Name | Meta box ID (used in the id attribute for the meta box) | biography |
| Title | Title of the meta box | Biography |
| Context | The context within the screen where the boxes should display | Advanced |
| Priority | The priority within the context where the boxes should show | Defauld |
| Type Generator | Auto Code | |
| Copy To Custom Code | This will overwrite your custom code, this is useful if you need code samples. | ON |
You can limit where the metabox will be displayed by checking the post name in this feature
By using this feature, you don't need to write coding to create a field (form input) on the post page, you can write a name, label or input type.
The generated code will appear here, You can edit it if needed.
To use this feature you must change the General Settings: Type Generator = Custom Code and Copy To Custom Code = OFF, after the settings are changed, you can edit the code in Custom Code Box
If you want to insert a javascript file into WordPress, you must use
Go to Enqueue Scripts page by clicking Enqueue then Scripts menu on side menu, then we click Add New Scripts button
After that, complete the form provided and press the Save Changes button.
| Name | Info | Example |
|---|---|---|
| Name | Name of the script, should be unique | my-file-js |
| Source | Full URL of the script, or path of the script relative to the WordPress root directory | asset/js/my-file.js |
| Note | Just for additional information | Used For Widget |
| Version | String specifying script version number, if it has one, which is added to the URL as a query string for cache busting purposes | 1.1 |
| In Footer | ON = The javascript file will be placed before </body> |
OFF |
| Interface | Where the script will be inserted at: Front-End or Back-End | Back-End |
Please tick the libraries used for the code dependencies you are using, eg: jQuery
Restrict script from being executed on other pages.
yourplugin/assets/js/test.js
(function($){
alert("Hello world!");
})(jQuery);
assets/js/test.js and Interface = Back-End and Dependencies = jquery
Just like javascripts, you must use Enqueue Styles to insert styles or css files into your WordPress
How to make the code is very easy, go to the Enqueue and Styles menu and click the Add New Enqueue Styles button, then complete the form provided and click Save Changes button
| Name | Info | Example |
|---|---|---|
| Name | Name of the stylesheet, should be unique | my-style |
| Note | Just for additional information | Used For Widged |
| Source | Full URL of the stylesheet, or path of the stylesheet relative to the WordPress root directory | asset/css/my-file.css |
| Version | String specifying stylesheet version number | 1.1 |
| Interface | Back-End | |
| Media | The media for which this stylesheet has been defined |
Dependencies for these styles, this is necessary so that the code is executed after the dependencies have been processed.
So that using styles does not affect other pages, you can use this feature.
yourplugin/assets/css/test.css
.wp-menu-image::before{color: red !important;}
assets/css/test.css and Interface = Back-End
In WordPress, widgets are blocks of content that you can add to your site's sidebars, footers, and other area.
Widgets can be made by going to the Appearance menu then clicking the Widgets, The widgets page will appear, then click the Add New Widget button. Complete the form provided then click Save Changes button.
The following are the forms that must be filled out:
| Name | Info | Example |
|---|---|---|
| Name | Only contain a-z, 0-9, and - characters | my-widget |
| Title | The widget title will appear on the dashboard | My Widget |
| Description | The widget description will appear on the dashboard | |
| Type Generator | Auto Code | |
| Copy To Custom Code | This will overwrite your custom code, this is useful if you need code samples. | ON |
In this feature you can add scripts to your widget, you just need to tick Javascript File or CSS Style File. And as well as the sample code needed to create your widget, you just need to add what code samples you need. code will be generated to your widget.
You can also make options for your widget such as color options, number and others
This field is used to modify code generated automatically
To use this feature you must change the General Settings: Type Generator = Custom Code and Copy To Custom Code = OFF, after the settings are changed, you can edit the code in Custom Code Box
By using this feature you can easily create options for your plugins, You can make options like: date, number, color, range, telp etc
To create plugin option code go to the Plugin Options menu, The Plugin Options page will appear then click Add New Plugin Options button, and complete the requested data then click Save Changes button.
| Name | Info | Example |
|---|---|---|
| Name | Only contain a-z, 0-9, and - characters | my-plugin-option |
| Page Title | The text to be displayed in the title tags of the page when the menu is selected | My Plugin Option |
| Menu Title | The text to be used for the menu | My Plugin Option |
| Appears on | Will the menu appear on The Setting Menu or The Top Level Menu | The Setting Menu |
| Section Title | Shown as the heading for the section | General Settings |
| Section Information | Enter your Settings Below: | |
| Type Generator | Auto Code | |
| Copy To Custom Code | This will overwrite your custom code, this is useful if you need code samples. | ON |
The contents of this box are the input forms for plugin options
This field is used to modify code generated automatically
To use this feature you must change the General Settings: Type Generator = Custom Code and Copy To Custom Code = OFF, after the settings are changed, you can edit the code in Custom Code Box
Login to WordPress Dashboard and the options page should already be there (The Top Level Menu) or you can see menu on Settings menu
Sometimes, we need to modify the layout for the post, this can be done using the following methods:
To change layout post go to the Appearance menu then click Content, The content page will appear then click Add New Content button, and complete the requested data then click Save Changes button.
Information fields that must be filled are as follows:
| Name | Info | Example |
|---|---|---|
| Name | Name must not exceed 20 characters and may only contain a-z, 0-9, and - characters | my-post |
| Apply to? | You can add fields to the selected taxonomies | Post Tag |
| Type Generator | Auto Code | |
| Copy To Custom Code | This will overwrite your custom code, this is useful if you need code samples | ON |
In this feature you can add scripts to your content layout, you just need to tick Javascript File or CSS Style File. And as well as the sample code needed to create your content layout, you just need to add what code samples you need. code will be generated to your content layout.
This field is used to modify code generated automatically
To use this feature you must change the General Settings: Type Generator = Custom Code and Copy To Custom Code = OFF, after the settings are changed, you can edit the code in Custom Code Box
To test the project, please go to the post page on your WordPress.
Short codes that are used to change content formatting or add features to web pages and TinyMCE plugin makes it more user friendly.
Go to the Posts menu then clicking the Short Codes, The Short Code page will appear, then click the Add New Short Code button. Complete the form provided then click Save Changes button.
| Name | Info | Example |
|---|---|---|
| Name | Shortcode tag to be searched in post content. Only contain a-z, 0-9, and - characters | lorem-ipsum |
| Label | The text that will appear on the button | Lorem Ipsum |
| Icon | Pass the name of a Dashicons helper class to use a font icon, e.g. 'dashicons-chart-pie' | dashicons-media-spreadsheet |
| Type Generator | Auto Code | |
| Copy To Custom Code | This will overwrite your custom code, this is useful if you need code samples. | ON |
You can add scripts to your short-code, you just need to tick Javascript File or CSS Style File. and the same goes for the shortcode replacement code (content render), you just need to add what code samples you need. Sample code will be generated automatically .
You can make attributes for your short-code such as color options, number and others, example: [myshortcode color="#ddd"][/myshortcode]
This field is used to modify code generated automatically
To use this feature you must change the General Settings: Type Generator = Custom Code and Copy To Custom Code = OFF, after the settings are changed, you can edit the code in Custom Code Box
| Name | Info | Example |
|---|---|---|
| Name | Only contain a-z, 0-9, and - characters | Donate |
| Title | The text that will be visible in the Toolbar. Including html tags is allowed> | Donate |
| URL Type | External URL | |
| URL | The href attribute for the link | https://ihsana.com/donate |
| Parent | The ID of the parent node | Root |
Login to your WordPress Dashboard and The admin bars that you created should already be in the top menu.
For information about REST-API, you can go to REST-API on side menu.
To activate rest-api, please follow the instructions below:
Go to Posts then click Custom Posts menu, then edit your custom Posts, then this option: Show In REST-API = ON
Go to Taxonomies then click Custom Taxonomies menu, then edit your custom taxonomies, then this option: Show In REST-API = ON
WXR File is a sample data that you can import into your wordpress, this sample data has been made according to the project you are working on now.
1. This license grants you, the purchaser, an ongoing, non-exclusive, non-transferable, worldwide license to make use of the digital Tool or App you have selected. Read the rest of this license for the details that apply to your use of the Tool or App, as well as the FAQs (which form part of this license).
2. This license is for one copy (one seat, or one usage at any one time) of the Tool or App, installed on up to 2 of your computers.
3. You can use a Tool to create an unlimited number of different End Products. You can use an App for its intended application. Both using a Tool and an App is conditional upon there only ever being one concurrent use of the item by you, the original purchaser.
4. You can sell End Products created using a Tool, to any number of people. As explained further on, the End Products must not contain the Tool or App itself.
5. You can’t re-distribute a Tool or App (this includes no public distribution, display or performance). You also can’t modify or make derivatives of a Tool or App.
For example: You purchase a PSD brush; you can’t give the brush file to a friend.
The Tool or App is licensed to you ‘as is’ and is a complete item that cannot be modified.
6. You can’t incorporate or distribute the Tool or the App with an End Product. But you may link the users of the End Product to where they can directly license the Tool or App.
For example: You license a font and use it in a poster template. You can’t include the font in the poster template download, but you can link buyers of the template to the font.
7. This license applies in conjunction with the Envato Market Terms for your use of Envato Market. If there is an inconsistency between this license and the Envato Market Terms, this license will apply to the extent necessary to resolve the inconsistency.
8. This license can be terminated if you breach it. If that happens, you must stop using the Tool or App and delete it from your computers.
9. The author of the Tool or App retains ownership of the item but grants you the license on these terms. This license is between the author and you. Envato Pty Ltd is not a party to this license or the one giving you the license.
| Term used | Meaning |
|---|---|
| End Product | Any digital or printed work |
| Tool | An installable software application designed to perform specific tasks in order to create other works. Tools include fonts, extensions, 3D and video software scripts, 3D and video software plug-ins, and graphics software add-ons. |
| App | An installable software application designed to automate and perform specific tasks. Apps include email and file extractors, slideshow creators, data harvesters, crawlers, compressors, generators, and file importers and exporters. |
| Name | License | Author | URL |
|---|---|---|---|
| AdminLTE | MIT License | Colorlib | http://colorlib.com |
| Bootstrap | MIT | The Bootstrap Authors | https://github.com/twbs/bootstrap/graphs/contributors |
| Bootstrap Switch | Apache-2.0 | Mattia Larentis | https://bttstrp.github.io/bootstrap-switch |
| Bootstrap Tags Input | MIT License | Tim Schlechter | https://github.com/bootstrap-tagsinput/bootstrap-tagsinput |
| Chart.js | MIT License | Chart.js Contributors | https://www.chartjs.org |
| CodeMirror | MIT License | Marijn Haverbeke and others | https://codemirror.net |
| Dashicons | GPL 2.0 or later | WordPress | https://github.com/WordPress/dashicons |
| DataTables | MIT License | SpryMedia Ltd | http://www.datatables.net |
| DataTables AutoFill | MIT License | SpryMedia Ltd | http://www.datatables.net |
| DataTables Bootstrap 4 integration | MIT License | SpryMedia Ltd | http://www.datatables.net |
| DataTables Buttons | MIT License | SpryMedia Ltd | http://www.datatables.net |
| DataTables ColReorder | MIT License | SpryMedia Ltd | http://www.datatables.net |
| DataTables FixedColumns | MIT License | SpryMedia Ltd | http://www.datatables.net |
| DataTables FixedHeader | MIT License | SpryMedia Ltd | http://www.datatables.net |
| DataTables KeyTable | MIT License | SpryMedia Ltd | http://www.datatables.net |
| DataTables Responsive | MIT License | SpryMedia Ltd | http://www.datatables.net |
| DataTables RowGroup | MIT License | SpryMedia Ltd | http://www.datatables.net |
| DataTables RowReorder | MIT License | SpryMedia Ltd | http://www.datatables.net |
| DataTables Scroller | MIT License | SpryMedia Ltd | http://www.datatables.net |
| DataTables Select | MIT License | SpryMedia Ltd | http://www.datatables.net |
| Font Awesome Free | MIT, SIL OFL, and CC | @fontawesome | https://fontawesome.com |
| iCheck Bootstrap | MIT License | Hovhannes Bantikyan | https://fontawesome.com |
| jQuery | MIT License | JS Foundation | https://jquery.com/ |
| Jquery Mapael | MIT License | Vincent Brouté | https://www.vincentbroute.fr/mapael |
| jQuery UI | MIT License | JS Foundation | http://jqueryui.com |
| Overlay Scrollbars | MIT License | KingSora | Rene Haas | https://github.com/KingSora/OverlayScrollbars |
| Raphaël | MIT License | Dmitry Baranovskiy | http://raphaeljs.com |
| SweetAlert2 | MIT License | Tristan Edwards & Limon Monte | https://sweetalert2.github.io/ |
| SweetAlert2 Theme Bootstrap 4 | MIT License | SweetAlert2 | https://sweetalert2.github.io/ |
| Toast | MIT License | Toastr Maintainers | https://github.com/CodeSeven/toastr |
| Generator/Features | v1 | v2 |
|---|---|---|
| Project | Yes | Yes |
| ReadMe | No | Yes |
Open an explorer or finder window, just go to the folder: your_iwpdev/wp-test/wp-content/plugins/your-plugin then you can compress your plugin with zip

It seems you didn't install PHP-Zip or PHP-GD module as suggested in system requirements, please do this:
Edit file: /php/php.ini look for "extension=zip" and uncomment it
;extension=zipchange to:
extension=zip
and continue still on: /php/php.ini look for "extension=gd2" and uncomment it
;extension=gdchange to:
extension=gd
Or
;extension=gd2change to:
extension=gd2
Stop and Then Start Apache after uncommeting an extension
You can find the file path at the top of the form

And also on See The Result button:

or in the Browser title

You have to use parent node fields.

Example:

In IWPDevToolz you have to create 3 menus with parents like the following picture:

For three or more levels the same as above, look at the image below:

Type Generator = Custom Code and Copy To Custom Code = OFF, after the settings are changed, you can edit the code in Custom Code Box
