Appearance
Subscription Meta Model
| DB Table Name | {wp_db_prefix}_fct_subscription_meta |
|---|---|
| Schema | Check Schema |
| Source File | fluent-cart/app/Models/SubscriptionMeta.php |
| Name Space | FluentCart\App\Models |
| Class | FluentCart\App\Models\SubscriptionMeta |
Attributes
| Attribute | Data Type | Comment |
|---|---|---|
| id | Integer | Primary Key |
| subscription_id | Integer | Reference to subscription |
| meta_key | String | Meta key name |
| meta_value | Text | Meta value (JSON encoded for arrays/objects) |
| created_at | Date Time | Creation timestamp |
| updated_at | Date Time | Last update timestamp |
Usage
Please check Model Basic for Common methods.
Accessing Attributes
php
$subscriptionMeta = FluentCart\App\Models\SubscriptionMeta::find(1);
$subscriptionMeta->id; // returns id
$subscriptionMeta->subscription_id; // returns subscription ID
$subscriptionMeta->meta_key; // returns meta key
$subscriptionMeta->meta_value; // returns meta valueRelations
This model has the following relationships that you can use
product_detail
Access the associated subscription
- return
FluentCart\App\Models\SubscriptionModel
Example:
php
// Accessing Subscription
$subscription = $subscriptionMeta->product_detail;
// For Filtering by subscription relationship
$subscriptionMetas = FluentCart\App\Models\SubscriptionMeta::whereHas('product_detail', function($query) {
$query->where('status', 'active');
})->get();Methods
Along with Global Model methods, this model has few helper methods.
setMetaValueAttribute($value)
Set meta value with automatic JSON encoding (mutator)
- Parameters
- $value - mixed (array, object, or string)
- Returns
void
Usage
php
$subscriptionMeta->meta_value = ['custom_data' => 'value', 'settings' => ['key' => 'value']];
// Automatically JSON encodes arrays and objectsgetMetaValueAttribute($value)
Get meta value with automatic JSON decoding (accessor)
- Parameters
- $value - mixed
- Returns
mixed
Usage
php
$metaValue = $subscriptionMeta->meta_value; // Returns decoded value (array, object, or string)Usage Examples
Get Subscription Meta
php
$subscription = FluentCart\App\Models\Subscription::find(123);
$meta = $subscription->subscription_meta;
foreach ($meta as $metaItem) {
echo "Key: " . $metaItem->meta_key;
echo "Value: " . print_r($metaItem->meta_value, true);
}Create Subscription Meta
php
$subscriptionMeta = FluentCart\App\Models\SubscriptionMeta::create([
'subscription_id' => 123,
'meta_key' => 'custom_field',
'meta_value' => 'custom_value'
]);Store Complex Subscription Data
php
$subscriptionMeta = FluentCart\App\Models\SubscriptionMeta::create([
'subscription_id' => 123,
'meta_key' => 'subscription_settings',
'meta_value' => [
'auto_renew' => true,
'payment_reminder_days' => 7,
'grace_period_days' => 3,
'notifications' => ['email' => true, 'sms' => false]
]
]);Get Meta by Key
php
$meta = FluentCart\App\Models\SubscriptionMeta::where('subscription_id', 123)
->where('meta_key', 'subscription_settings')
->first();
if ($meta) {
echo "Settings: " . print_r($meta->meta_value, true);
}Update Meta Value
php
$meta = FluentCart\App\Models\SubscriptionMeta::find(1);
$meta->meta_value = ['updated' => true, 'timestamp' => now()];
$meta->save();Get All Meta for Subscription
php
$subscriptionMetas = FluentCart\App\Models\SubscriptionMeta::where('subscription_id', 123)->get();Get Subscription Settings
php
$settings = FluentCart\App\Models\SubscriptionMeta::where('subscription_id', 123)
->where('meta_key', 'subscription_settings')
->first();
if ($settings) {
$autoRenew = $settings->meta_value['auto_renew'] ?? false;
$gracePeriod = $settings->meta_value['grace_period_days'] ?? 0;
}