我正在使用访客结帐并启用了 "Automatically generate username from customer email""Automatically generate customer password" ,我也创建了一个隐藏的输入 <input class="input-checkbox" id="createaccount" <?php checked( ( true === $checkout->get_value( 'createaccount' ) || ( true === apply_filters( 'woocommerce_create_account_default_checked', false ) ) ), true) ?> type="checkbox" name="createaccount" value="1" /> <label for="createaccount" class="checkbox"><?php _e( 'Create an account?', 'woocommerce' ); ?></label> ,这有助于在结账时自动创建用户,因此客户不知道用户是通过他们的电子邮件生成的 . 但是,如果同一个用户使用相同的电子邮件尝试在结帐字段上填写相同的电子邮件,则会收到消息: "An account is already registered with your email address. Please login." ,它来自/woocommerce/includes/class-wc-checkout.php中的 wc_create_new_customer 函数 . 我想覆盖 wc_create_new_customer 函数并返回现有用户的 $customer_id 而不是已注册帐户的触发和错误 . 尝试过钩子和过滤器,但它们都不起作用 . 有帮助吗?提前致谢!