
“本文档旨在指导开发者如何在 WooCommerce 商店中,针对特定分类(taxonomy)下的产品,显示预计交货时间。我们将修改现有的代码,使其仅在指定分类的产品页面上显示交货信息,并根据订单时间动态调整交货日期,同时处理缺货情况,提供更精确的预计交货时间提示。”
为了仅在特定分类的产品页面上显示预计交货时间,我们需要利用 WooCommerce 的全局 $product 对象来获取当前产品的分类信息。以下是如何修改代码以实现此目的:
add_action( 'woocommerce_before_add_to_cart_form', 'delivery_estimate' );
function delivery_estimate() {
global $product;
// 检查产品是否有库存
if ( !$product->is_in_stock() ) {
return; // 如果缺货,则不显示交货信息
}
if ( 'product' == $product->post_type ) { // 确保是产品页面
$terms = wp_get_post_terms( $product->id, 'available_now' ); // 将 'available_now' 替换为你实际的分类名称
if ( $terms instanceof WP_Error ) {
// 处理错误,例如记录日志
error_log( '获取分类信息时出错: ' . $terms->get_error_message() );
} elseif ( ! empty( $terms ) ) {
$term = $terms[ 0 ]; // 假设产品只属于一个分类
if ( 'available-now' == $term->slug ) { // 将 'available-now' 替换为你实际的分类别名
date_default_timezone_set( 'Europe/Tallinn' );
// 获取当前时间
$current_hour = date('H');
$end_of_day_hour = 16; // 4PM
// 计算剩余时间 (小时)
$hours_left = $end_of_day_hour - $current_hour;
if ($hours_left < 0) {
$hours_left = 0;
}
// if FRI/SAT/SUN delivery will be MON
if ( date( 'N' ) >= 5 ) {
$start_del_day = date( "jS F", strtotime( "next tuesday" ) );
$end_del_day = date( "jS F", strtotime( "next tuesday" ) );
$order_by = "Monday";
}
// if MON/THU after 4PM delivery will be day after tomorrow
elseif ( date( 'H' ) >= 16 ) {
$start_del_day = date( "jS F", strtotime( "tomorrow + 2 day" ) );
$end_del_day = date( "jS F", strtotime( "tomorrow + 2 day" ) );
$order_by = "tomorrow";
}
// if MON/THU before 4PM delivery will be TOMORROW
else {
$start_del_day = date( "jS F", strtotime( "tomorrow + 1 day" ) );
$end_del_day = date( "jS F", strtotime( "tomorrow + 1 day" ) );
$order_by = "today";
}
// 构建输出信息
$html = "<br><div class='woocommerce-message' style='clear:both'>Ready for delivery between {$start_del_day} & {$end_del_day} when you order within {$hours_left} hours.</div>";
echo $html;
} // endif
} // endif
} // endif
}代码解释:
通过以上步骤,你就可以实现在 WooCommerce 商店中,仅针对特定分类下的产品,显示精确的预计交货时间信息。 这将极大地提升用户体验,并帮助用户更好地了解产品的交货时间。
以上就是在 WooCommerce 特定分类的产品中显示预计交货时间的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号