我为大学客户建立了一个Woocommerce商店,其唯一目的是每年两次向学生出售学习考察。客户要求在结账时(或注册时)学生需要输入他们的学号,这个号码需要在WordPress或Woocommerce数据库中获得批准才能让系统继续使用。
大约有100名学生可以申请,因此我可以根据需要卸载单个学生编号(如果这样可以更容易,则无需链接到辅助系统)。学生只能从商店订购1件商品,因此商品需要链接到他们的学生编号,一旦销售完成,他们就无法从商店订购任何其他商品。我已添加单一生命周期购买插件,但这会链接到他们的电子邮件地址,然后一些学生使用其他电子邮件地址在不允许的情况下购买更多商品。他们只有一个唯一的学号,所以它应该链接到这个号码。
我在想:
A)上传活跃的学生号码并在结帐时验证号码是否正确且尚未使用,或者 B)让学生在可以访问网站之前进行注册,并让系统检查学生编号是否有效。
有人能指出我正确的方向吗?
答案 0 :(得分:0)
为这个问题提供最佳,最佳解决方案将是您的B)选择。在注册网站时强制学生输入他们的学号是最好的选择,因为然后将保存到他们的个人资料的值与结账时输入的值进行比较的能力在前端比较容易。
我可以帮助您解决问题的部分解决方案,这样就可以帮助您了解您可以在Woo商务注册表单上创建的内容,以根据需要创建其他字段:
注意:这是如何将电话号码,名字和姓氏添加到表单的示例。
function wooc_extra_register_fields() {?>
<p class="form-row form-row-wide">
<label for="reg_billing_phone"><?php _e( 'Phone', 'woocommerce' ); ?></label>
<input type="text" class="input-text" name="billing_phone" id="reg_billing_phone" value="<?php esc_attr_e( $_POST['billing_phone'] ); ?>" />
</p>
<p class="form-row form-row-first">
<label for="reg_billing_first_name"><?php _e( 'First name', 'woocommerce' ); ?><span class="required">*</span></label>
<input type="text" class="input-text" name="billing_first_name" id="reg_billing_first_name" value="<?php if ( ! empty( $_POST['billing_first_name'] ) ) esc_attr_e( $_POST['billing_first_name'] ); ?>" />
</p>
<p class="form-row form-row-last">
<label for="reg_billing_last_name"><?php _e( 'Last name', 'woocommerce' ); ?><span class="required">*</span></label>
<input type="text" class="input-text" name="billing_last_name" id="reg_billing_last_name" value="<?php if ( ! empty( $_POST['billing_last_name'] ) ) esc_attr_e( $_POST['billing_last_name'] ); ?>" />
</p>
<div class="clear"></div>
<?php
}
add_action( 'woocommerce_register_form_start', 'wooc_extra_register_fields' );
您可以轻松编辑此代码并将其更改为一个添加的输入,即您要查找的学号。希望这有帮助,祝你好运!