Skip to content

Order Download Permission Model

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

Attributes

AttributeData TypeComment
idIntegerPrimary Key
order_idIntegerReference to order
variation_idIntegerReference to product variation
customer_idIntegerReference to customer
download_idIntegerReference to download
download_countIntegerNumber of downloads used
download_limitIntegerMaximum number of downloads allowed
access_expiresDate TimeWhen download access expires
created_atDate TimeCreation timestamp
updated_atDate TimeLast update timestamp

Usage

Please check Model Basic for Common methods.

Accessing Attributes

php
$orderDownloadPermission = FluentCart\App\Models\OrderDownloadPermission::find(1);

$orderDownloadPermission->id; // returns id
$orderDownloadPermission->order_id; // returns order ID
$orderDownloadPermission->customer_id; // returns customer ID
$orderDownloadPermission->download_count; // returns download count

Relations

This model has the following relationships that you can use

order

Access the associated order

  • return FluentCart\App\Models\Order Model

Example:

php
// Accessing Order
$order = $orderDownloadPermission->order;

// For Filtering by order relationship
$orderDownloadPermissions = FluentCart\App\Models\OrderDownloadPermission::whereHas('order', function($query) {
    $query->where('status', 'completed');
})->get();

customer

Access the associated customer

  • return FluentCart\App\Models\Customer Model

Example:

php
// Accessing Customer
$customer = $orderDownloadPermission->customer;

// For Filtering by customer relationship
$orderDownloadPermissions = FluentCart\App\Models\OrderDownloadPermission::whereHas('customer', function($query) {
    $query->where('email', '[email protected]');
})->get();

Usage Examples

Get Order Download Permissions

php
$order = FluentCart\App\Models\Order::find(123);
$downloadPermissions = $order->download_permissions;

foreach ($downloadPermissions as $permission) {
    echo "Download ID: " . $permission->download_id;
    echo "Downloads Used: " . $permission->download_count . "/" . $permission->download_limit;
}

Get Customer Download Permissions

php
$customer = FluentCart\App\Models\Customer::find(456);
$downloadPermissions = $customer->download_permissions;

foreach ($downloadPermissions as $permission) {
    echo "Order ID: " . $permission->order_id;
    echo "Access Expires: " . $permission->access_expires;
}

Create Download Permission

php
$orderDownloadPermission = FluentCart\App\Models\OrderDownloadPermission::create([
    'order_id' => 123,
    'variation_id' => 789,
    'customer_id' => 456,
    'download_id' => 101,
    'download_count' => 0,
    'download_limit' => 5,
    'access_expires' => now()->addDays(30)
]);

Check Download Access

php
$permission = FluentCart\App\Models\OrderDownloadPermission::find(1);

// Check if downloads are available
$canDownload = $permission->download_count < $permission->download_limit;

// Check if access is still valid
$isValid = $permission->access_expires > now();

Get Active Download Permissions

php
$activePermissions = FluentCart\App\Models\OrderDownloadPermission::where('access_expires', '>', now())
    ->whereColumn('download_count', '<', 'download_limit')
    ->get();

FluentCart developer documentation