有时候为了防止欺诈者、违反网站使用政策的用户或某些风险比较高的用户在WooCommerce网站上下单,我们需要用户提交的订单信息组者某些用户下单。得益于WooCommerce灵活的Hook,我们可以很轻松地实现这个需求。
在下面的代码中,我们自定义函数添加一个简单的电子邮件黑名单,该函数会在结账时检查客户的电子邮件。只需在主题的 functions.php 文件中添加这8 行 PHP 代码,就能有效阻止来自特定电子邮件地址的订单。
add_action( 'woocommerce_after_checkout_validation', 'wprs_blacklist_billing_email', 9999, 2 );
function wprs_blacklist_billing_email( $data, $errors ) {
$blacklist = [ 'hello@example.com', 'info@lorem.io', 'me@john.co' ];
if ( in_array( $data['billing_email'], $blacklist ) ) {
$errors->add( 'blacklist', __( 'Sorry, our website is currently unable to process your request.', 'bbloomer' ) );
}
}
除了根据电子邮件,我们还可以根据用户提交的收货地址来做一些判断,比如如果用户的收货地址为某个高风险地区,我们可以直接阻止这个用户下单,以最大限度的避免风险。