انجمن سون هاست

چگونگی اضافه کردن تاریخ تولد به حساب کابری کاربر

سلام دوستان من میخوام یه فیلد تاریخ تولد در قسمت ویرایش حساب کاربری اضافه کنم چطوری متونم انجام بدم؟؟ التبه بدون افزونه میخوام انجام بدم با کد باشه

سلام

این کد رو به فایل functions.php قالب فعالتون اضافه کنید و بررسی کنید:

// Add field - my account
function action_woocommerce_edit_account_form() {   
    woocommerce_form_field( 'birthday_field', array(
        'type'        => 'date',
        'label'       => __( 'My Birth Date', 'woocommerce' ),
        'placeholder' => __( 'Date of Birth', 'woocommerce' ),
        'required'    => true,
    ), get_user_meta( get_current_user_id(), 'birthday_field', true ));
}
add_action( 'woocommerce_edit_account_form', 'action_woocommerce_edit_account_form' );

// Validate - my account
function action_woocommerce_save_account_details_errors( $args ){
    if ( isset($_POST['birthday_field']) && empty($_POST['birthday_field']) ) {
        $args->add( 'error', __( 'Please provide a birth date', 'woocommerce' ) );
    }
}
add_action( 'woocommerce_save_account_details_errors','action_woocommerce_save_account_details_errors', 10, 1 );

// Save - my account
function action_woocommerce_save_account_details( $user_id ) {  
    if( isset($_POST['birthday_field']) && ! empty($_POST['birthday_field']) ) {
        update_user_meta( $user_id, 'birthday_field', sanitize_text_field($_POST['birthday_field']) );
    }
}
add_action( 'woocommerce_save_account_details', 'action_woocommerce_save_account_details', 10, 1 );

// Add field - admin
function add_user_birtday_field( $user ) {
    ?>
        <h3><?php _e('Birthday','woocommerce' ); ?></h3>
        <table class="form-table">
            <tr>
                <th><label for="birthday_field"><?php _e( 'Date of Birth', 'woocommerce' ); ?></label></th>
                <td><input type="date" name="birthday_field" value="<?php echo esc_attr( get_the_author_meta( 'birthday_field', $user->ID )); ?>" class="regular-text" /></td>
            </tr>
        </table>
        <br />
    <?php
}
add_action( 'show_user_profile', 'add_user_birtday_field', 10, 1 );
add_action( 'edit_user_profile', 'add_user_birtday_field', 10, 1 );

// Save field - admin
function save_user_birtday_field( $user_id ) {
    if( ! empty($_POST['birthday_field']) ) {
        update_user_meta( $user_id, 'birthday_field', sanitize_text_field( $_POST['birthday_field'] ) );
    }
}
add_action( 'personal_options_update', 'save_user_birtday_field', 10, 1 );
add_action( 'edit_user_profile_update', 'save_user_birtday_field', 10, 1 );

String های موجود در کد رو با سلیقه خودتون، ترجمه کنید.

2 Likes

ممنون از کدی که دادین فقط دوتا مشکل وجود داره :

  1. تاریخش به میلادی هست چطوری متیونم شمسیش کنم؟
  2. تاریخ تولد اومد آخر صفحه چطوریش بیارمش زیر نام خانوادگی؟؟

تحصیلات هم بخوام به صورت کشویی باز بشه اضافه کنم چه کدی باید بزنم؟

سلام

در ارتباط با استفاده شما پیشنهاد میکنم این دو پلاگین رو بررسی کنید:

https://yithemes.com/themes/plugins/yith-woocommerce-customize-myaccount-page/

سلام شما متوجه منظور من نشدین من میخوام در قسمت ویرایش حساب کاربری کاربر که نام و نام خانوادگی و… را ویرایش میکنه فیلد تاریخ تولد و تحصیلات هم اضافه بشه اما این دوتا افزونه ای که معرفی کردین کارش فرق داره

کسی بلد نبود بهم راهنمایی کنه