attributes['meta_value'] = $value; } public function getMetaValueAttribute($value) { if (is_string($value)) { $decoded = json_decode($value, true); return $decoded ?: $value; } return $value; } /** * One2One: OrderTransaction belongs to one Order * * @return \FluentCart\Framework\Database\Orm\Relations\BelongsTo */ public function order() { return $this->belongsTo( Order::class, 'order_id', 'id' ); } public function updateMeta($metaKey, $metaValue) { $exist = OrderMeta::query()->where('order_id', $this->id) ->where('meta_key', $metaKey) ->first(); if ($exist) { $exist->meta_value = $metaValue; $exist->save(); } else { $exist = OrderMeta::query()->create([ 'order_id' => $this->id, //phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_key 'meta_key' => $metaKey, //phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_value 'meta_value' => $metaValue ]); } return $exist; } }