Last active
June 22, 2021 08:26
-
-
Save hamidrezayazdani/15685cd579048d2cde32c3c13e2d295d to your computer and use it in GitHub Desktop.
Add first & last name fields to woocommerce registration form
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<? | |
/** | |
* Add a custom field to woocommerce registeration form | |
*/ | |
add_action( 'woocommerce_register_form', 'ywp_add_name_field_ro_wc_register_form' ); | |
function ywp_add_name_field_ro_wc_register_form() { | |
woocommerce_form_field( | |
'ywp_register_fname', | |
array( | |
'type' => 'text', | |
'required' => true, // صرفا یک * در مقابل عنوان فیلد نمایش میدهد، برای سنجش اینکه کاربر فیلد رو پر کرده باید بررسی انجام شود | |
'label' => 'نام' | |
), | |
( $_POST['ywp_register_fname'] ?? '' ), | |
); | |
woocommerce_form_field( | |
'ywp_register_lname', | |
array( | |
'type' => 'text', | |
'required' => true, // صرفا یک * در مقابل عنوان فیلد نمایش میدهد، برای سنجش اینکه کاربر فیلد رو پر کرده باید بررسی انجام شود | |
'label' => 'نام خانوادگی' | |
), | |
( $_POST['ywp_register_lname'] ?? '' ), | |
); | |
} | |
/** | |
* Check national code field filled | |
*/ | |
add_action( 'woocommerce_register_post', 'ywp_check_national_code_filled', 10, 3 ); | |
function ywp_check_national_code_filled( $username, $email, $errors ) { | |
if ( empty( $_POST['ywp_register_fname'] ) ) { | |
$errors->add( 'empty_firstname_error', 'لطفا نام خود را وارد کنید!' ); | |
} | |
if ( empty( $_POST['ywp_register_lname'] ) ) { | |
$errors->add( 'empty_lastname_error', 'لطفا نام خانوادگی خود را وارد کنید!' ); | |
} | |
} | |
/** | |
* ُSave custom fields to user shipping & billing fields | |
*/ | |
add_action( 'woocommerce_created_customer', 'ywp_save_register_fields' ); | |
function ywp_save_register_fields( $user_id ) { | |
if ( isset( $_POST['ywp_register_fname'] ) ) { | |
update_user_meta( $user_id, 'billing_first_name', wc_clean( $_POST['ywp_register_fname'] ) ); | |
update_user_meta( $user_id, 'shipping_first_name', wc_clean( $_POST['ywp_register_fname'] ) ); | |
} | |
if ( isset( $_POST['ywp_register_lname'] ) ) { | |
update_user_meta( $user_id, 'billing_last_name', wc_clean( $_POST['ywp_register_lname'] ) ); | |
update_user_meta( $user_id, 'shipping_last_name', wc_clean( $_POST['ywp_register_lname'] ) ); | |
} | |
} | |
// The code goes to your active theme (or child theme) functions.php file |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment