From c8033cef514e80e0fb1412efa87228f558527b6e Mon Sep 17 00:00:00 2001 From: Mike Jolley Date: Tue, 31 Jul 2012 13:42:43 +0100 Subject: [PATCH] detect dupe coupons on save. Closes #1317. --- .../writepanels/writepanel-coupon_data.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/admin/post-types/writepanels/writepanel-coupon_data.php b/admin/post-types/writepanels/writepanel-coupon_data.php index 34d7397aa7c..883d2d90a49 100644 --- a/admin/post-types/writepanels/writepanel-coupon_data.php +++ b/admin/post-types/writepanels/writepanel-coupon_data.php @@ -164,6 +164,18 @@ add_action('woocommerce_process_shop_coupon_meta', 'woocommerce_process_shop_cou function woocommerce_process_shop_coupon_meta( $post_id, $post ) { global $wpdb, $woocommerce_errors; + // Check for dupe coupons + $coupon_found = $wpdb->get_var( $wpdb->prepare( " + SELECT $wpdb->posts.ID + FROM $wpdb->posts + WHERE $wpdb->posts.post_type = 'shop_coupon' + AND $wpdb->posts.post_status = 'publish' + AND $wpdb->posts.post_title = '%s' + AND $wpdb->posts.ID != %s + ", esc_attr( $_POST['post_title'] ), $post_id ) ); + if ( $coupon_found ) + $woocommerce_errors[] = __( 'Coupon code already exists.', 'woocommerce' ); + // Add/Replace data to array $type = strip_tags(stripslashes( $_POST['discount_type'] )); $amount = strip_tags(stripslashes( $_POST['coupon_amount'] ));