This article contains PHP code and is intended for developers. We offer this code as a courtesy, but don't provide support for code customizations or 3rd party development.
This hook changes a field value after a Woocommerce order is completed.
Usage
add_action( 'woocommerce_order_status_completed', 'update_frm_entry_after_wc_order_completed' );
Parameters
- None
Examples
Change field value after completed order
Use the following code to change a field value after a Woocommerce order is completed. Replace 25 with the ID of the form to update, replace 100 with the field ID to update, and replace 'Complete' with the new value you would like to use. Please note: You must have a default value submitted in the field in order for this function to work.
add_action( 'woocommerce_order_status_completed', 'update_frm_entry_after_wc_order_completed' );
function update_frm_entry_after_wc_order_completed( $order_id ) {
$order = new WC_Order( $order_id );
$items = $order->get_items();
foreach ( $items as $item_id => $product ) {
if ( isset( $product['formidable_form_data'] ) && is_numeric( $product['formidable_form_data'] ) ) {
$entry_id = $product['formidable_form_data'];
$entry = FrmEntry::getOne( $entry_id );
if ( $entry && $entry->form_id == 25 ) {
$field_id = 100;//Replace 100 with the field ID to update
$new_value = 'Complete';
FrmEntryMeta::update_entry_meta( $entry_id, $field_id, null, $new_value );
}
}
}
}