PHPackages                             immonex/wp-free-plugin-core - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. immonex/wp-free-plugin-core

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

immonex/wp-free-plugin-core
===========================

Shared basic functionality for free immonex WordPress plugins

2.11.2(1mo ago)05951[2 PRs](https://github.com/immonex/wp-free-plugin-core/pulls)GPL-2.0-or-laterPHP

Since Mar 12Pushed 2mo ago2 watchersCompare

[ Source](https://github.com/immonex/wp-free-plugin-core)[ Packagist](https://packagist.org/packages/immonex/wp-free-plugin-core)[ Docs](https://github.com/immonex/wp-free-plugin-core)[ RSS](/packages/immonex-wp-free-plugin-core/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (12)Versions (106)Used By (0)

immonex WP Free Plugin Core
===========================

[](#immonex-wp-free-plugin-core)

[![immonex Open Source Software](assets/immonex-open-source-proptech-software.webp)](assets/immonex-open-source-proptech-software.webp)

This lightweight **PHP/JS library** provides shared basic functionality for free **immonex WordPress plugins**, i.a.

- consistent initialization
- autoloading of CSS and JS files
- option handling / shared settings pages
- geocoding and domains
- simple templating (incl. Twig 3)
- special string checking and manipulation
- color calculations
- domain and URL handling
- emails
- videos

immonex®
--------

[](#immonex)

**immonex** is the *PropTech umbrella brand* of a versatile portfolio of software solutions for the German-speaking real estate industry.

As a part of this, the **immonex WP Plugin Suite** includes a wide range of WordPress plugins for the implementation of sophisticated real estate agency websites and portals, which can be flexibly combined depending on the specific project requirements.

Installation
------------

[](#installation)

### Via Composer

[](#via-composer)

```
$ composer require immonex/wp-free-plugin-core
```

Basic Usage
-----------

[](#basic-usage)

In most cases, a boilerplate template will be used to kickstart plugin development based on this library. Anyway, here comes a basic working example...

The [example plugin folder](examples/myimmonex-example-plugin):

```
myimmonex-example-plugin
├── includes
│   └── class-example-plugin.php
├── languages
├── [vendor]
├── autoload.php
├── composer.json
└── myimmonex-example-plugin.php

```

With the [Composer-based installation](#via-composer), the plugin core library gets added to the **require section** in `composer.json`:

```
    "require": {
        "immonex/wp-free-plugin-core": "^2.9.0"
    },
```

`myimmonex-example-plugin.php` is the **main plugin file** in which the central autoloader file is being included and the main plugin object gets instantiated:

```
require_once __DIR__ . '/autoload.php';

$myimmonex_example_plugin = new My_Plugin( basename( __FILE__, '.php' ) );
$myimmonex_example_plugin->init();
```

The **main plugin class** is located in the file `includes/class-example-plugin.php`. It is derived from the latest **core Base class**:

```
class Example_Plugin extends \immonex\WordPressFreePluginCore\V2_9_0\Base {

	const
		PLUGIN_NAME = 'My immonex Plugin',
		PLUGIN_PREFIX = 'myplugin_',
		PUBLIC_PREFIX = 'myplugin-',
		PLUGIN_VERSION = '1.1.0',
		OPTIONS_LINK_MENU_LOCATION = 'settings';

	...

} // class Example_Plugin
```

That's it!

Folder Based Versioning
-----------------------

[](#folder-based-versioning)

The `src` folder usually contains two "version branch" folders for the latest development (`DEV_[0-9]+`) and production release (`VX_X_X`) versions. It **may** optionally contain multiple production release folders.

```
src
├── DEV  ⚠️ PHP\_CodeSniffer and the related WP sniffs are **not** part of the default dependencies and should be [installed globally](https://github.com/WordPress/WordPress-Coding-Standards?tab=readme-ov-file#composer-global-installation)).

### Git

[](#git)

- Branching strategy: [GitHub flow](https://guides.github.com/introduction/flow/)
- Commit messages: [Conventional Commits](https://www.conventionalcommits.org/)

### PHP compatibility

[](#php-compatibility)

7.4+ (switch to 8.3+ envisaged for future releases)

### Coding Standard

[](#coding-standard)

The source code formatting corresponds to the [WordPress PHP Coding Standards](https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/).

The source files can be checked with PHP\_CodeSniffer (if, as recommended, installed globally as described [here](https://github.com/WordPress/WordPress-Coding-Standards?tab=readme-ov-file#composer-global-installation))):

```
$ phpcs
```

To fix violations automatically as far as possible:

```
$ phpcbf
```

### API Documentation

[](#api-documentation)

The API documentation based on the sources can be generated with the following command and is available in the `apidoc` folder afterwards:

```
$ npm run apidoc
```

To view it using a local webserver:

```
$ npm run apidoc:view
```

If these docs are not needed anymore, the respective folders can be deleted with this command:

```
$ npm run apidoc:delete
```

(The folder `apidoc` is meant to be used locally, it should **not** a part of any repository.)

### Testing

[](#testing)

Locally running unit tests ([PHPUnit](https://phpunit.de/)) for plugins usually requires a temporary WordPress installation (see [infos on make.wordpress.org](https://make.wordpress.org/cli/handbook/plugin-unit-tests/#running-tests-locally)). To use the test install script included in this repository, the file `.env` containing credentials of a local test database has to be created first (see [.env.example](.env.example)).

After that, the temporary testing environment can be installed:

```
$ npm run test:install
```

Running tests in the `tests` folder:

```
$ npm run test
```

### Translations

[](#translations)

The core classes of this library do **and should** only include a few strings that have to be translated. Translations (PO/MO files) that are distributed as part of this library are provided in the `languages` subfolders of the version branch directories. These folders also contain a current POT file as base for custom translations that can be updated with the following command.

```
$ npm run pot
```

Copies of the the **german default translation files** (MO/*de\_DE*) for the WP locales *de\_DE\_formal*, *de\_AT*, *de\_CH* and *ch\_CH\_informal* in all dev and production folders can be created with:

```
$ npm run copy-mo
```

(Existing translation files will **not** be overwritten.)

License
-------

[](#license)

[GPLv2 or later](LICENSE)

Copyright (C) 2014, 2026 [inveris OHG](https://inveris.de/) / [immonex](https://immonex.dev/)

This library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

###  Health Score

50

—

FairBetter than 95% of packages

Maintenance88

Actively maintained with recent releases

Popularity17

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity73

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~21 days

Recently: every ~5 days

Total

103

Last Release

44d ago

Major Versions

0.9.0 → 1.0.02020-03-17

1.9.21 → 2.0.02024-09-09

### Community

Maintainers

![](https://www.gravatar.com/avatar/a9d617c5716d16f75b583742008317f9b8898f8d71b8d18f5c5c0a601a8cdab5?d=identicon)[immonex](/maintainers/immonex)

---

Top Contributors

[![mirozoo](https://avatars.githubusercontent.com/u/4042680?v=4)](https://github.com/mirozoo "mirozoo (185 commits)")

---

Tags

pluginwordpresswpreal-estateimmobilienopenimmoimmonex

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/immonex-wp-free-plugin-core/health.svg)

```
[![Health](https://phpackages.com/badges/immonex-wp-free-plugin-core/health.svg)](https://phpackages.com/packages/immonex-wp-free-plugin-core)
```

###  Alternatives

[ffraenz/private-composer-installer

A composer install helper for private packages

2331.7M5](/packages/ffraenz-private-composer-installer)[philippbaschke/acf-pro-installer

An install helper for Advanced Custom Fields PRO

283724.6k](/packages/philippbaschke-acf-pro-installer)[balbuf/composer-wp

Manage WordPress core, plugins, and themes with composer.

173.6k](/packages/balbuf-composer-wp)[joanrodas/plubo-routes

WordPress routes made simple.

142.8k](/packages/joanrodas-plubo-routes)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
