PluginProbe
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler / 1.6.5
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler v1.6.5
1.6.5 1.6.4 1.6.3 1.6.2 1.6.1 1.6.0 1.5.4 1.5.5 1.5.3 1.5.2 1.5.1 1.5.0 1.4.2 1.4.1 1.4.0 1.3.28 1.3.27 1.3.26 1.3.25 1.3.23 1.3.22 1.3.21 1.3.20 1.3.19 trunk All 48 releases
← All changes | app/Models/Meta.php +79 -0 1.3.23 → 1.6.5 View file →
@@ -48,8 +48,87 @@
48 48 }
49 49 return $value;
50 50 }
51 51
52 + public function scopeProductCategoryTaxOverrides(Builder $query)
53 + {
54 + return $query
55 + ->where('object_type', 'tax_override')
56 + ->where('meta_key', 'product_category_override');
57 + }
58 +
59 + public function scopeForTaxOverrideCountry(Builder $query, $countryCode)
60 + {
61 + return $query->whereRaw(
62 + "JSON_UNQUOTE(JSON_EXTRACT(meta_value, '$.country')) = ?",
63 + [$countryCode]
64 + );
65 + }
66 +
67 + public function scopeForTaxOverrideCountries(Builder $query, array $countryCodes)
68 + {
69 + $countryCodes = array_values(array_filter($countryCodes));
70 +
71 + if (!$countryCodes) {
72 + return $query->whereRaw('1 = 0');
73 + }
74 +
75 + $placeholders = implode(', ', array_fill(0, count($countryCodes), '?'));
76 +
77 + return $query->whereRaw(
78 + "JSON_UNQUOTE(JSON_EXTRACT(meta_value, '$.country')) IN ({$placeholders})",
79 + $countryCodes
80 + );
81 + }
82 +
83 + public function scopeForTaxOverrideState(Builder $query, $stateCode)
84 + {
85 + return $query->whereRaw(
86 + "COALESCE(JSON_UNQUOTE(JSON_EXTRACT(meta_value, '$.state')), '') = ?",
87 + [$stateCode]
88 + );
89 + }
90 +
91 + public function scopeForTaxOverrideCategoryId(Builder $query, $categoryId)
92 + {
93 + return $query->whereRaw(
94 + "CAST(COALESCE(JSON_UNQUOTE(JSON_EXTRACT(meta_value, '$.category_id')), '0') AS UNSIGNED) = ?",
95 + [$categoryId]
96 + );
97 + }
98 +
99 + public function scopeForTaxOverrideCity(Builder $query, $city)
100 + {
101 + return $query->whereRaw(
102 + "COALESCE(JSON_UNQUOTE(JSON_EXTRACT(meta_value, '$.city')), '') = ?",
103 + [$city]
104 + );
105 + }
106 +
107 + public function scopeForTaxOverridePostcode(Builder $query, $postcode)
108 + {
109 + return $query->whereRaw(
110 + "COALESCE(JSON_UNQUOTE(JSON_EXTRACT(meta_value, '$.postcode')), '') = ?",
111 + [$postcode]
112 + );
113 + }
114 +
115 + public function scopeForTaxOverrideClassId(Builder $query, $classId)
116 + {
117 + return $query->whereRaw(
118 + "CAST(COALESCE(JSON_UNQUOTE(JSON_EXTRACT(meta_value, '$.class_id')), '0') AS UNSIGNED) = ?",
119 + [(int) $classId]
120 + );
121 + }
122 +
123 + public function scopeLegacyTaxOverrideObjectId(Builder $query)
124 + {
125 + return $query->where(function ($query) {
126 + $query->whereNull('object_id')
127 + ->orWhere('object_id', 0);
128 + });
129 + }
130 +
52 131
53 132
54 133 public function scopeUserTheme(Builder $query)
55 134 {