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, WordPress Playwright e2e Test, Gutenberg blocks and PHP OOP plugin architecture easily in a minute.
- 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 - Create, Reade, Update, Delete, Status changes and so many...
- Internationalization - WP i18n
- PHPUnit Test [Test + Fix]
- JestUnit Test
- WordPress Playwright e2e Test
- PHP OOP plugin architecture [Traits + Interfaces + Abstract Classes]
- Gutenberg blocks, Dynamic blocks
# 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 buildAfter running start, or build command, there will be a folder called /build will be generated at the root directory.
You need activate the plugin from plugin list page. http://localhost/wpex/wp-admin/plugins.php
# One by one.
npm run build
npm run makepot
npm run version
npm run zip
# Single release command - which actually will run the above all in single command.
npm run releaseAfter running release command, there will be a folder called /dist will be generated at the root directory with wp-react-kit.zip project files.
composer run testcomposer run test:allnpm run test:unitPlaywright doc link: https://playwright.dev/docs/running-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:e2eInteractive e2e test
npm run test:e2e:watchFor more about e2e Tests running please check - https://playwright.dev/docs/running-tests
Get all errors of the project:
composer run phpcsFix all errors of the project:
composer run phpcbfFull Composer test run:
composer run test:allhttp://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.
Postman API Link - https://www.getpostman.com/collections/f94073131fc1411506e8
- Job Types
- Method:
GET - URL: http://localhost/wpex/wp-json/job-place/v1/job-types
- Method:
- Companies dropdown
- Method:
GET - URL: http://localhost/wpex/wp-json/job-place/v1/companies/dropdown
- Method:
- Job Lists
- Method:
GET - URL: http://localhost/wpex/wp-json/job-place/v1/jobs
- Method:
- 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
- Method:
- 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 } - Method:
- 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 } - Method:
- Delete Jobs
- Method:
DELETE - URL: http://localhost/wpex/wp-json/job-place/v1/jobs
- Body:
{ "ids": [1, 2] } - Method:
Detailed Documentation - View Detailed documentations with parameters and responses of the REST API
v0.9.0 - 20/12/2024
- Fix: Updated PHP version support > 8.0 and some more library support
- Fix: When Editing a Job, last job is being edited
- Update: Tested upto WordPress 6.7.1
v0.8.0 - 24/05/2023
- New feature: WordPress Playwright test-e2e-utils added.
- New feature: Some Gutenberg blocks has support for Playwright test.
v0.7.0 - 01/01/2023
- Fix: Dynamic block renderer issue.
- Fix: Asset registering multiple times issue.
v0.5.0 - 15/11/2022
- New Feature : Job Create.
- New Feature : Job Update.
- New Feature : Job Delete.
- New Feature : Job Status change.
- New API: Company dropdown list.
- New: Updated logo icon and plugin name.
- New Components: Input Text-Editor, Improved design.
- Refactor: Refactored codebase and updated docs.
- New: Job type seeder.
- Chore: Zip file generator.
- Chore: i18n localization generator.
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.
Options for specific files:
Get specific file errors of the project:
vendor/bin/phpcs job-place.phpFix specific file errors of the project:
vendor/bin/phpcbf job-place.phpSimple Version with raw PHP
https://github.com/ManiruzzamanAkash/wp-react-kit/releases/tag/vSimple
Version with EsLint and i18n Setup
https://github.com/ManiruzzamanAkash/wp-react-kit/releases/tag/vSimpleEslint
Version with EsLint, i18n and React Router Setup
https://github.com/ManiruzzamanAkash/wp-react-kit/releases/tag/vReactRouter
Version with PostCSS and Tailwind CSS Setup
https://github.com/ManiruzzamanAkash/wp-react-kit/releases/tag/vTailwindCss
Version with PHPCS setup
https://github.com/ManiruzzamanAkash/wp-react-kit/releases/tag/vPHPCS
Version with PHP OOP Architecture
https://github.com/ManiruzzamanAkash/wp-react-kit/releases/tag/vPhpOOP
Job List Page
Job List Page with Pagination in different primary color
Job List Page with search
Job Create Page
Job Edit Page
Job Delete
Responsive views
Inside src/blocks you'll find gutenberg block for ready block setup. We've made blocks like dynamic block so that future changes would not create any issue.
Contribution is open and kindly accepted. Before contributing, please check the issues tab if anything in enhancement or bug. If you want to contribute new, please create an issue first with your enhancement or feature idea. Then, fork this repository and make your Pull-Request. I'll approve, if everything goes well.
It's me, Maniruzzaman Akash. Find me at [email protected]












