WooCommerce在用户注册和我的账户页面添加自定义字段
文 / @UTHEME
关于在WooCommerce中自定义用户注册表单和我的账户页面
我是个电子商务网站的开发者,大多数情况下,我们都希望在用户注册时就获取更多的用户信息,而不仅仅是用户名和密码。幸运的是,WooCommerce可以自定义功能页面的模版文件,这就给我们自定义用户注册页面和我的账户页面的字段提供了可能。
具体而言,我们可以把相应的模板文件复制到主题文件夹中相应的位置,然后就可以开始使用WooCommerce模版文件开发了。比如,如果我要添加用户的姓名到注册页面,需要编辑主题文件夹中,WooCommerce的form-login.php
文件,并添加如下代码:
<pclass="form-rowform-row-wide">
<labelfor="reg_first_name"><?php_e('FirstName','woocommerce');?><spanclass="required">*</span></label>
<inputtype="text"class="input-text"requiredname="first_name"id="reg_first_name"value="<?phpif(!empty($_POST['first_name']))echoesc_attr($_POST['first_name']);?>"/>
</p>
<pclass="form-rowform-row-wide">
<labelfor="reg_last_name"><?php_e('LastName','woocommerce');?><spanclass="required">*</span></label>
<inputtype="text"class="input-text"requiredname="last_name"id="reg_last_name"value="<?phpif(!empty($_POST['last_name']))echoesc_attr($_POST['last_name']);?>"/>
</p>
这就向用户注册表单中添加了“姓名”字段。接下来,我们需要在用户注册时保存这些数据。为此,可以在functions.php中挂载一个保存用户的功能到“user_register”动作,代码如下:
add_action('user_register','pft_registration_save',10,1);
functionpft_registration_save($user_id){
if(isset($_POST['first_name']))
update_user_meta($user_id,'first_name',$_POST['first_name']);
if(isset($_POST['last_name']))
update_user_meta($user_id,'last_name',$_POST['last_name']);
if(isset($_POST['title']))
update_user_meta($user_id,'title',$_POST['title']);
if(isset($_POST['dob']))
update_user_meta($user_id,'dob',$_POST['dob']);
}
最后,我们还需要在编辑用户页面中添加同样的数据。用户编辑页面的代码在woocommerce/myaccount/form-edit-account.php
中,和form-login.php
一样,添加相应的字段即可,代码如下:
<pclass="form-rowform-row-first">
<labelfor="account_first_name"><?php_e('Firstname','woocommerce');?><spanclass="required">*</span></label>
<inputtype="text"class="input-text"name="account_first_name"id="account_first_name"value="<?phpechoesc_attr($user->first_name);?>"/>
</p>
<pclass="form-rowform-row-last">
<labelfor="account_last_name"><?php_e('Lastname','woocommerce');?><spanclass="required">*</span></label>
<inputtype="text"class="input-text"name="account_last_name"id="account_last_name"value="<?phpechoesc_attr($user->last_name);?>"/>
</p>
需要注意的是,在技术上,注册时获取更多的用户信息是可行的,但这可能会增加注册的难度,导致用户注册率的降低。因此,在获取更多用户信息之前,需要仔细考虑是否真的需要这些信息。如果没有这些信息,用户交易可以照常进行,还是不要这些信息比较好。

相关文章
-
盘点2023年依然好用的4款WordPress轻社区主题 2023-05-29 08:00:54
-
盘点2023年最好用的三款wordpress知识库主题 2023-05-29 08:00:26
-
个人网站选择WordPress还是Typecho? 2023-05-28 23:33:13
-
wordpress建外贸B2C独立站的五大优势 2023-05-28 23:05:49
-
盘点2023年依然好用的3款wordpress文档主题 2023-05-28 23:02:19
-
盘点2023年依然好用的3款wordpress外贸网站主题 2023-05-28 22:59:41
-
盘点2023年依然好用的3款wordpress电商主题 2023-05-28 22:56:05
-
wordpress后台地址是多少(附:后台地址修改教程) 2023-05-28 22:54:15
-
盘点2023年依然好用的3款wordpress笔记主题 2023-05-28 22:51:13
-
开源wordpress主题:kratos 介绍 2023-05-28 22:47:46