从自定义 WooCommerce 我的帐户选项卡保存表单数据

我在“我的帐户”中创建了一个新的“会员详细信息”选项卡,并用表单字段填充该选项卡以收集会员详细信息,例如爱好、生日等。然后这些详细信息会显示在“我的帐户”仪表板上。


如何保存在新会员详细信息选项卡上提交的数据?


许多站点都有如何在新选项卡上显示信息的示例,但我找不到任何显示如何提交和保存表单数据的示例。


function add_custom_fields() {

    $user = wp_get_current_user();

    ?>

    <form id="edit_member_details" method="post">

        <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">

            <label for="member_hobbies"><?php _e( 'Member Hobbies', 'woocommerce' ); ?>

            <input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="member_hobbies" id="member_hobbies" value="<?php echo esc_attr( $user->member_hobbies ); ?>" />

        </p>

        <p>

            <button type="submit" class="button" name="save_member_details" value="<?php esc_attr_e( 'Save member details', 'woocommerce' ); ?>"><?php esc_html_e( 'Save member details', 'woocommerce' ); ?></button>

            <input type="hidden" name="woocommerce_edit_member_details" value="save_member_details" />

        </p>

    </form>

    <?php

}


add_action( 'woocommerce_save_account_details', 'save_member_details', 12, 1 );

function save_member_details( $user_id ) {

    if( isset( $_POST['member_hobbies'] ) )

        update_user_meta( $user_id, 'member_hobbies', sanitize_text_field( $_POST['member_hobbies'] ) );

}


慕码人2483693
浏览 149回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP