我正在woocommerse商店网站上工作,需要在用户个人资料页面中显示性别字段。我试图将以下代码添加到functions.php
0xc6
它在Wordpress用户个人资料页面中显示性别字段,但不在woocommerce用户个人资料页面中显示。
这可能吗?
提前致谢。
答案 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()
。