0

0

WooCommerce 产品配送预估:基于自定义分类和库存状态的动态显示教程

心靈之曲

心靈之曲

发布时间:2025-09-07 22:07:01

|

214人浏览过

|

来源于php中文网

原创

woocommerce 产品配送预估:基于自定义分类和库存状态的动态显示教程

本教程旨在指导您如何在 WooCommerce 单品页动态显示预计配送时间。通过集成自定义产品分类(如“立即有货”)和库存状态,我们将详细讲解如何编写代码,确保仅对符合特定条件的产品显示配送通知,并根据下单时间智能调整预计送达日期,从而显著提升用户体验和信息透明度。

引言:动态配送预估的重要性

在电子商务中,清晰、准确的配送信息对于顾客购买决策至关重要。传统的静态配送信息往往无法满足所有产品的多样化需求,例如某些产品可能“立即有货”并享受快速配送,而另一些则可能需要更长的备货时间。此外,根据库存状态动态显示或隐藏配送信息,也能避免给顾客带来不必要的困惑。本教程将介绍一种灵活的解决方案,允许您根据产品的自定义分类和库存状态,在 WooCommerce 单品页显示定制化的配送预估。

核心实现:集成产品数据与自定义逻辑

要实现动态配送预估,我们需要在 WooCommerce 的产品页面加载时,获取当前产品的信息,包括其自定义分类和库存状态,然后根据预设的业务逻辑计算并显示配送日期。

1. 获取产品信息与分类

WooCommerce 提供了全局的 $product 对象,通过它可以访问当前产品的各种属性,例如 ID、库存状态和所属分类。我们可以使用 wp_get_post_terms() 函数来获取产品所属的自定义分类术语。

2. 库存状态判断

在显示配送预估之前,必须检查产品的库存状态。如果产品缺货,显示配送信息可能会误导顾客。$product->is_in_stock() 方法可以帮助我们轻松判断产品是否有库存。

3. 日期与时间计算逻辑

配送日期的计算需要考虑当前日期、星期几以及一天中的时间(例如,下午4点前或后下单)。这将影响预计送达日期是明天、后天还是下周。同时,我们还可以计算出今天在特定时间点前还有多少小时可以下单,以提供更具体的引导。

完整代码示例

将以下代码添加到您的主题的 functions.php 文件或自定义插件中。请务必根据您的实际情况修改自定义分类法名称、分类 Slug 和时区。

is_in_stock() ) {
        return; // 如果缺货,不显示通知
    }

    // 2. 检查产品是否属于指定的自定义分类
    $is_available_now = false;
    $terms = wp_get_post_terms( $product->get_id(), $custom_taxonomy_name );

    if ( ! is_wp_error( $terms ) && ! empty( $terms ) ) {
        foreach ( $terms as $term ) {
            if ( $term->slug === $available_now_slug ) {
                $is_available_now = true;
                break;
            }
        }
    }

    if ( ! $is_available_now ) {
        return; // 如果不属于“立即有货”分类,不显示通知
    }

    // 3. 计算配送日期和时间
    $current_day_of_week = (int) date( 'N' ); // 1 (Mon) through 7 (Sun)
    $current_hour        = (int) date( 'H' ); // 00 through 23

    $delivery_date_string = '';
    $order_by_phrase      = ''; // 用于提示顾客何时下单的短语

    // 周五、周六、周日下单,下周二送达
    if ( $current_day_of_week >= 5 ) { // Friday (5), Saturday (6), Sunday (7)
        $delivery_date_string = date( "jS F", strtotime( "next tuesday" ) );
        $order_by_phrase      = "周一";
    }
    // 周一至周四,下午截单时间后下单,后天送达
    elseif ( $current_hour >= $target_order_hour ) {
        $delivery_date_string = date( "jS F", strtotime( "tomorrow + 1 day" ) );
        $order_by_phrase      = "明天";
    }
    // 周一至周四,下午截单时间前下单,明天送达
    else {
        $delivery_date_string = date( "jS F", strtotime( "tomorrow" ) );
        $order_by_phrase      = "今天";
    }

    // 4. 组装并显示通知消息
    $delivery_message = "预计送达日期:{$delivery_date_string}。";

    // 计算今天距离截单时间还有多少小时
    $hours_left_today = 0;
    if ( $current_hour < $target_order_hour ) {
        $hours_left_today = $target_order_hour - $current_hour;
    }

    // 根据条件追加下单提示
    // 如果是工作日且在截单时间前,显示“今天还剩X小时可下单”
    if ( $current_day_of_week < 5 && $current_hour < $target_order_hour ) {
        $delivery_message .= " 如果您在今天接下来的 {$hours_left_today} 小时内下单,即可

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2012

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1333

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1233

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

948

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1402

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1231

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1440

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1303

2023.11.13

php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

74

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 8.2万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 6.9万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号