我们在WooCommerce商店中有一种特殊产品,我们希望每个电子邮件地址只能购买一次。 请注意,客户尚未登录。有没有一种方法可以在下订单之前检查用户在结帐页面上输入的电子邮件地址,并显示一条消息,表明他们已经使用此电子邮件地址购买了产品并禁用了“下订单”按钮。如果客户更改了电子邮件地址,只要以前从未使用过该电子邮件地址来购买该产品,他们就可以继续购买。
答案 0 :(得分:0)
我刚刚在这里找到此链接。 https://www.skyverge.com/blog/prevent-repeat-purchase-with-woocommerce/
建议使用wc_customer_bought_product函数检查用户的电子邮件地址,以查看他们以前是否购买过该产品。
// return false if the customer has bought the product
if ( wc_customer_bought_product( wp_get_current_user()->user_email, get_current_user_id(), $product_id ) ) {
$purchasable = false;
}
它要求用户登录,但是没有理由您不能在结帐时使用ajax来测试电子邮件表单字段(代替 wp_get_current_user()-> user_email )该功能,然后,如果您收到真实的答复,则可以使用错误消息替换结帐表单中的“提交”按钮。