@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 будет всегда присутствовать
  • Вопрос задан
  • 388 просмотров
Решения вопроса 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];
        }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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