如何在 WooCommerce 中允许客户选择配送日期和时间?

大家是否曾希望你的 WooCommerce 商店可以让客户选择他们偏好的配送日期和时间?好消息是——完全可以做到!只需一段简单的代码,我们就能在结账页面添加这个功能,让客户拥有更多控制权,同时提升他们的购物体验。

 

在这篇文章中,大胡将带你了解这段代码的作用、如何使用代码来实现这个功能。

 

一、这段代码能做什么?

这段代码会在我们的 WooCommerce 结账页面添加两个新字段:

首选配送日期:一个日历日期选择器,客户可以在指定范围内选择配送日期。

首选配送时间:一个下拉菜单,根据你设定的时间段提供可选的配送时间。

 

这段代码可以实现以下功能:

 

可配置的配送时间安排:你可以设置每天的开始和结束时间、时间段间隔(例如每15分钟一个时间段),以及客户最多可以提前多少天预约配送。

  • 禁用周末配送:可以选择关闭周末的配送服务。
  • 数据验证:在客户下单前,确保他们已选择符合范围的配送日期和时间。
  • 订单集成:将客户选择的配送日期和时间保存到订单详情中,你可以在后台查看,并可将其包含在发送给客户的邮件中。
  • 如何将代码加入wordpress独立站中?

1.访问主题文件:进入你的 WordPress 后台,导航到「外观 > 主题编辑器」,然后打开 functions.php 文件。

2.先备份:在进行任何修改之前,一定要先备份你的 functions.php 文件。

3.添加代码:将完整的代码片段粘贴到 functions.php 文件的末尾。

4.保存更改:点击“更新文件”进行保存。

 

重要提示: 直接编辑 functions.php 文件存在一定风险。一个小错误就可能导致网站崩溃,而且主题更新时也可能覆盖你的修改。

 代码如下:代码太长就不贴出来了,有需要的找我领取就行了。

 

 if (!defined('ABSPATH')) {

    exit; // Exit if accessed directly

}

// Delivery Time Configuration

define('DELIVERY_START_TIME', '10:00');  // Format: 'HH:mm' (24-hour format)

define('DELIVERY_END_TIME', '18:00');    // Format: 'HH:mm' (24-hour format)

define('DELIVERY_INTERVAL', 15);         // in minutes (30 = half hour slots, 60 = hour slots)

// Delivery Date Configuration

define('DELIVERY_DAYS_AHEAD', 90);       // number of days ahead to allow booking

define('DELIVERY_MIN_DAYS_AHEAD', 1);    // minimum days ahead for delivery (1 = next day, 0 = today)

define('DELIVERY_DISABLE_WEEKENDS', true); // set to false to allow weekend deliveries

// Disabled Days Configuration (0 = Sunday, 6 = Saturday)

global $DELIVERY_DISABLED_DAYS;

$DELIVERY_DISABLED_DAYS = array(); // Initialize empty array

if (DELIVERY_DISABLE_WEEKENDS) {

    $DELIVERY_DISABLED_DAYS = array(0, 6); // 0 = Sunday, 6 = Saturday

}

// Calculate date range

function wpsh_get_delivery_date_range() {

    static $dates = null;

    if ($dates === null) {

        $dates = array(

            'start' => date('Y-m-d', strtotime('+' . DELIVERY_MIN_DAYS_AHEAD . ' day')),

            'end' => date('Y-m-d', strtotime('+' . DELIVERY_DAYS_AHEAD . ' days'))

        );

    }

    return $dates;

}

 

 

代码使用说明:

1.时间日期设置

 

define('DELIVERY_START_TIME', '10:00');  // Delivery start time

define('DELIVERY_END_TIME', '18:00');    // Delivery end time

define('DELIVERY_INTERVAL', 15);         // Time slots in minutes

define('DELIVERY_DAYS_AHEAD', 90);       // How many days ahead customers can book

define('DELIVERY_MIN_DAYS_AHEAD', 1);    // Minimum days ahead for delivery

define('DELIVERY_DISABLE_WEEKENDS', true); // Disable weekend deliveries

 

DELIVERY_START_TIME 和 DELIVERY_END_TIME:设置每日的配送时间范围(开始与结束时间)。

  • DELIVERY_INTERVAL:设置每个时间段的间隔(例如 15 分钟)。
  • DELIVERY_DAYS_AHEAD:设置客户最多可以提前多少天预约配送。
  • DELIVERY_MIN_DAYS_AHEAD:设置最早可配送日期需提前的最少天数。
  • DELIVERY_DISABLE_WEEKENDS:设置为 `true` 时,将禁用周末配送。

 

2.禁止在某个日期配送

代码中有一个非常实用的部分,可以让你禁用一周中的特定日期进行配送。如果你不在周末提供配送服务,这个功能就非常适合你。

$DELIVERY_DISABLED_DAYS = array(0, 6); // 0 = Sunday, 6 = Saturday

通过自定义 `$DELIVERY_DISABLED_DAYS` 数组,你可以根据业务安排灵活设置可配送日期,使其完全符合你的运营时间。

 

1.$DELIVERY_DISABLED_DAYS:这是一个数组(列表),用于存放你想要禁用的星期对应的数字。

2.日期编号说明:在编程中,一周的日期通常用 0 到 6 表示,其中:

* 0 = 星期日

* 1 = 星期一

* 2 = 星期二

* 3 = 星期三

* 4 = 星期四

* 5 = 星期五

* 6 = 星期六

 

在上述代码中,我们禁用了星期日(0)和星期六(6),从而阻止客户选择周末作为配送日期。

 

总结:

添加配送日期和时间选择器可以提升客户体验,让他们能够自行选择收货时间。这对于提供本地配送或需要预约安排的业务来说尤其实用。

上一篇 Tiktok主页链接无法直接跳转到独立站怎么办?
下一篇 如何给Wordpress独立站设置订单的最小起订量?
AeroCore图片
AeroCore图片
AeroCore图片
AeroCore图片
AeroCore图片
最新评论
暂无评论