Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.97 KB | None | 0 0
  1. foreach (json_decode($cart['option']) as $product_option_id => $value) {
  2. $option_query = $this->db->query("SELECT po.product_option_id, po.option_id, po.productnameopt, od.name, o.type FROM " . DB_PREFIX . "product_option po LEFT JOIN `" . DB_PREFIX . "option` o ON (po.option_id = o.option_id) LEFT JOIN " . DB_PREFIX . "option_description od ON (o.option_id = od.option_id) WHERE po.product_option_id = '" . (int)$product_option_id . "' AND po.product_id = '" . (int)$cart['product_id'] . "' AND od.language_id = '" . (int)$this->config->get('config_language_id') . "'");
  3.  
  4. if ($option_query->num_rows) {
  5. if ($option_query->row['type'] == 'select' || $option_query->row['type'] == 'radio' || $option_query->row['type'] == 'image' || $option_query->row['type'] == 'color') {
  6. $option_value_query = $this->db->query("SELECT pov.option_value_id, ovd.name, pov.ob_info, pov.ob_image, 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)$value . "' AND pov.product_option_id = '" . (int)$product_option_id . "' AND ovd.language_id = '" . (int)$this->config->get('config_language_id') . "'");
  7.  
  8. if ($option_value_query->num_rows) {
  9. if ($option_value_query->row['price_prefix'] == '+') {
  10. $option_price += $option_value_query->row['price'];
  11. } elseif ($option_value_query->row['price_prefix'] == '-') {
  12. $option_price -= $option_value_query->row['price'];
  13. }
  14.  
  15. if ($option_value_query->row['points_prefix'] == '+') {
  16. $option_points += $option_value_query->row['points'];
  17. } elseif ($option_value_query->row['points_prefix'] == '-') {
  18. $option_points -= $option_value_query->row['points'];
  19. }
  20.  
  21. if ($option_value_query->row['weight_prefix'] == '+') {
  22. $option_weight += $option_value_query->row['weight'];
  23. } elseif ($option_value_query->row['weight_prefix'] == '-') {
  24. $option_weight -= $option_value_query->row['weight'];
  25. }
  26.  
  27. if ($option_value_query->row['subtract'] && (!$option_value_query->row['quantity'] || ($option_value_query->row['quantity'] < $cart['quantity']))) {
  28. $stock = false;
  29. }
  30.  
  31. $option_data[] = array(
  32. 'product_option_id' => $product_option_id,
  33. 'product_option_value_id' => $value,
  34. 'option_id' => $option_query->row['option_id'],
  35. 'option_value_id' => $option_value_query->row['option_value_id'],
  36. 'name' => $option_query->row['name'],
  37. 'value' => $option_value_query->row['name'],
  38. 'type' => $option_query->row['type'],
  39. 'quantity' => $option_value_query->row['quantity'],
  40. 'subtract' => $option_value_query->row['subtract'],
  41. 'ob_info' => $option_value_query->row['ob_info'],
  42. 'ob_image' => $option_value_query->row['ob_image'],
  43. 'price' => $option_value_query->row['price'],
  44. 'price_prefix' => $option_value_query->row['price_prefix'],
  45. 'points' => $option_value_query->row['points'],
  46. 'points_prefix' => $option_value_query->row['points_prefix'],
  47. 'weight' => $option_value_query->row['weight'],
  48. 'weight_prefix' => $option_value_query->row['weight_prefix']
  49. );
  50. }
  51. } elseif ($option_query->row['type'] == 'checkbox' && is_array($value)) {
  52. foreach ($value as $product_option_value_id) {
  53. $option_value_query = $this->db->query("SELECT pov.option_value_id, pov.quantity, pov.subtract, pov.ob_info, pov.ob_image, pov.price, pov.price_prefix, pov.points, pov.points_prefix, pov.weight, pov.weight_prefix, ovd.name FROM " . DB_PREFIX . "product_option_value pov LEFT JOIN " . DB_PREFIX . "option_value_description ovd ON (pov.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') . "'");
  54.  
  55. if ($option_value_query->num_rows) {
  56. if ($option_value_query->row['price_prefix'] == '+') {
  57. $option_price += $option_value_query->row['price'];
  58. } elseif ($option_value_query->row['price_prefix'] == '-') {
  59. $option_price -= $option_value_query->row['price'];
  60. }
  61.  
  62. if ($option_value_query->row['points_prefix'] == '+') {
  63. $option_points += $option_value_query->row['points'];
  64. } elseif ($option_value_query->row['points_prefix'] == '-') {
  65. $option_points -= $option_value_query->row['points'];
  66. }
  67.  
  68. if ($option_value_query->row['weight_prefix'] == '+') {
  69. $option_weight += $option_value_query->row['weight'];
  70. } elseif ($option_value_query->row['weight_prefix'] == '-') {
  71. $option_weight -= $option_value_query->row['weight'];
  72. }
  73.  
  74. if ($option_value_query->row['subtract'] && (!$option_value_query->row['quantity'] || ($option_value_query->row['quantity'] < $cart['quantity']))) {
  75. $stock = false;
  76. }
  77.  
  78. $option_data[] = array(
  79. 'product_option_id' => $product_option_id,
  80. 'product_option_value_id' => $product_option_value_id,
  81. 'option_id' => $option_query->row['option_id'],
  82. 'option_value_id' => $option_value_query->row['option_value_id'],
  83. 'name' => $option_query->row['name'],
  84. 'value' => $option_value_query->row['name'],
  85. 'type' => $option_query->row['type'],
  86. 'quantity' => $option_value_query->row['quantity'],
  87. 'subtract' => $option_value_query->row['subtract'],
  88. 'ob_info' => $option_value_query->row['ob_info'],
  89. 'ob_image' => $option_value_query->row['ob_image'],
  90. 'price' => $option_value_query->row['price'],
  91. 'price_prefix' => $option_value_query->row['price_prefix'],
  92. 'points' => $option_value_query->row['points'],
  93. 'points_prefix' => $option_value_query->row['points_prefix'],
  94. 'weight' => $option_value_query->row['weight'],
  95. 'weight_prefix' => $option_value_query->row['weight_prefix']
  96. );
  97. }
  98. }
  99. } elseif ($option_query->row['type'] == 'text' || $option_query->row['type'] == 'textarea' || $option_query->row['type'] == 'file' || $option_query->row['type'] == 'date' || $option_query->row['type'] == 'datetime' || $option_query->row['type'] == 'time') {
  100. $option_data[] = array(
  101. 'product_option_id' => $product_option_id,
  102. 'product_option_value_id' => '',
  103. 'option_id' => $option_query->row['option_id'],
  104. 'option_value_id' => '',
  105. 'name' => $option_query->row['name'],
  106. 'value' => $value,
  107. 'type' => $option_query->row['type'],
  108. 'quantity' => '',
  109. 'subtract' => '',
  110. 'ob_info' => '',
  111. 'ob_image' => '',
  112. 'price' => '',
  113. 'price_prefix' => '',
  114. 'points' => '',
  115. 'points_prefix' => '',
  116. 'weight' => '',
  117. 'weight_prefix' => ''
  118. );
  119. }
  120. }
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement