Skip to content

Tax Class Model

DB Table Name{wp_db_prefix}_fct_tax_classes
SchemaCheck Schema
Source Filefluent-cart/app/Models/TaxClass.php
Name SpaceFluentCart\App\Models
ClassFluentCart\App\Models\TaxClass

Attributes

AttributeData TypeComment
idIntegerPrimary Key
titleStringTax class title
descriptionTextTax class description
metaJSONAdditional metadata
slugStringURL-friendly slug (auto-generated)
created_atDate TimeCreation timestamp
updated_atDate TimeLast update timestamp

Usage

Please check Model Basic for Common methods.

Accessing Attributes

php
$taxClass = FluentCart\App\Models\TaxClass::find(1);

$taxClass->id; // returns id
$taxClass->title; // returns title
$taxClass->description; // returns description
$taxClass->slug; // returns slug

Methods

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

setMetaAttribute($value)

Set meta with automatic JSON encoding (mutator)

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

Usage

php
$taxClass->meta = ['tax_rate' => 8.5, 'exempt_products' => [1, 2, 3]];
// Automatically JSON encodes arrays and objects

getMetaAttribute($value)

Get meta with automatic JSON decoding (accessor)

  • Parameters
    • $value - mixed
  • Returns array

Usage

php
$meta = $taxClass->meta; // Returns decoded array

generateUniqueSlug($title, $ignoreId = null)

Generate unique slug for tax class (static method)

  • Parameters
    • $title - string
    • $ignoreId - integer|null (default: null)
  • Returns string

Usage

php
$slug = FluentCart\App\Models\TaxClass::generateUniqueSlug('Standard Tax');
// Returns: "standard-tax"

Usage Examples

Get Tax Classes

php
$taxClass = FluentCart\App\Models\TaxClass::find(1);
echo "Title: " . $taxClass->title;
echo "Description: " . $taxClass->description;
echo "Slug: " . $taxClass->slug;

Create Tax Class

php
$taxClass = FluentCart\App\Models\TaxClass::create([
    'title' => 'Standard Tax',
    'description' => 'Standard tax rate for most products',
    'meta' => [
        'tax_rate' => 8.5,
        'exempt_products' => [],
        'applicable_regions' => ['US', 'CA']
    ]
]);
// Slug will be automatically generated as "standard-tax"

Get All Tax Classes

php
$taxClasses = FluentCart\App\Models\TaxClass::all();

foreach ($taxClasses as $class) {
    echo "Class: " . $class->title . " (" . $class->slug . ")";
}

Get Tax Class by Slug

php
$taxClass = FluentCart\App\Models\TaxClass::where('slug', 'standard-tax')->first();

Update Tax Class

php
$taxClass = FluentCart\App\Models\TaxClass::find(1);
$taxClass->update([
    'title' => 'Updated Tax Class',
    'description' => 'Updated description',
    'meta' => ['tax_rate' => 9.0, 'updated' => true]
]);
// Slug will be automatically updated if title changes

Get Tax Classes with Meta

php
$taxClasses = FluentCart\App\Models\TaxClass::all();

foreach ($taxClasses as $class) {
    $meta = $class->meta;
    if (isset($meta['tax_rate'])) {
        echo "Class: " . $class->title . " - Rate: " . $meta['tax_rate'] . "%";
    }
}

Search Tax Classes

php
$searchResults = FluentCart\App\Models\TaxClass::where('title', 'like', '%Standard%')->get();

Delete Tax Class

php
$taxClass = FluentCart\App\Models\TaxClass::find(1);
$taxClass->delete();

Get Tax Classes Ordered by Title

php
$orderedClasses = FluentCart\App\Models\TaxClass::orderBy('title', 'asc')->get();

Generate Unique Slug

php
$slug = FluentCart\App\Models\TaxClass::generateUniqueSlug('New Tax Class');
// Returns: "new-tax-class" or "new-tax-class-2" if exists

Get Tax Classes with Specific Meta

php
$taxClasses = FluentCart\App\Models\TaxClass::all();

foreach ($taxClasses as $class) {
    $meta = $class->meta;
    if (isset($meta['tax_rate']) && $meta['tax_rate'] > 8.0) {
        echo "High Tax Class: " . $class->title;
    }
}

FluentCart developer documentation