Im trying to resolve this question about 5 hours, but I cant.
The problem is I have an error
"Warning: Illegal string offset 'quantity' in C:laragonwwwopencartsystemlibrarycart.php on line 211"
My code from systemlibrarycart.php
elseif ($option_query->row['type'] == 'checkbox_shildik2') {
$value = json_decode(json_encode($value),true);
foreach ($value as $product_option_value_id => $data) {
$qnt = (int)$data['quantity'];
if($qnt > 0){
$option_value_query = $this->db->query("SELECT pov.option_value_id, ovd.name, pov.quantity, pov.subtract, pov.price, pov.price_prefix, pov.points, pov.points_prefix, pov.weight, pov.weight_prefix FROM " . DB_PREFIX . "product_option_value pov LEFT JOIN " . DB_PREFIX . "option_value ov ON (pov.option_value_id = ov.option_value_id) LEFT JOIN " . DB_PREFIX . "option_value_description ovd ON (ov.option_value_id = ovd.option_value_id) WHERE pov.product_option_value_id = '" . (int)$product_option_value_id . "' AND pov.product_option_id = '" . (int)$product_option_id . "' AND ovd.language_id = '" . (int)$this->config->get('config_language_id') . "'");
$qnt = (int)$qnt;
if ($option_value_query->num_rows) {
if ($option_value_query->row['price_prefix'] == '+') {
$option_price += $qnt*$option_value_query->row['price'];
} elseif ($option_value_query->row['price_prefix'] == '-') {
$option_price -= $qnt*$option_value_query->row['price'];
}
if ($option_value_query->row['points_prefix'] == '+') {
$option_points += $qnt*$option_value_query->row['points'];
} elseif ($option_value_query->row['points_prefix'] == '-') {
$option_points -=$qnt* $option_value_query->row['points'];
}
if ($option_value_query->row['weight_prefix'] == '+') {
$option_weight += $qnt*$option_value_query->row['weight'];
} elseif ($option_value_query->row['weight_prefix'] == '-') {
$option_weight -= $qnt*$option_value_query->row['weight'];
}
if ($option_value_query->row['subtract'] && (!$option_value_query->row['quantity'] || ($option_value_query->row['quantity'] < $qnt * $cart['quantity']))) {
$stock = false;
}
$option_data[] = array(
'product_option_id' => $product_option_id,
'product_option_value_id' => $product_option_value_id,
'option_id' => $option_query->row['option_id'],
'option_value_id' => $option_value_query->row['option_value_id'],
'name' => $qnt.' x '.$option_query->row['name'],
'value' => $option_value_query->row['name'],
'type' => $option_query->row['type'],
'quantity' => $option_value_query->row['quantity'],
'subtract' => $option_value_query->row['subtract'],
'price' => $qnt*$option_value_query->row['price'],
'price_prefix' => $option_value_query->row['price_prefix'],
'points' => $qnt*$option_value_query->row['points'],
'points_prefix' => $option_value_query->row['points_prefix'],
'weight' => $qnt*$option_value_query->row['weight'],
'weight_prefix' => $option_value_query->row['weight_prefix']
);
}
}
}
}
So when I click on add to cart, I have Unexpected token json.
I dont know even how to resolve this and whats the problem
211 line is $qnt = (int)$data['quantity'];
question from:
https://stackoverflow.com/questions/65876265/warning-illegal-string-offset-quantity-opencart-2-1 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…