Function Reference: geodir_add_edit_coupon

Summary

This function has not been documented yet.

Source Code

function geodir_add_edit_coupon() {
	global $wpdb;
	
	if (current_user_can('manage_options')) {
		if ($_POST['gd_add_coupon'] == 'addprice' && isset($_REQUEST['coupon_add_update_nonce'])) {
			if (!wp_verify_nonce( $_REQUEST['coupon_add_update_nonce'], 'coupon_add_update'))
				return;
				
			$id = $_POST['gd_id'];
			$coupon_code  = $_POST['coupon_code'];
			$post_type = !empty($_POST['gd_coupon_post_type']) ? implode(',', $_POST['gd_coupon_post_type']) : '';
			$discount_type = $_POST['discount_type'];
			$discount_amount = $_POST['discount_amount'];
			$gd_status = $_POST['gd_status'];
			$recurring = $_POST['gd_recurring'];
			$usage_limit = isset($_POST['usage_limit']) && trim($_POST['usage_limit']) != '' ? trim($_POST['usage_limit']) : NULL;		
			
			$error = '';
			$extra_query = $id > 0 ? " AND cid != '".$id."'" : '';	
			
			$duplicate = $wpdb->get_var($wpdb->prepare("SELECT cid FROM ".COUPON_TABLE." WHERE coupon_code = %s".$extra_query,array($coupon_code)));
			
			if ($duplicate) {
				$error = __("Coupon code already exists.", 'geodir_payments');
			}
			
			if (empty($error)) {
				if ($id != '') {
					$wpdb->query($wpdb->prepare(
					"UPDATE ".COUPON_TABLE." SET coupon_code=%s, post_types=%s, discount_type=%s, discount_amount=%f, status=%s, recurring=%s, usage_limit=%s WHERE cid=%d",array($coupon_code,$post_type,$discount_type,$discount_amount,$gd_status,$recurring,$usage_limit,$id)));
					
					$msg = __('Coupon code updated successfully.', 'geodir_payments');
				} else {
					$wpdb->query(
					$wpdb->prepare(
					"INSERT INTO ".COUPON_TABLE." SET coupon_code=%s, post_types=%s, discount_type=%s, discount_amount=%f, status=%s, recurring=%s, usage_limit=%s",
					array($coupon_code,$post_type,$discount_type,$discount_amount,$gd_status,$recurring,$usage_limit)
					)
					);
					
					$msg = __('Coupon code submitted successfully.', 'geodir_payments');
				}
				
				$msg = urlencode($msg);
				$location = admin_url()."admin.php?page=geodirectory&tab=paymentmanager_fields&subtab=geodir_coupon_manager&success_msg=".$msg;
				wp_redirect($location);
				exit;
			} else {
				$error = urlencode($error);
				$location = admin_url()."admin.php?page=geodirectory&tab=paymentmanager_fields&subtab=geodir_coupon_manager&error_msg=".$error;
				wp_redirect($location);
				exit;
			}
		}
	} else {
		wp_redirect(geodir_login_url());
		exit();
	}
}