Skip to content

License Site Model

DB Table Name{wp_db_prefix}_fct_license_sites
SchemaCheck Schema
Source Filefluent-cart-pro/app/Modules/Licensing/Models/LicenseSite.php
Name SpaceFluentCartPro\App\Modules\Licensing\Models
ClassFluentCartPro\App\Modules\Licensing\Models\LicenseSite

Attributes

AttributeData TypeComment
idIntegerPrimary Key
site_urlStringSite URL
server_versionStringServer version
platform_versionStringPlatform version
otherJSONAdditional site information
created_atDate TimeCreation timestamp
updated_atDate TimeLast update timestamp

Usage

Please check Model Basic for Common methods.

Accessing Attributes

php
$licenseSite = FluentCartPro\App\Modules\Licensing\Models\LicenseSite::find(1);

$licenseSite->id; // returns id
$licenseSite->site_url; // returns site URL
$licenseSite->server_version; // returns server version
$licenseSite->platform_version; // returns platform version

Relations

This model has the following relationships that you can use

activations

Access all license activations for this site

  • return FluentCartPro\App\Modules\Licensing\Models\LicenseActivation Model Collection

Example:

php
// Accessing Activations
$activations = $licenseSite->activations;

// For Filtering by activations relationship
$licenseSites = FluentCartPro\App\Modules\Licensing\Models\LicenseSite::whereHas('activations', function($query) {
    $query->where('status', 'active');
})->get();

Methods

Along with Global Model methods, this model has few helper methods.

setOtherAttribute($value)

Set other information with automatic JSON encoding (mutator)

  • Parameters
    • $value - mixed (array, object, or string)
  • Returns void

Usage

php
$licenseSite->other = ['domain' => 'example.com', 'ssl' => true];
// Automatically JSON encodes arrays and objects

getOtherAttribute($value)

Get other information with automatic JSON decoding (accessor)

  • Parameters
    • $value - mixed
  • Returns array

Usage

php
$other = $licenseSite->other; // Returns decoded array

isLocalSite()

Check if the site is a local development site

  • Parameters
    • none
  • Returns boolean

Usage

php
$isLocal = $licenseSite->isLocalSite();
// Returns true if site is local (lab, local, test, localhost, staging, dev, etc.)

Usage Examples

Get License Sites

php
$licenseSite = FluentCartPro\App\Modules\Licensing\Models\LicenseSite::find(1);
echo "Site URL: " . $licenseSite->site_url;
echo "Server Version: " . $licenseSite->server_version;
echo "Platform Version: " . $licenseSite->platform_version;

Create License Site

php
$licenseSite = FluentCartPro\App\Modules\Licensing\Models\LicenseSite::create([
    'site_url' => 'https://example.com',
    'server_version' => 'PHP 8.1',
    'platform_version' => 'WordPress 6.0',
    'other' => [
        'domain' => 'example.com',
        'ssl' => true,
        'theme' => 'custom-theme'
    ]
]);

Get All License Sites

php
$licenseSites = FluentCartPro\App\Modules\Licensing\Models\LicenseSite::all();

foreach ($licenseSites as $site) {
    echo "Site: " . $site->site_url;
    echo "Is Local: " . ($site->isLocalSite() ? 'Yes' : 'No');
}

Get License Sites with Activations

php
$licenseSites = FluentCartPro\App\Modules\Licensing\Models\LicenseSite::with('activations')->get();

foreach ($licenseSites as $site) {
    echo "Site: " . $site->site_url;
    echo "Activations: " . $site->activations->count();
}

Get Local Sites

php
$licenseSites = FluentCartPro\App\Modules\Licensing\Models\LicenseSite::all();

foreach ($licenseSites as $site) {
    if ($site->isLocalSite()) {
        echo "Local Site: " . $site->site_url;
    }
}

Get Sites by URL

php
$site = FluentCartPro\App\Modules\Licensing\Models\LicenseSite::where('site_url', 'https://example.com')->first();

Update License Site

php
$licenseSite = FluentCartPro\App\Modules\Licensing\Models\LicenseSite::find(1);
$licenseSite->update([
    'server_version' => 'PHP 8.2',
    'platform_version' => 'WordPress 6.1',
    'other' => ['updated' => true, 'timestamp' => now()]
]);

Get Sites by Server Version

php
$php8Sites = FluentCartPro\App\Modules\Licensing\Models\LicenseSite::where('server_version', 'like', '%PHP 8%')->get();

Get Sites by Platform Version

php
$wp6Sites = FluentCartPro\App\Modules\Licensing\Models\LicenseSite::where('platform_version', 'like', '%WordPress 6%')->get();

Delete License Site

php
$licenseSite = FluentCartPro\App\Modules\Licensing\Models\LicenseSite::find(1);
$licenseSite->delete();

Get Sites with Other Information

php
$licenseSites = FluentCartPro\App\Modules\Licensing\Models\LicenseSite::all();

foreach ($licenseSites as $site) {
    $other = $site->other;
    if (isset($other['ssl']) && $other['ssl']) {
        echo "SSL Site: " . $site->site_url;
    }
}

FluentCart developer documentation