Hur man enkelt kan lägga till fält i Woocommerce registreringsformulär utan att installera nya plugins.

PHP snippet: Lägg till förnamn efternamn och företagsnamn i registreringsformulär – Woocommerce

/**
 * @snippet       Add First, Last Name & Company Name to My Account Register Form - WooCommerce
 * @author        Beck & Beck - Rodolfo Melogli- businessbloomer.com, LUUK,  
 * @credits       Claudio SM Web
 * @compatible    WC 3.2.6 - WordPress 4.9.2
 */
 
///////////////////////////////
// 1. ADD FIELDS
 
add_action( 'woocommerce_register_form_start', 'bbloomer_add_name_woo_account_registration' );
 
function bbloomer_add_name_woo_account_registration() {
    ?>
 
    <p class="form-row form-row-first">
    <label for="reg_billing_first_name"><?php _e( 'First name', 'woocommerce' ); ?> <span class="required">*</span></label>
    <input type="text" class="input-text" name="billing_first_name" id="reg_billing_first_name" value="<?php if ( ! empty( $_POST['billing_first_name'] ) ) esc_attr_e( $_POST['billing_first_name'] ); ?>" />
    </p>
 
    <p class="form-row form-row-last">
    <label for="reg_billing_last_name"><?php _e( 'Last name', 'woocommerce' ); ?> <span class="required">*</span></label>
    <input type="text" class="input-text" name="billing_last_name" id="reg_billing_last_name" value="<?php if ( ! empty( $_POST['billing_last_name'] ) ) esc_attr_e( $_POST['billing_last_name'] ); ?>" />
    </p>
 
    <?php /*Custom Company field - Beck & Beck AB*/    ?>
 
    <p class="form-row form-row-wide">
    <label for="reg_billing_company"><?php _e( 'Company', 'woocommerce' ); ?> <span class="required">*</span></label>
    <input type="text" class="input-text" name="billing_company" id="reg_billing_company" value="<?php if ( ! empty( $_POST['billing_company'] ) ) esc_attr_e( $_POST['billing_company'] ); ?>" />
    </p>
 
    <div class="clear"></div>
 
    <?php
}
 
 
///////////////////////////////
// 2. VALIDATE FIELDS
 
 
add_filter( 'woocommerce_registration_errors', 'bbloomer_validate_name_fields', 10, 3 );
 
function bbloomer_validate_name_fields( $errors, $username, $email ) {
    if ( isset( $_POST['billing_first_name'] ) && empty( $_POST['billing_first_name'] ) ) {
        $errors->add( 'billing_first_name_error', __( '<strong>Error</strong>: Fyll i förnamn!', 'woocommerce' ) );
    }
    if ( isset( $_POST['billing_last_name'] ) && empty( $_POST['billing_last_name'] ) ) {
        $errors->add( 'billing_last_name_error', __( '<strong>Error</strong>: Fyll i efternamn!.', 'woocommerce' ) );
    }
    /*Validate Company field - Beck & Beck AB*/
 
    if ( isset( $_POST['billing_company'] ) && empty( $_POST['billing_company'] ) ) {
        $errors->add( 'billing_company_error', __( '<strong>Error</strong>: Fyll i företagsnamn!.', 'woocommerce' ) );
    }
 
    return $errors;
}
 
///////////////////////////////
// 3. SAVE FIELDS
 
add_action( 'woocommerce_created_customer', 'bbloomer_save_name_fields' );
/*Adding LUUK code to save first and last name in WOO & WP*/
function bbloomer_save_name_fields( $customer_id ) {
    if ( isset( $_POST['billing_first_name'] ) ) {
        update_user_meta( $customer_id, 'billing_first_name', sanitize_text_field( $_POST['billing_first_name'] ) );
        update_user_meta( $customer_id, 'first_name', sanitize_text_field( $_POST['billing_first_name'] ) );
    }
    if ( isset( $_POST['billing_last_name'] ) ) {
        update_user_meta( $customer_id, 'billing_last_name', sanitize_text_field( $_POST['billing_last_name'] ) );
        update_user_meta( $customer_id, 'last_name', sanitize_text_field( $_POST['billing_last_name'] ) );
    }
    /*Saving company field - Beck & Beck AB*/
    if ( isset( $_POST['billing_company'] ) ) {
        update_user_meta( $customer_id, 'billing_company', sanitize_text_field( $_POST['billing_company'] ) );
    }
 
}

 

Var lägger man denna kod?

Du kan lägga denna kodsnutt i botten på ditt “Child theme” innan “?>” .  Eventuell ny CSS ska du lägga i style.css under ditt child theme. Var säker på att ta backuper innan du jobbar med sådana känsliga filer.

Förhoppningsvis kommer detta till användning för er och hjälper er att komma vidare i era Woocommerce projekt.

Add First, Last Name & Company Name to My Account Register Form – WooCommerce

Användande av kod sker på egen risk. Beck & Beck tar ej ansvar över eventuella fel som kan inträffa.