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.