Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?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>';
- /**
- * Output the field. This is for 1.4.
- *
- * To make it compatible with 1.3 use $checkout->checkout_form_field instead:
- $checkout->checkout_form_field( 'my_field_name', array(
- 'type' => 'text',
- 'class' => array('my-field-class orm-row-wide'),
- 'label' => __('Fill in this field'),
- 'placeholder' => __('Enter a number'),
- ));
- **/
- woocommerce_form_field( 'my_field_name', array(
- 'type' => 'text',
- 'class' => array('my-field-class orm-row-wide'),
- 'label' => __('Fill in this field'),
- 'placeholder' => __('Enter a number'),
- ), $checkout->get_value( 'my_field_name' ));
- echo '</div>';
- /**
- * Optional Javascript to limit the field to a country. This one shows for italy only.
- **/
- ?>
- <script type="text/javascript">
- jQuery('select#billing_country').live('change', function(){
- var country = jQuery('select#billing_country').val();
- var check_countries = new Array(<?php echo '"IT"'; ?>);
- if (country && jQuery.inArray( country, check_countries ) >= 0) {
- jQuery('#my_custom_checkout_field').fadeIn();
- } else {
- jQuery('#my_custom_checkout_field').fadeOut();
- jQuery('#my_custom_checkout_field input').val('');
- }
- });
- </script>
- <?php
- }
- /**
- * 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. This one is only requite for companies
- if ($_POST['billing_company'])
- if (!$_POST['my_field_name'])
- $woocommerce->add_error( __('Please enter your XXX.') );
- }
- /**
- * Update the user meta with field value
- **/
- add_action('woocommerce_checkout_update_user_meta', 'my_custom_checkout_field_update_user_meta');
- function my_custom_checkout_field_update_user_meta( $user_id ) {
- if ($user_id && $_POST['my_field_name']) update_user_meta( $user_id, 'my_field_name', esc_attr($_POST['my_field_name']) );
- }
- /**
- * 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']));
- }
- /**
- * Add the field to order emails
- **/
- add_filter('woocommerce_email_order_meta_keys', 'my_custom_checkout_field_order_meta_keys');
- function my_custom_checkout_field_order_meta_keys( $keys ) {
- $keys[] = 'My Field';
- return $keys;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement