/** * Get service prices of every staff member. * * @return array */ private function _getPrices() { /** @var WPDB $wpdb */ global $wpdb; $result = array(); $rows = $wpdb->get_results($wpdb->prepare("SELECT * FROM `ab_staff_service` WHERE `staff_id` IN ({$this->_staffIdsStr}) AND `service_id` = %d", $this->_userData->getServiceId())); if (is_array($rows)) { foreach ($rows as $row) { $result[$row->staff_id] = $row->price; } } return $result; }
/** * Apply coupon */ public function executeApplyCoupon() { $form_id = $this->getParameter('form_id'); $ab_coupon = $this->getParameter('ab_coupon'); $response = null; if (get_option('ab_settings_coupons') and $form_id) { $userData = new AB_UserBookingData($form_id); $userData->load(); if ($userData->hasData()) { $price = $this->getWpdb()->get_var($this->getWpdb()->prepare('SELECT price FROM ab_staff_service WHERE staff_id = %d AND service_id = %d', $userData->getStaffId(), $userData->getServiceId())); if ($ab_coupon === '') { $userData->setCoupon(NULL); $response = array('status' => 'reset', 'text' => $this->_prepareInfoText(4, $userData, $price)); } else { $discount = $this->getWpdb()->get_var($this->getWpdb()->prepare('SELECT `discount` FROM `ab_coupons` WHERE UPPER(`code`) = %s AND `used` = 0', strtoupper($ab_coupon))); if ($discount) { $userData->setCoupon($ab_coupon); $price -= $price * $discount / 100; $response = array('status' => 'success', 'text' => $this->_prepareInfoText(4, $userData, $price)); } else { $userData->setCoupon(NULL); $response = array('status' => 'error', 'error' => __('* This coupon code is invalid or has been used', 'ab'), 'text' => $this->_prepareInfoText(4, $userData, $price)); } } } } // Output JSON response. if ($response === null) { $response = array('status' => 'no-data'); } header('Content-Type: application/json'); echo json_encode($response); exit(0); }