WordPress Development Asked on January 2, 2022
Hi I am trying to make a custom Registration page for woocommerce, till validation it works fine but when i am trying to insert the data in database nothing happens. this is the sample code i am using ‘
<?php
function wooc_extra_register_fields() {
?>
<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>
<div class="clear"></div>
<p class="form-row form-row-wide">
<label for="reg_billing_phone"><?php _e( 'Phone', 'woocommerce' ); ?><span class="required">*</span></label>
<input type="Number" class="input-text" name="billing_phone" id="reg_billing_phone" value="<?php if ( ! empty( $_POST['billing_phone'] ) ) esc_attr_e( $_POST['billing_phone'] ); ?>" />
</p>
<p class="form-row form-row-wide">
<label for="reg_num"><?php _e( 'MCI Registration Num', 'woocommerce' ); ?><span class="required">*</span></label>
<input type="text" class="input-text" name="reg_num" id="reg_num" value="<?php if ( ! empty( $_POST['reg_num'] ) ) esc_attr_e( $_POST['reg_num'] ); ?>" />
</p>
<p class="form-row form-row-wide">
<label for="Year_of_reg"><?php _e( 'Year of Registration', 'woocommerce' ); ?><span class="required">*</span></label>
<input type="Number" class="input-text" name="Year_of_reg" id="Year_of_reg" value="<?php if ( ! empty( $_POST['Year_of_reg'] ) ) esc_attr_e( $_POST['Year_of_reg'] ); ?>" />
</p>
<p class="form-row form-row-wide">
<label for="qualification"><?php _e( 'Qualification', 'woocommerce' ); ?><span class="required">*</span></label>
<input type="text" class="input-text" name="qualification" id="qualification" value="<?php if ( ! empty( $_POST['qualification'] ) ) esc_attr_e( $_POST['qualification'] ); ?>" />
</p>
<?php
}
add_action( 'woocommerce_register_form_start', 'wooc_extra_register_fields' );
?>
'<?php
function wooc_validate_extra_register_fields( $username, $email, $validation_errors )
{
if ( isset( $_POST['billing_first_name'] ) && empty( $_POST['billing_first_name'] ) )
{
$validation_errors->add( 'billing_first_name_error', __( '<strong>Error</strong>: First name is required!', 'woocommerce' ) );
}
if ( isset( $_POST['billing_last_name'] ) && empty( $_POST['billing_last_name'] ) )
{
$validation_errors->add( 'billing_last_name_error', __( '<strong>Error</strong>: Last name is required!.', 'woocommerce' ) );
}
if ( isset( $_POST['billing_phone'] ) && empty( $_POST['billing_phone'] ) )
{
$validation_errors->add( 'billing_phone_error', __( '<strong>Error</strong>: Phone is required!.', 'woocommerce' ) );
}
if ( isset( $_POST['reg_num'] ) && empty( $_POST['reg_num'] ) )
{
$validation_errors->add( 'reg_num_error', __( '<strong>Error</strong>: Registration Number is required! if you are facing any problem give us a call or contact us on [email protected] .', 'woocommerce' ) );
}
if ( isset( $_POST['Year_of_reg'] ) && empty( $_POST['Year_of_reg'] ) )
{
$validation_errors->add( 'year_of_reg_error', __( '<strong>Error</strong>: MCI Year of Registration is required!.', 'woocommerce' ) );
}
}
}
add_action( 'woocommerce_register_post', 'wooc_validate_extra_register_fields', 10, 5 );
function wooc_save_extra_register_fields( $customer_id ) {
if ( isset( $_POST['billing_first_name'] ) ) {
// WordPress default first name field.
update_user_meta( $customer_id, 'first_name', sanitize_text_field( $_POST['billing_first_name'] ) );
// WooCommerce billing first name.
update_user_meta( $customer_id, 'billing_first_name', sanitize_text_field( $_POST['billing_first_name'] ) );
}
if ( isset( $_POST['billing_last_name'] ) ) {
// WordPress default last name field.
update_user_meta( $customer_id, 'last_name', sanitize_text_field( $_POST['billing_last_name'] ) );
// WooCommerce billing last name.
update_user_meta( $customer_id, 'billing_last_name', sanitize_text_field( $_POST['billing_last_name'] ) );
}
if ( isset( $_POST['billing_phone'] ) ) {
// WooCommerce billing phone
update_user_meta( $customer_id, 'billing_phone', sanitize_text_field( $_POST['billing_phone'] ) );
}
if ( isset( $_POST['reg_num'] ) ) {
// WooCommerce billing address
update_user_meta( $customer_id, 'reg_num', sanitize_text_field( $_POST['reg_num'] ) );
}
if ( isset( $_POST['Year_of_reg'] ) ) {
// WooCommerce billing postcode
update_user_meta( $customer_id, 'Year_of_reg', sanitize_text_field( $_POST['Year_of_reg'] ) );
}
if ( isset( $_POST['qualification'] ) ) {
// WooCommerce billing city
update_user_meta( $customer_id, 'qualification', sanitize_text_field( $_POST['qualification'] ) );
}
}
add_action( 'woocommerce_created_customer', 'wooc_save_extra_register_fields' );
?>
There's a plugin called "WC Address Fields on User Registration" which might do what you need. You can add add the billing/shipping fields (name, address, company, phone etc.) to the normal Woocommerce customer registration page - https://en-gb.wordpress.org/plugins/wc-afour/
Answered by TJ152 on January 2, 2022
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP