Помощь Вывод даты доставки Woocommerce

areshin71

Профессор
Регистрация
19 Сен 2015
Сообщения
109
Реакции
42
Здравствуйте!
Знает кто-нибудь или может реализовать вывод даты ближайшей доставки в различных местах сайта (шапка и страница товара)?
Поподробнее:
В магазине существует расписание доставки в зависимости от даты оформления заказа. Например: доставка на вторник осуществляется при оформлении заказа до 12:00 воскресенья, на четверг - до 12:00 вторника, а на субботу - до 12:00 четверга.
Т.е. код должен проверять текущие дату/время и выводить дату ближайшей доставки по заданным условиям.
Есть, конечно, плагин от yith (delivery date), но он реализует выбор даты на странице оформления заказа, что не подходит.
 

apetrashov

Создатель
Регистрация
22 Окт 2015
Сообщения
24
Реакции
9
Вставляем в functions.php в каталоге темы или более пригодном месте
Как-то так:

Код:
function get_delivery_date(){
    $date = new DateTime();
    if ($date->format('H') < 12){ // Если заказ до 12:00 то
        $date->modify('+2 days'); // + 2 дня к дате доставки
        return $date->format('d.m.Y');
    }
    else{ // Иначе
        $date->modify('+3 days'); // + 3 дня к дате доставки
        return $date->format('d.m.Y');
    }
}

add_action('woocommerce_before_add_to_cart_button', 'print_dd_below_add_to_cart_button', 5); // Здесь "woocommerce_before_add_to_cart_button" - место на странице товара где будет дата доставки

function print_dd_below_add_to_cart_button(){
    $delivery_date = '<span>Ближайшая дата доставки: <b>' . get_delivery_date() . '</b></span>'; // Здесь текст и сама дата
    echo $delivery_date;
}
 

areshin71

Профессор
Регистрация
19 Сен 2015
Сообщения
109
Реакции
42
Вставляем в functions.php в каталоге темы или более пригодном месте
Как-то так:
Спасибо за предложенный вариант!
Пробовать не буду, т.к. уже решил задачу.
Если кому-нибудь будет полезно, то вот готовое решение:
Скрытое содержимое доступно для зарегистрированных пользователей!
 

Apelsinoviy

Создатель
Регистрация
19 Мар 2015
Сообщения
40
Реакции
79
Подскажите, пожалуйста, как этот код переписать, чтоб я мог его вывести с помощью шорт кода где мне нужно?

Вставляем в functions.php в каталоге темы или более пригодном месте
Как-то так:

Код:
function get_delivery_date(){
    $date = new DateTime();
    if ($date->format('H') < 12){ // Если заказ до 12:00 то
        $date->modify('+2 days'); // + 2 дня к дате доставки
        return $date->format('d.m.Y');
    }
    else{ // Иначе
        $date->modify('+3 days'); // + 3 дня к дате доставки
        return $date->format('d.m.Y');
    }
}

add_action('woocommerce_before_add_to_cart_button', 'print_dd_below_add_to_cart_button', 5); // Здесь "woocommerce_before_add_to_cart_button" - место на странице товара где будет дата доставки

function print_dd_below_add_to_cart_button(){
    $delivery_date = '<span>Ближайшая дата доставки: <b>' . get_delivery_date() . '</b></span>'; // Здесь текст и сама дата
    echo $delivery_date;
}
 
Сверху