/**
  * 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);
 }