This hook allows you to make changes to a value saved to a field right before it is sent to the database.
Usage
add_filter('frm_add_entry_meta', 'custom_change_field_value');
Parameters
- $new_values (array)
Examples
Save a due date
Use this code if you have a date field in your form and you want calculate a due date dependent on the selected date. This example will save a due date (in a hidden field) that is five weekdays after the selected date. You must have a value entered in the hidden field for this code to be used.
add_filter('frm_add_entry_meta', 'change_due_date'); function change_due_date($new_values) { if($new_values['field_id'] == 6103 and !is_admin()) { // 776 is the Due Date field on the form - note that this field must have a value in it on form submit or this code will not work $daystoadd = '5 weekdays'; // 3 business days is our standard turnaround $new_values['meta_value'] = date( 'm/d/Y' , strtotime ( $daystoadd )); } return $new_values; }
Add coupon codes
If you would like users to enter a coupon code in a form and get a discount depending on the code they entered, use this code example. In order for this code to work, you will need to create a new form and add a single line text field for the discount amount. Submit an entry for a discount amount. The coupon code will go in the entry key box. Submit a new entry for each coupon code.
add_filter('frm_add_entry_meta', 'apply_my_coupon'); function apply_my_coupon($values){ if($values['field_id'] == 25){ //change 25 to the ID of the price field $coupon_field = 26; //change 26 to the ID of the coupon code field $discount_field = 30; //Change 30 to the ID of the discount amount field in the other form if(isset($_POST['item_meta'][$coupon_field]) and !empty($_POST['item_meta'][$coupon_field])){ global $wpdb; $discount = $wpdb->get_var( $wpdb->prepare("SELECT meta_value FROM " . $wpdb->prefix ."frm_item_metas em LEFT JOIN " . $wpdb->prefix ."frm_items e ON (e.id=em.item_id) WHERE field_id=%d AND item_key = %s ", $discount_field, $_POST['item_meta'][$coupon_field])); //get the discount amount if($discount){ $new_price = (float) $values['meta_value'] - (float) $discount; //calculate the discounted price $_POST['item_meta'][$values['field_id']] = $values['meta_value'] = $new_price; } } } return $values; }
Send email after submitting comment
If you'd like an email notification sent when a comment is made from the "view" entry page in the back-end, you'll need a bit of custom code for now. This can be used to respond to the user who submitted the entry, a notification to admins, or another group you'd like email notifications to go to.
add_filter('frm_add_entry_meta', 'custom_change_field_value'); function custom_change_field_value($new_values){ if($new_values['field_id'] == 0){ //0 indicates this is a comment $subject = 'New comment'; //change email subject here $send_to = array('[email protected]', '[email protected]'); //set email addresses here $info = maybe_unserialize($new_values['meta_value']); $message = $info['comment']; foreach($send_to as $to) FrmNotification::send_notification_email($to, $subject, $message); } return $new_values; }
Have something to add?
Click here to provide feedback on this page.