如何将性别字段添加到woocommerse编辑帐户

时间:2016-03-25 13:40:06

标签: woocommerce

我正在woocommerse商店网站上工作,需要在用户个人资料页面中显示性别字段。我试图将以下代码添加到functions.php

0xc6

它在Wordpress用户个人资料页面中显示性别字段,但不在woocommerce用户个人资料页面中显示。

这可能吗?

提前致谢。

2 个答案:

答案 0 :(得分:3)

在自定义form-edit-account.php(您从woocommerce/templates/nyaccount)文件中复制的电子邮件字段后添加此内容:

<p class="form-row form-row-last">
    <label for="gender">Gender:</label>
    <select name="gender" id="gender">
        <option value="Male" <?php selected('Male', get_user_meta($user->ID, 'gender', true)); ?>>Male</option>
        <option value="Female" <?php selected('Female', get_user_meta($user->ID, 'gender', true)); ?>>Female</option>
    </select>
</p>
<div class="clear"></div>

将此添加到主题的functions.php文件中:

// ---- Save user input into database.
add_action('woocommerce_save_account_details', 'custom_woocommerce_save_account_details');
function custom_woocommerce_save_account_details($user_id) {
    if ($user_id) {
        if (isset($_POST['gender'])) {
            if ($_POST['gender'] == 'Male' || $_POST['gender'] == 'Female') {
                update_user_meta($user_id, 'gender', $_POST['gender']);
            }
        }
    }
}

这肯定会奏效。

答案 1 :(得分:0)

Woocommerce用户个人资料页面与标准Wordpress用户个人资料相同,因此,除非您运行其他以某种方式干扰的插件,否则您尝试显示的表单元素将会出现,无论其如何用户已创建。

顺便说一下,它应该是<h2>Extra profile information</h2>。很久以前,Wordpress已经改变了管理头结构。此外,不推荐使用update_usermeta()。请改用update_user_meta()