Skip to content

Instantly share code, notes, and snippets.

@djm56
Last active April 4, 2016 11:23
Show Gist options
  • Save djm56/d71e31d188d369a3b6ba to your computer and use it in GitHub Desktop.
Save djm56/d71e31d188d369a3b6ba to your computer and use it in GitHub Desktop.
WooCommerce - Add Select Field To Check Out and then Route to specific mail.
<?php
/**
* Add the field to the checkout
**/
add_action('woocommerce_after_order_notes', 'my_custom_checkout_field');
function my_custom_checkout_field( $checkout ) {
echo '<div id="my_custom_checkout_field"><h3>'.__('My Field').'</h3>';
woocommerce_form_field( 'my_field_name', array(
'type' => 'select',
'class' => array('my-field-class form-row-wide'),
'required' => true,
'label' => __('Fill in this field'),
'placeholder' => __('Enter something'),
'options' => array(
'choice1' => __('choice1', 'woocommerce' ),
'choice2' => __('choice2', 'woocommerce' )
)
), $checkout->get_value( 'my_field_name' ));
echo '</div>';
}
/**
* Process the checkout
**/
add_action('woocommerce_checkout_process', 'my_custom_checkout_field_process');
function my_custom_checkout_field_process() {
global $woocommerce;
// Check if set, if its not set add an error.
if (!$_POST['my_field_name'])
$woocommerce->add_error( __('Please enter something into this new shiny field.') );
}
/**
* Update the order meta with field value
**/
add_action('woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta');
function my_custom_checkout_field_update_order_meta( $order_id ) {
if ($_POST['my_field_name']) update_post_meta( $order_id, 'My Field', esc_attr($_POST['my_field_name']));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment