如何让Sky Verge WooCommerce配送预估插件排除周六日?
解决Sky Verge WooCommerce Shipping Estimates排除周六周日的问题
你可以通过添加自定义PHP代码过滤插件计算的配送预估日期,自动跳过周六和周日,以下是具体实现方案:
代码实现
将以下代码添加到你的WordPress站点(推荐使用代码片段插件,或子主题的functions.php文件):
add_filter( 'skyverge_shipping_estimate_calculated_date', 'exclude_weekends_from_shipping_estimate', 10, 2 ); function exclude_weekends_from_shipping_estimate( $estimated_date, $args ) { // 循环检查日期是否为周末(周日=0,周六=6) while ( in_array( date( 'w', $estimated_date ), [ '0', '6' ], true ) ) { $estimated_date += DAY_IN_SECONDS; // 往后推一天 } return $estimated_date; }
代码说明
- 代码利用插件提供的
skyverge_shipping_estimate_calculated_date钩子,拦截并修改计算后的预估日期。 - 通过
date('w')获取日期对应的星期标识,周日为0、周六为6,循环判断若为周末则自动加一天,直到得到工作日日期。 DAY_IN_SECONDS是WooCommerce内置常量,代表一天的秒数(86400),无需手动定义。
注意事项
- 不要直接修改父主题的
functions.php文件,否则主题更新后代码会丢失,优先使用子主题或代码片段插件(如Code Snippets)添加代码。 - 添加代码后测试不同下单场景,比如周五下单设置1天配送,确认预估日期会跳过周六、周日,直接显示周一。
内容的提问来源于stack exchange,提问作者Edward Allen
相关产品推荐
相关产品推荐

