15ответ(ов) в теме
And.Mosk
не в сети 6 месяцев
На сайте с 26.02.2019
Участник
Тем 13
Сообщения 43
1
17:04
Версия плагина: 1.8.1

Здравствуйте. Можете написать переменные, которые выводят дату, время, цену?
Я хотел бы через echo() вывести в карточки товара эти параметры. Чтобы через произвольные поля не указывать по 2 раза эту информацию при создании мероприятия.

0
Андрей CS
не в сети 12 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16984
2
17:28

Добрый день.
Параметры даты и времени находятся в произвольном поле мероприятия:

$event_datetimes = get_post_meta($post->ID,'event-datetimes',1);

где $event_datetimes - массив данных времени и даты проведения
Разложите его через print_r и вам станет ясна его структура, тогда сможете правильно вывести дату и время.
А цена для каждого места своя, она не привязана к какому то мероприятию.

1
And.Mosk
не в сети 6 месяцев
На сайте с 26.02.2019
Участник
Тем 13
Сообщения 43
3
18:50

Пытался вывести, но в отладке ошибку пишет.
Нашел в core.php вроде этот массив, где 2 строчки:
evpl_get_event_dates
evpl_get_event_times

Правильно?
Или event_dates и event_times?
Но через echo() не выводит не так и не так...

0
Вова (Otshelnik-Fm)
не в сети 1 месяц
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
4
19:11

And.Mosk сказал(а)
но в отладке ошибку пишет.

- Что именно делаете и какую ошибку получаете?

Переменную $event_datetimes распечатывали? Может неверно с ней обращаетесь?

0
And.Mosk
не в сети 6 месяцев
На сайте с 26.02.2019
Участник
Тем 13
Сообщения 43
5
19:50

Пишу в теге php:
print_r($event_datetimes);

Мне выдает:
Notice: Undefined variable...

Редакции сообщения
17.05.2019 19:51And.MoskПричина: не указано
0
Вова (Otshelnik-Fm)
не в сети 1 месяц
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
6
20:04

Ну а глобальная $post у вас объявлена? что содержит $post->ID?

Если код не работает - дебажте его "вверх"

upd - вы из 2-го сообщения Андрея - код этот не вписали чтоли?

Редакции сообщения
17.05.2019 20:05Otshelnik-FmПричина: не указано
0
Андрей CS
не в сети 12 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16984
7
20:24

Нашел в core.php вроде этот массив, где 2 строчки:
evpl_get_event_dates
evpl_get_event_times

да, также присутствуют эти функции, для получения данных им надо передать ИД мероприятия, возвращают массив данных

0
Fruit
не в сети 2 года
На сайте с 15.11.2017
Участник
Тем 22
Сообщения 155
8
17:59

Решил вопрос автора таким способом:
$event_datetimes = get_post_meta($post->ID,'event-datetimes');
Дата: echo $event_datetimes[0]['dates']['single'][0];
Время: echo $event_datetimes[0]['times'][0];
Может кому то ещё пригодится.

0
Fruit
не в сети 2 года
На сайте с 15.11.2017
Участник
Тем 22
Сообщения 155
9
16:22

Столкнулся с такого проблемой:
Если добавить дополнительное время, одно или больше, то оно не показывается. Вывел доп. время с помощью echo $event_datetimes[0]['times'][1];, время вывелось, но только у одного концерта где было оно добавлено. А у тех тех концертов где его нет, вышла ошибка "Notice: Undefined offset: 1 in" и показывает на строку с echo $event_datetimes[0]['times'][1];, как решить это? Плохо и мало понимаю в php.

0
Андрей CS
не в сети 12 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16984
10
17:45

вы посмотрите структуру массива $event_datetimes

print_r($event_datetimes)

далее станет понятно как с ним работать

0
Fruit
не в сети 2 года
На сайте с 15.11.2017
Участник
Тем 22
Сообщения 155
11
21:22

Андрей CS сказал(а)
вы посмотрите структуру массива $event_datetimes

Я с этого и начинал.

0
Андрей CS
не в сети 12 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16984
12
11:45

как вы сами видите, не везде присутствуют данные $event_datetimes[0]['times'][1], поэтому необходимо перед выводом делать проверку на их наличие:

if(isset($event_datetimes[0]['times'][1])) echo $event_datetimes[0]['times'][1];

1
Fruit
не в сети 2 года
На сайте с 15.11.2017
Участник
Тем 22
Сообщения 155
13
18:27

Андрей CS сказал(а)
поэтому необходимо перед выводом делать проверку

Да, я уже нагуглил про проверку. Спасибо большое, работает.

0
Андрей CS
не в сети 12 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16984
14
19:18

лучше всего сделать так

echo implode(' и ', $event_datetimes[0]['times']);

вы сразу получите нужный вариант вывода

1
Fruit
не в сети 2 года
На сайте с 15.11.2017
Участник
Тем 22
Сообщения 155
15
14:16

Андрей CS сказал(а)
лучше всего сделать так

echo implode(' и ', $event_datetimes[0]['times']);

вы сразу получите нужный вариант вывода

Я сделал так: if(isset($event_datetimes[0]['times'][1])) echo 'и '.$event_datetimes[0]['times'][1];
Спасибо!
Буду изучать implode

Редакции сообщения
12.02.2021 14:18FruitПричина: не указано
0
Вы не имеете права на публикацию сообщений в этой теме