Задать вопрос
@ligisayan

Как можно вытащить id товара из полученной строки?

Всем привет! Есть магазин на wordpress+woocommerce и в произвольные поля продукта можно добавить подарок, к которому можно обратиться с помощью мета данных таким способом:
global $product;
$meta_values = get_post_meta($product->post->ID);
if(!$meta_values['wfg_single_gift_enabled']) {
            $gift_id = $meta_values["_wfg_single_gift_products"];
            echo $gift_id[0];
        }

На выходе получаем строчку в таком виде: a:1:{i:0;s:4:"6090";} из которой я хочу вытащить ID=6090 товара, чтобы можно было с ним взаимодействовать. Как это правильно сделать? большая вероятность, что наполнение строки и будет отличаться для разных случаев, но id будет всегда присутствовать
  • Вопрос задан
  • 389 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фулстек-разработчик расширенный
    20 месяцев
    Далее
  • beONmax
    WordPress – с нуля до Профи
    1 неделя
    Далее
  • beONmax
    Профессия WordPress разработчик
    3 месяца
    Далее
Решения вопроса 2
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Это сериалзованные данные. Используйте функцию maybe_unserialize()
Ответ написан
Комментировать
@ligisayan Автор вопроса
Сергей спасибо, но на самом деле есть более цивилизованный и правильный способ - мне подсказали, что это сериализованная строка, поэтому делаем так, чтобы избежать возможных проблем:
global $product;
$meta_values = get_post_meta($product->post->ID);
if(!$meta_values['wfg_single_gift_enabled']) {
            $gift_id = $meta_values["_wfg_single_gift_products"];
            $session_data = (unserialize($gift_id[0]));
            echo $session_data[0];
        }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы