Skip to content

Commit 1038690

Browse files
committed
Add feature value retrieval method
- Introduced `getFeatureValue` method in the `ManagesCustomer` trait to safely retrieve feature values from the subscription, with a default fallback.
1 parent 1f51760 commit 1038690

13 files changed

+784
-769
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
.DS_Store
22
.thumbs.db
33
*.bak
4+
*.zip
45
/vendor
56

67
composer.lock

database/migrations/2022_07_24_092101_create_plans_table.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public function up()
2929
$table->unsignedInteger('interval_count')->default(1);
3030
$table->double('price', 12, 2)->default(0.00);
3131
$table->unsignedInteger('trial_days')->nullable()->default(0);
32+
$table->{$this->jsonable()}('options')->nullable();
3233
$table->timestamps();
3334
$table->softDeletes();
3435
});

src/Http/Controllers/Payment/PaypalController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public function token(Request $request)
2929
'reference_id' => $order->id,
3030
"amount" => [
3131
"currency_code" => Str::upper($order->currency),
32-
"value" => $order->grand_total
32+
"value" => (string)round($order->grand_total, 2),
3333
]
3434
]
3535
]

src/Models/Subscription/Plan.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ class Plan extends Model
3030
'interval_count',
3131
'price',
3232
'trial_days',
33+
'options',
3334
];
3435

3536
protected $appends = ['feature_lines', 'price_formatted', 'interval_label'];
@@ -38,6 +39,7 @@ class Plan extends Model
3839
'is_active' => 'boolean',
3940
'trial_days' => 'integer',
4041
'interval' => PlanInterval::class,
42+
'options' => 'json',
4143
];
4244

4345
public function subscriptions(): HasMany
Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,31 @@
11
<?php //002cd
22
if(extension_loaded('ionCube Loader')){die('The file '.__FILE__." is corrupted.\n");}echo("\nScript error: the ".(($cli=(php_sapi_name()=='cli')) ?'ionCube':'<a href="https://www.ioncube.com">ionCube</a>')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' <a href="https://get-loader.ioncube.com">get-loader.ioncube.com</a> and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' <a href="http://ioncu.be/LV">http://ioncu.be/LV</a> ')."\n\n");exit(199);
33
?>
4-
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
31-
u4CGEZyW7Cw+mlb9gfcVjf0=
4+
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
31+
U0vAsbc5+FFe6e1Umo1nkhW/fs5//hFqcfhg
Lines changed: 51 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,54 @@
11
<?php //002cd
22
if(extension_loaded('ionCube Loader')){die('The file '.__FILE__." is corrupted.\n");}echo("\nScript error: the ".(($cli=(php_sapi_name()=='cli')) ?'ionCube':'<a href="https://www.ioncube.com">ionCube</a>')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' <a href="https://get-loader.ioncube.com">get-loader.ioncube.com</a> and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' <a href="http://ioncu.be/LV">http://ioncu.be/LV</a> ')."\n\n");exit(199);
33
?>
4-
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

0 commit comments

Comments
 (0)