在处理订单之前检查客户客户的电子邮件地址,以防止他们购买多个样品产品

时间:2017-04-03 22:44:35

标签: wordpress woocommerce

希望有一位熟悉结帐流程的woocommerce资深人士可以帮助我解决这个问题。我的商店以折扣价提供样品,但我想将此限制为每位客户的一次性订单。我找到了一个solution that works for registered users,但我想知道是否还有另一种方法可以在订购产品之前强制客人设置帐户。

我在想的是,是否有办法检查客户的结算电子邮件地址是否在结帐阶段订购了此特定产品。因此,他们填写结帐表单并单击“继续”,但在客户被带到支付网关之前,他们的电子邮件地址将被检查以便订购此特定产品,如果是,请将其指向“订单失败”页面而不是通过支付网关。

提前致谢!

1 个答案:

答案 0 :(得分:1)

您有两种方法可以实现此功能:

  1. 您可以在结帐页面上验证电子邮件。使用客户/访客的电子邮件地址扫描订单,如果找到免费产品,则验证。这样就不会在系统中记录不必要的订单。
  2. 以下是自定义结帐验证的方法。

    /**
     * Process the checkout
     **/
    add_action('woocommerce_checkout_process', 'my_custom_checkout_field_process');
    
    function my_custom_checkout_field_process() {
        global $woocommerce;
    
        // Check if set, if its not set add an error. This one is only requite for companies
        if ( $_POST['billing_country'] == "NO" )
            if (!$_POST['notes']) 
                $woocommerce->add_error( __('Please add the required information in "Order notes"') );
    }
    
    1. 或者,您可以让客户下订单并在下订单时,如果订购了样品,则进行扫描。如果找到,那么您可以将该订单的状态设置为失败。 - 但这似乎有点不合逻辑。