DownloadWP-React-Kit
A simple starter kit to work in WordPress plugin development using WordPress Rest API, WP-script, React, React Router, Tailwind CSS, PostCSS, Eslint, WP-Data, WP-Data Store, React Components, React CRUD, i18n, PHPUnit Test, JestUnit Test, e2e Test and PHP OOP plugin architecture easily in a minute.
What's included?
-
WordPress Rest API
-
WP-script Setup
-
React
-
React Router
-
TypeScript
-
Tailwind CSS [Nested + ]
-
Scss
-
PostCSS
-
Eslint
-
WP-Data
-
WP-Data Redux Store [Redux Saga, Generator function, Thunk, Saga Middleware]
-
React Components
-
React CRUD Operations [Continuing...]
-
Internationalization - WP i18n
-
PHPUnit Test [Test + Fix]
-
JestUnit Test
-
Jest-Pupetter e2e Test
-
PHP OOP plugin architecture [Traits + Interfaces + Abstract Classes]
Quick Start
# Clone the Git repository
git clone https://github.com/ManiruzzamanAkash/wp-react-kit.git
# Install PHP-composer dependencies [It's empty]
composer install
# Install node module packages
npm i
# Start development mode
npm start
# Start development with hot reload (Frontend components will be updated automatically if any changes are made)
npm run start:hot
# To run in production
npm run build
After running start , or build command, there will be a folder called /build will be generated at the root directory.
Activate the plugin
You need activate the plugin from plugin list page.
http://localhost/wpex/wp-admin/plugins.php
Run PHP Unit Test
./vendor/bin/phpunit
Run Jest Unit Test
npm run test:unit
Run Jest-Pupeteer e2e Test
WordPress core doc link: https://make.wordpress.org/core/2019/06/27/introducing-the-wordpress-e2e-tests/
Requirements:
- Must have docker installed and running by ensuring these commands - npm run env:stop
npm run env:start
Normal e2e test npm run test:e2e
Interactive e2e test npm run test:e2e:watch
PHP Coding Standards - PHPCS
Get all errors of the project: vendor/bin/phpcs .
Fix all errors of the project: vendor/bin/phpcbf .
Browse Plugin
http://localhost/wpex/wp-admin/admin.php?page=jobplace#/
Where, /wpex is the project root folder inside /htdocs .
Or, it could be your custom processed URL.
REST API's
Postman API Link - https://www.getpostman.com/collections/f94073131fc1411506e8
REST API Documentation
-
Job Types
- Method: `GET`
- URL: http://localhost/wpex/wp-json/job-place/v1/job-types
-
Job Lists
- Method: `GET`
- URL: http://localhost/wpex/wp-json/job-place/v1/jobs
-
Job Details
- Method: `GET`
- URL By ID: http://localhost/wpex/wp-json/job-place/v1/jobs/1
- URL By Slug: http://localhost/wpex/wp-json/job-place/v1/jobs/first-job
-
Create Job
- Method: `POST`
- URL: http://localhost/wpex/wp-json/job-place/v1/Jobs
- Body:
{
"title": "Simple Job Post",
"slug": "simple-job-post",
"description": "Simple job post description",
"company_id": 1,
"job_type_id": 2,
"is_active": 1
}
-
Update Job
- Method: `PUT`
- URL: http://localhost/wpex/wp-json/job-place/v1/jobs/1
- Body:
{
"title": "Simple Job Post Updated",
"slug": "simple-job-post-updated",
"description": "Simple job post description",
"company_id": 1,
"job_type_id": 2,
"is_active": 1
}
-
Delete Jobs
- Method: `DELETE`
- URL: http://localhost/wpex/wp-json/job-place/v1/jobs
- Body:
{
"ids": [1, 2]
}
Detailed Documentation -
View Detailed documentations with parameters and responses of the REST API
Version & Changelogs
v0.4.1 - 18/08/2022
-
Added Jest Unit Test Setup.
-
Added some dummy Jest Unit Test.
-
Fix #11 - Version naming while installing.
v0.4.0 - 12/08/2022
-
Added many re-usable general components.
-
Header Component refactored and re-designed.
-
WP-Data setup and made Job Store.
-
Job List Page frontend added.
v0.3.1 - 11/08/2022
-
PHPUnit Test cases setup.
-
PHPUnit Test cases added for Job Manager and Job REST API's.
v0.3.0 - 02/08/2022
-
Necessary traits to handle - sanitization, query.
-
Advanced setup for migration, seeder, REST API.
-
Jobs, Job Types REST API developed.
<details> <summary>Options for specific files:</summary>
Get specific file errors of the project: vendor/bin/phpcs job-place.php
Fix specific file errors of the project: vendor/bin/phpcbf job-place.php
</details>
Versions
<details> <summary>Simple Version with raw PHP</summary>
https://github.com/ManiruzzamanAkash/wp-react-kit/releases/tag/vSimple
</details>
<details> <summary>Version with EsLint and i18n Setup</summary>
https://github.com/ManiruzzamanAkash/wp-react-kit/releases/tag/vSimpleEslint
</details>
<details> <summary>Version with EsLint, i18n and React Router Setup</summary>
https://github.com/ManiruzzamanAkash/wp-react-kit/releases/tag/vReactRouter
</details>
<details> <summary>Version with PostCSS and Tailwind CSS Setup</summary>
https://github.com/ManiruzzamanAkash/wp-react-kit/releases/tag/vTailwindCss
</details>
<details> <summary>Version with PHPCS setup</summary>
https://github.com/ManiruzzamanAkash/wp-react-kit/releases/tag/vPHPCS
</details>
<details> <summary>Version with PHP OOP Architecture</summary>
https://github.com/ManiruzzamanAkash/wp-react-kit/releases/tag/vPhpOOP
</details>
File structure:
<details> <summary>Simple Version Code-Structure:</summary>
</details>
Demo with Simple Version
<details> <summary>Demo in WordPress plugin:</summary>
</details>
Demo With React Router & Menu
Final Demos
Job List Page
Job List Page with Pagination
Job List Page with search
|