目录
Toggle前几天做一个wordpress网站维护时遇到一个疑似“恶意刷单”的问题,客户后台出现了很多未付款的订单,而且订单来源都是未知。
这种情况一般只需要关闭游客购买就可以避免,但客户考虑关闭会影响客户下单,所以不能关闭,那就只能做一些限制,有很多防火墙插件可以拦截,但是这种插件又会大大降低购物体验,最好别用。
根据客户的网站情况,处理方法如下(仅供参考):
我在AI协助下写了一个简易插件,安装后可以对同一IP的访问次数和下单最小操作时间进行调整。上面的参数需要根据自身网站的实际情况调整,边调边测试。
很多时候被刷的产品可能是同一个,修改URL可能就没事了。
有部分刷新可能是通过Rest API进行的,如果能禁用Rest API就可以避免这类刷单。但完全禁用Rest API又可能影响正常用户注册。所以可以通过下面的代码禁用一部分,保留WooCommerce相关的。
add_filter( 'rest_endpoints', function( $endpoints ) {
// 允许已登录用户访问所有API
if ( is_user_logged_in() ) {
return $endpoints;
}
// 定义需要保留的WooCommerce端点(关键:用户注册和登录)
$allowed_endpoints = [
'/wc/store/v1/cart', // 购物车功能
'/wc/store/v1/products', // 产品展示
'/wc/store/v1/checkout', // 结账流程
'/wc/v3/customers', // 用户注册(POST请求)
'/wc/v3/customers/(?P<id>[\d]+)', // 用户资料(部分公开)
];
// 遍历所有端点,仅保留允许的列表
foreach ( $endpoints as $route => $details ) {
$is_allowed = false;
foreach ( $allowed_endpoints as $allowed_route ) {
if ( preg_match( "@^{$allowed_route}@i", $route ) ) {
$is_allowed = true;
break;
}
}
if ( ! $is_allowed ) {
unset( $endpoints[ $route ] );
}
}
return $endpoints;
});
通过以上操作,目前观察还是有点效果,但其实也只能防一部分,如果实在不行就只能上专业的验证或防火墙了。
如果需要上面用到的插件,可以在【wodpress建站开发】公众号回复【checkout】获取。插件仅在我自己的项目中测试过,其他网站使用时请先备份,再尝试,最好在测试环境使用,出问题的话别怪我,哈哈😃。
© Copyright 2024. 悦然网络工作室/悦然wordpress建站 专注中小企业wordpress建站 All Rights Reserved.网站地图
本站图片来源为Pexels、Pixabay、Freepik、Unsplash等图片库的免费许可,CC0协议;还有部分为自己手绘,版权碰瓷请自重!法律服务:law@yueranseo.com 蜀ICP备20016391号-1 川公网安备 51011502000367号