boxmoe_header_banner_img

Hello! 欢迎来到悠悠畅享网!

文章导读

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


avatar
作者 2025年9月7日 10

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

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

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

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

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

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

1. 获取产品信息与分类

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

2. 库存状态判断

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

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

AiMusic.so

aimusic.so是一款全新的在线免费AI音乐生成器

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

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

3. 日期与时间计算逻辑

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

完整代码示例

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

 <?php /**  * WooCommerce 产品配送预估:基于自定义分类和库存状态的动态显示  */ add_action( 'woocommerce_before_add_to_cart_form', 'custom_delivery_estimate_notice' );  function custom_delivery_estimate_notice() {     global $product;      // 确保在单品页且产品对象有效     if ( ! $product || ! is_product() ) {         return;     }      // --- 配置参数 ---     $custom_taxonomy_name = 'product_availability'; // 替换为您的自定义分类法名称,例如 'product_type'     $available_now_slug   = 'available-now';       // 替换为“立即有货”分类的 slug     $target_order_hour    = 16;                    // 每日截单时间(例如 16 代表下午4点)     date_default_timezone_set( 'Europe/Tallinn' ); // 根据您的实际时区设置,例如 'Asia/Shanghai'      // 1. 检查产品库存状态     if ( ! $product->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 = "预计送达日期:<strong>{$delivery_date_string}</strong>。";      // 计算今天距离截单时间还有多少小时     $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 .= " 如果您在今天接下来的 <strong>{$hours_left_today} 小时内</strong>下单,即可

以上就是WooCommerce 产品配送预估:基于自定义分类和库存状态的动态显示教程的详细内容,更多请关注php js ai php 对象



评论(已关闭)

评论已关闭