Title: Coupon Code Validation
Last modified: August 31, 2016

---

# Coupon Code Validation

 *  Resolved [kayphoonstar](https://wordpress.org/support/users/kayphoonstar/)
 * (@kayphoonstar)
 * [10 years, 4 months ago](https://wordpress.org/support/topic/coupon-code-validation/)
 * I’ve used [this previous thread ](https://wordpress.org/support/topic/discount-code-for-multiprice-and-multiseat-events?replies=25)
   which was very helpful in getting a coupon code set up but I’m hoping for a few
   more clues to figuring out how to add some validation to the Coupon field so 
   it isn’t just ignored if it isn’t valid.
 * I’ve tossed in this code:
 *     ```
       if (($coupon != "")&&($coupon != "COUPON_CODE"))  {
       echo '<script type="text/javascript">alert("Invalid Coupon Code");</script>';
       }
       ```
   
 * But, of course, the popup is brief and the registration proceeds.
 * Do I need to create another action?
 * I’m just not sure where to look.
 * Thanks
 * [https://wordpress.org/plugins/events-made-easy/](https://wordpress.org/plugins/events-made-easy/)

Viewing 5 replies - 1 through 5 (of 5 total)

 *  Plugin Author [Franky](https://wordpress.org/support/users/liedekef/)
 * (@liedekef)
 * [10 years, 4 months ago](https://wordpress.org/support/topic/coupon-code-validation/#post-6964314)
 * You’re mixing up adding a discount (add_action) with a verification (add_filter).
   See [http://www.e-dynamics.be/wordpress/?cat=41](http://www.e-dynamics.be/wordpress/?cat=41)
   
   And popup’s in those hooks won’t work as you want them. Read the examples in 
   the link on how to return error codes after verification. If you want a popup,
   you’ll need to use jquery code on your page.
 *  Thread Starter [kayphoonstar](https://wordpress.org/support/users/kayphoonstar/)
 * (@kayphoonstar)
 * [10 years, 4 months ago](https://wordpress.org/support/topic/coupon-code-validation/#post-6964369)
 * Thank you so much for giving me that nudge in the right direction! I didn’t want
   a popup and I didn’t want to use jQuery but I couldn’t figure out where to start.
 * This works, but . . .
 *     ```
       add_filter('eme_eval_booking_form_post_filter','validate_coupon');
       function validate_coupon($event) {
       	$coupon = $_POST['FIELD9'];
              $error = "Invalid Coupon Code!";
   
       if ($coupon == "" || $coupon == "save10")  {
              // eval is success
              return array(0=>1,1=>'');
   
       }  else {
              // bad form entry
              return array(0=>0,1=> $error);
   
       	}
            }
       ```
   
 * I’m still a little confused about how to access the coupon code field. The code
   from the discount action wasn’t working to call the Coupon Code in the validation
   filter – so I just went back to ‘$_Post’. The other thing that confused me is
   that I’ve usually done the negative. In other words if the field is **not** empty
   and it’s **not** the right code – then it doesn’t validate. That didn’t seem 
   to work for some reason, so I had to use the positive – if it **is** empty and
   it **is** the right coupon code then it validates.
 * Anyway, it’s functioning but I’d be grateful for any more comments.
 * K
 *  Plugin Author [Franky](https://wordpress.org/support/users/liedekef/)
 * (@liedekef)
 * [10 years, 4 months ago](https://wordpress.org/support/topic/coupon-code-validation/#post-6964374)
 * Well, since you’re doing an evaluation on a form not yet entered in the DB, you
   need to use the $_POST variable, so it is correct.
    And in your case the test
   is logical: either the value is empty (no discount, but no error either) or it
   has a specific value.
 * But, as said: that only does an evaluation on what is entered of course. For 
   the actual discount you need add_action(…) (as stated in the doc, with a discount
   example)
 *  Plugin Author [Franky](https://wordpress.org/support/users/liedekef/)
 * (@liedekef)
 * [10 years, 4 months ago](https://wordpress.org/support/topic/coupon-code-validation/#post-6964375)
 * Btw: it is on my to-do list to provide an easier method of discounts, but it’s
   a big job …
 *  Thread Starter [kayphoonstar](https://wordpress.org/support/users/kayphoonstar/)
 * (@kayphoonstar)
 * [10 years, 4 months ago](https://wordpress.org/support/topic/coupon-code-validation/#post-6964406)
 * Thank you, again, for your help. I’ve spent more time playing in straight php
   and javascript than within the WP framework. Every once in a while, when the 
   gate closes, I go a little crazy trying to figure out how to do things inside
   the gate.
 * As I said above, I got the discount ($10) action working before it occurred to
   me that I needed to validate the field in order to keep any incorrect or invalid
   codes from being completely ignored. I needed to take $10 off of the total of
   a multi-price(4 prices) form but I could only find examples for a percentage 
   discount. The examples helped but getting to the total was challenging. I’m not
   sure I fully understand the elements in that code either (specifically, getting
   the $coupon variable & using the each individual product price instead of working
   with the total) but it seems to work.
 * FWIW, here’s the discount code action for the $10 discount:
 *     ```
       add_action('eme_insert_rsvp_action', 'my_eme_coupons',20,1);
   
       /**
        * Custom function to calculate coupon code discounts for events
        */
   
       function my_eme_coupons($booking) {
       	global $wpdb;
       	$bookings_table = $wpdb->prefix.BOOKINGS_TBNAME;
   
       	$where = array();
       	$fields = array();
   
       	// Grab the coupon code from the extra answers
       	$event_id = $booking['event_id'];
       	$booking_id = $booking['booking_id'];
       	$answers = eme_get_answers($booking_id);
       	$coupon = "";
               foreach ($answers as $answer) {
                   if ($answer['field_name'] == "Coupon") {
                      $coupon = $answer['answer'];
                   }
               }
   
       // If coupon code used, apply the appropriate price change
   
       /* COUPON CODE TO USE */
       	if ($coupon == "COUPON_CODE") {
   
       /* TAKE OFF $10 */
       			$actualseats=$booking['booking_seats'];
                     	$discount = 10;
   
                    //Covert Price to Array and take $10 from first price listed
                    		$price=eme_convert_multi2array($booking['booking_price']);
                     	$price[0] = $price[0]- ($discount/$actualseats);
                     	$price[1] = $price[1]- ($discount/$actualseats);
                     	$price[2] = $price[2]- ($discount/$actualseats);
                     	$price[3] = $price[3]- ($discount/$actualseats);
   
                    //Convert Array back to price
                      	$fields['booking_price'] = eme_convert_array2multi($price);
   
       		$where['booking_id'] = $booking['booking_id'];
       		$wpdb->update($bookings_table, $fields, $where);
       	}
       	return;
       }
       ```
   

Viewing 5 replies - 1 through 5 (of 5 total)

The topic ‘Coupon Code Validation’ is closed to new replies.

 * ![](https://ps.w.org/events-made-easy/assets/icon-256x256.png?rev=1856035)
 * [Events Made Easy](https://wordpress.org/plugins/events-made-easy/)
 * [Frequently Asked Questions](https://wordpress.org/plugins/events-made-easy/#faq)
 * [Support Threads](https://wordpress.org/support/plugin/events-made-easy/)
 * [Active Topics](https://wordpress.org/support/plugin/events-made-easy/active/)
 * [Unresolved Topics](https://wordpress.org/support/plugin/events-made-easy/unresolved/)
 * [Reviews](https://wordpress.org/support/plugin/events-made-easy/reviews/)

## Tags

 * [coupon code](https://wordpress.org/support/topic-tag/coupon-code/)
 * [validation](https://wordpress.org/support/topic-tag/validation/)

 * 5 replies
 * 2 participants
 * Last reply from: [kayphoonstar](https://wordpress.org/support/users/kayphoonstar/)
 * Last activity: [10 years, 4 months ago](https://wordpress.org/support/topic/coupon-code-validation/#post-6964406)
 * Status: resolved