亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將生日字段添加到 WooCommerce 我的帳戶和管理員用戶頁面

將生日字段添加到 WooCommerce 我的帳戶和管理員用戶頁面

PHP
慕神8447489 2023-04-28 14:39:54
我已經添加了下面的代碼。生日字段顯示在我的帳戶頁面以及 WP 管理員用戶頁面中,但問題是日期未保存。到目前為止我所擁有的function iconic_get_account_fields() {return apply_filters( 'iconic_account_fields', array(    'user_url' => array(        'type'        => 'date',        'label'       => __( 'My Birth Date', 'iconic' ),        'placeholder' => __( 'Date of Birth', 'iconic' ),        'required'    => true,    ),) );}/*** Add fields to registration form and account area.*/function iconic_print_user_frontend_fields() {$fields = iconic_get_account_fields();foreach ( $fields as $key => $field_args ) {    woocommerce_form_field( $key, $field_args );}}add_action( 'woocommerce_edit_account_form', 'iconic_print_user_frontend_fields', 10 ); // my account /** * Add fields to admin area. */function iconic_print_user_admin_fields() {$fields = iconic_get_account_fields();?><h2><?php _e( 'Additional Information', 'iconic' ); ?></h2><table class="form-table" id="iconic-additional-information">    <tbody>    <?php foreach ( $fields as $key => $field_args ) { ?>        <tr>            <th>                <label for="<?php echo $key; ?>"><?php echo $field_args['label']; ?></label>            </th>            <td>                <?php $field_args['label'] = false; ?>                <?php woocommerce_form_field( $key, $field_args ); ?>            </td>        </tr>    <?php } ?>    </tbody> </table> <?php } add_action( 'show_user_profile', 'iconic_print_user_admin_fields', 30 ); // admin: edit profile add_action( 'edit_user_profile', 'iconic_print_user_admin_fields', 30 ); // admin: edit other users我部分使用的代碼來自:添加自定義 WooCommerce 注冊字段的終極指南
查看完整描述

1 回答

?
皈依舞

TA貢獻1851條經驗 獲得超3個贊

以下代碼將添加(并保存)一個自定義生日字段到

  • 我的帳戶 - 編輯帳戶

  • 管理員用戶頁面 - 個人資料

// 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 );


查看完整回答
反對 回復 2023-04-28
  • 1 回答
  • 0 關注
  • 151 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號