function ym_validate_coupon($coupon_code, $type) { global $wpdb; $sql = 'SELECT value, allowed FROM ' . $wpdb->prefix . 'ym_coupon WHERE name = \'' . $coupon_code . '\''; $wpdb->query($sql); if ($wpdb->num_rows) { $id = ym_get_coupon_id_by_name($coupon_code); $value = $wpdb->get_var($sql); $allowed = $wpdb->get_var($sql, 1); $allowed = str_split($allowed); if ($allowed[$type] == 1) { if (ym_coupon_get_uses_left($id) > 0) { return $value; } } } return FALSE; }
private function sync_coupons($coupon_name = FALSE, $type = 'name') { $r = TRUE; $coupons = array(); if ($coupon_name && $type == 'name') { if ($id = ym_get_coupon_id_by_name($coupon_name)) { $coupons = array(ym_get_coupon($id)); } } else { if ($coupon_name && $type == 'id') { $coupons = array(ym_get_coupon($coupon_name)); } else { $coupons = ym_get_coupons(); } } foreach ($coupons as $coupon) { $value = $coupon->value; if (ym_get_coupon_type($value) == 'percent') { // only support percentages $allowed = str_split($coupon->allowed); if ($allowed[0] == 1 || $allowed[1] == 1) { // sub enabled $value = str_replace('%', '', $value); $create = FALSE; $id = 'ym_' . $coupon->id; $mycoupon = array('id' => $id, 'percent_off' => $value, 'duration' => 'once'); list($r_code, $response) = $this->stripe_api_request('coupons/' . $id); if ($r_code == 200) { // check ok if ($response->percent_off != $value || $response->duration != 'once') { // update needed list($r_code, $response) = $this->stripe_api_request('coupons', 'DELETE', array('id' => $id)); if ($r_code == 200) { $create = TRUE; } else { $r = FALSE; } } } else { $create = TRUE; } if ($create) { // doesn't exist list($r_code, $response) = $this->stripe_api_request('coupons', 'POST', $mycoupon); if ($r_code != 200) { $r = FALSE; } } } } } return $r; }