Search

In Stock

WooCommerce Checkout Field Editor v1.7.16

$3.05

The WooCommerce Checkout Field Editor allows you to customize the fields that appear on the checkout page of a WooCommerce store. You can use it to add, edit, or remove fields, as well as rearrange the order of fields. Here’s how you can do this programmatically:

Adding a Custom Checkout Field

To add a custom checkout field, you can hook into woocommerce_checkout_fields filter. Below is an example of how you can add a custom field (e.g., a “Phone Extension” field):

php
add_filter( 'woocommerce_checkout_fields', 'custom_override_checkout_fields' );

function custom_override_checkout_fields( $fields ) {
$fields['billing']['billing_phone_extension'] = array(
'type' => 'text',
'label' => __('Phone Extension', 'woocommerce'),
'placeholder' => _x('Enter your phone extension', 'placeholder', 'woocommerce'),
'required' => false,
'class' => array('form-row-wide'),
'clear' => true,
'priority' => 25, // You can change the priority to control the order
);

return $fields;
}

Editing an Existing Field

If you want to modify an existing field, like changing the placeholder text of the “Billing Phone” field, you can use a similar approach:

php
add_filter( 'woocommerce_checkout_fields', 'edit_billing_phone_field' );

function edit_billing_phone_field( $fields ) {
$fields['billing']['billing_phone']['placeholder'] = 'Enter your phone number with country code';
$fields['billing']['billing_phone']['label'] = 'Phone Number';

return $fields;
}

Removing a Checkout Field

To remove a field, for example, the “Company” field from the billing section:

php
add_filter( 'woocommerce_checkout_fields', 'remove_unwanted_checkout_fields' );

function remove_unwanted_checkout_fields( $fields ) {
unset( $fields['billing']['billing_company'] ); // Remove company name field

return $fields;
}

Reordering Checkout Fields

If you need to reorder fields, you can adjust their priority. Here’s an example of how to change the order of the billing fields:

php
add_filter( 'woocommerce_checkout_fields', 'reorder_checkout_fields' );

function reorder_checkout_fields( $fields ) {
$fields['billing']['billing_first_name']['priority'] = 10;
$fields['billing']['billing_last_name']['priority'] = 20;
$fields['billing']['billing_email']['priority'] = 30;
$fields['billing']['billing_phone']['priority'] = 40;

return $fields;
}

Validating Custom Checkout Fields

To validate custom fields (e.g., making sure “Phone Extension” is a number), you can hook into woocommerce_after_checkout_validation:

php
add_action( 'woocommerce_after_checkout_validation', 'custom_checkout_field_validation' );

function custom_checkout_field_validation( $data, $errors ) {
if ( isset( $data['billing_phone_extension'] ) && !is_numeric( $data['billing_phone_extension'] ) ) {
$errors->add( 'validation', __('Phone Extension must be a number.', 'woocommerce') );
}
}

Saving Custom Checkout Fields

Once you’ve added a custom field, you may want to save its data to the order. This can be done using the woocommerce_checkout_update_order_meta hook:

php
add_action( 'woocommerce_checkout_update_order_meta', 'save_custom_checkout_fields' );

function save_custom_checkout_fields( $order_id ) {
if ( ! empty( $_POST['billing_phone_extension'] ) ) {
update_post_meta( $order_id, '_billing_phone_extension', sanitize_text_field( $_POST['billing_phone_extension'] ) );
}
}

Displaying Custom Fields in the Order Admin

To display the custom field data in the order admin page, use the woocommerce_admin_order_data_after_billing_address action:

php
add_action( 'woocommerce_admin_order_data_after_billing_address', 'display_custom_checkout_field_order_admin', 10, 1 );

function display_custom_checkout_field_order_admin( $order ) {
$phone_extension = get_post_meta( $order->get_id(), '_billing_phone_extension', true );

if ( $phone_extension ) {
echo '<p><strong>' . __( 'Phone Extension', 'woocommerce' ) . ':</strong> ' . $phone_extension . '</p>';
}
}

This will show the custom “Phone Extension” field data in the admin order details.

Reviews

There are no reviews yet.

Write a review

Your email address will not be published. Required fields are marked *

Back to Top

Product has been added to your cart