Задать вопрос
  • Как сделать чтобы при выборе цвета обуви открывалась другая карточка товара Woocommerce?

    @Elena_11 Автор вопроса
    Refguser, в моём вопросе не было слов "простой товар", как раз указано что он вариативный и на скриншоте видно что есть цвета и размеры.

    Магазин уже функционирующий, есть уже с сотню вбитых товаров именно таким образом. По какой причине не подходит базовый вариативный товар также описано в предыдущем комментарии. Поэтому плагин объединения в данном случае более подходящий вариант.

    По ссылке из первого комментария наверное только WPC Linked Variation for WooCommerce подходит по смыслу. Буду пробовать - позволяет ли функционал сделать то что надо. Дам обратную связь.
    Написано
  • Как сделать чтобы при выборе цвета обуви открывалась другая карточка товара Woocommerce?

    @Elena_11 Автор вопроса
    Refguser, добрый день, дело в том что обратный метод тоже по идее не подходит. Помимо цветов в туфлях есть и размеры (т.е. товары вбиты не как не простые, они вариативные), и если выводить с помощью какого-то плагина все вариации в каталоге, то если есть 5 размеров красного цвета, то в каталоге будет выводить 5 раз одни и те же красные туфли 36,37,38,39,40? Потом ещё 5 вариаций бежевого, 5 вариаций чёрного и т.д.
    Поэтому надо как-то отдельные вариативные товары сгруппировать в одной карточке по цвету, чтобы при клике открывался нужный товар. Но как это сделать технически не могу понять...
    Написано
  • Почему array_count_values возвращает пустой массив?

    @Elena_11 Автор вопроса
    <ul>
    	<?php
    	$custom_query = new WP_Query(array(
    		'post_type' => 'vse_ob_ekti',
    		'posts_per_page' => -1,
    	));
    
    	if ($custom_query->have_posts()) {
    		$object_types = array();
    
    		while ($custom_query->have_posts()) {
    			$custom_query->the_post();
    			// Получите значение кастомного поля 'object_type' с помощью ACF
    			$object_type = get_field('object_type');
    
    			if ($object_type && isset($object_type['value']) && isset($object_type['label'])) {
    				$object_types[$object_type['value']] = $object_type['label'];
    			}
    		}
    		wp_reset_postdata();
    		// Вывод начальных значений и скрытие остальных
    		foreach (array_reverse($object_types) as $value => $label) {
    			$is_initial_value = in_array($label, array('Таунхаусы', 'Квартиры, апартаменты', 'Дома, виллы, коттеджи'));
    			$class = $is_initial_value ? '' : 'hidden no-popular';
    
    			// Подсчет количества записей для текущего значения
    
    			$count = array_count_values(array_column($object_types, $value));
    			//var_dump($object_types, $value, $count);
    
    
    			echo '<li class="select__type-item ' . $class . '" data-value="' . esc_attr($value) . '"><span class="item-text" style="margin-right: 10px" data-label="' . esc_attr($label) . '">' . esc_html($label) . '</span>' . $count[$value] . '</li>';
    		}
    		echo '<li class="show-more show-button">Показать все</li>';
    		echo '<li class="hide-more show-button">Показать популярные</li>';
    	}
    	?>
    </ul>
  • Почему array_count_values возвращает пустой массив?

    @Elena_11 Автор вопроса
    Михаил Ливач, всё что на картинке было продублировано текстом. Скрин лишь в дополнение чтобы показать вывод. И что значит "я уверен что код работал не так. Если работало, значит уже так) Всё устраивало. Счётчики корректно показывали количество записей в каждом типа объектов. Лейблы по-прежнему отображаются корректно, но не показывает кол-во записей.

    Не совсем поняла вот это что имеется ввиду - "Я догадываюсь, что тут должно быть такое:", я так понимаю вы показываете каким должен быть массив, но массив в коде именно такой. Что именно нужно сделать чтобы его изменить и функция заработала? Из ответов пока не совсем поняла что конкретно нужно сделать, ведь данные динамические и я их не ввожу вручную. Там циклом выводится список из объектов. Может имеет смысл показать полностью цикл, внутри которого эта функция?
  • Почему array_count_values возвращает пустой массив?

    @Elena_11 Автор вопроса
    это скрин с фронта, в чём именно странность кода? Писал другой человек, но код работал раннее. Со сменой php перестал. Код считал сколько объектов в той или иной категории. Дамп:
    array(10) { ["newbuildings"]=> string(22) "Новостройки" ["flat"]=> string(40) "Квартиры, апартаменты" ["house"]=> string(38) "Дома, виллы, коттеджи" ["condominiums"]=> string(24) "Кондоминиумы" ["arenda"]=> string(36) "Квартиры под аренду" ["land"]=> string(33) "Земельные участки" ["islands"]=> string(14) "Острова" ["chalet"]=> string(8) "Шале" ["castle"]=> string(10) "Замки" ["townhouse"]=> string(18) "Таунхаусы" } string(9) "townhouse" array(0) { }
    Warning: Undefined array key "townhouse" in
  • Как добавить Тег к сделке AMO CRM по API?

    @Elena_11 Автор вопроса
    Валерий Чмых, да вроде работает и в документации у них указан 'tags', видимо можно и так и так. Раз работает)
  • Как добавить Тег к сделке AMO CRM по API?

    @Elena_11 Автор вопроса
    спасибо, там действительно метод PATCH, если отправлять отдельным запросом. Но как оказалось, тег можно сразу при создании сделки прописать, я почему-то решила, что отдельным запросом надо, как примечание) можно просто внутрь "_embedded" добавить, а метод у меня такой $amoClient('POST', '/api/v4/leads/complex',
    "_embedded" => [
        'tags' => [
            ['name' => $tag],
        ],
    ],
  • Как добавить Примечание в сделку / API AmoCRM?

    @Elena_11 Автор вопроса
    Валерий Чмых, Спасибо тебе огромное, добрый человек! Здоровья тебе, твоим детям, внукам и даже правнукам )) Ты мне большую помощь оказал. 2 дня мучилась и не получалось добавить этот несчастный комментарий к сделке
  • Как добавить Примечание в сделку / API AmoCRM?

    @Elena_11 Автор вопроса
    Валерий Чмых, ураа, примечание добавилось, там просто токены же обновляются, надо было подключить require_once 'access.php'; и переменную с токеном вставить $access_token, а я секретный ключ вставляла. А в мой запрос это нельзя было интегрировать? Он не подходит по каким-то причинам или почему полностью заново переписали? Там же вроде сделка создаётся, в теории я же могу в мой код добавить кусочек с комментарием?
  • Как добавить Примечание в сделку / API AmoCRM?

    @Elena_11 Автор вопроса
    Валерий Чмых, хочу уточнить - $domain это же subdomain имеется ввиду? который указывается при авторизации. В общем и так и так тестировала. Заявки уходят только с моим запросом (который выше присылала).

    С вашим вариантом вот (токен добавляла где указано):
    array(2) { ["content"]=> NULL ["status_code"]=> int(402) } array(2) { ["content"]=> array(4) { ["title"]=> string(9) "Not Found" ["type"]=> string(25) "https://httpstatus.es/404" ["status"]=> int(404) ["detail"]=> string(53) "Cannot POST https://subdomain.amocrm.ru/leads//notes!" } ["status_code"]=> int(404) }
  • Как добавить Примечание в сделку / API AmoCRM?

    @Elena_11 Автор вопроса
    Валерий Чмых, попробовала - заявки приходят, но примечание не добавляется

    67dfc7495f202288883013.png

    здесь точно через скобки фигурные id вставляется? редактор подсвечивает всё как обычный текст. Пробовала через точку переменную прописать, но тоже не добавляется примечание
  • Как добавить Примечание в сделку / API AmoCRM?

    @Elena_11 Автор вопроса
    Валерий Чмых, Большое спасибо за развёрнутый ответ по существу. Вот отрывок кода, отвечающий за добавление сделки. Там в конце как раз есть $response. Он подойдёт для того, чтобы вытащить id? Только вот как именно прописать запрос на добавление комментария я как раз и не понимаю...

    $method = "/api/v4/leads/complex";
    
    $headers = [
        'Content-Type: application/json',
        'Authorization: Bearer ' . $access_token,
    ];
    
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_USERAGENT, 'amoCRM-API-client/1.0');
    curl_setopt($curl, CURLOPT_URL, "https://$subdomain.amocrm.ru".$method);
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
    curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_HEADER, false);
    curl_setopt($curl, CURLOPT_COOKIEFILE, 'amo/cookie.txt');
    curl_setopt($curl, CURLOPT_COOKIEJAR, 'amo/cookie.txt');
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
    $out = curl_exec($curl);
    $code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
    $code = (int) $code;
    $errors = [
        301 => 'Moved permanently.',
        400 => 'Wrong structure of the array of transmitted data, or invalid identifiers of custom fields.',
        401 => 'Not Authorized. There is no account information on the server. You need to make a request to another server on the transmitted IP.',
        403 => 'The account is blocked, for repeatedly exceeding the number of requests per second.',
        404 => 'Not found.',
        500 => 'Internal server error.',
        502 => 'Bad gateway.',
        503 => 'Service unavailable.'
    ];
    
    if ($code < 200 || $code > 204) die( "Error $code. " . (isset($errors[$code]) ? $errors[$code] : 'Undefined error') );
    
    
    $Response = json_decode($out, true);
    $Response = $Response['_embedded']['items'];
    $output = 'ID добавленных элементов списков:' . PHP_EOL;
    foreach ($Response as $v)
        if (is_array($v))
            $output .= $v['id'] . PHP_EOL;
    return $output;
  • Как добавить Примечание в сделку / API AmoCRM?

    @Elena_11 Автор вопроса
    Спасибо за комментарий, если бы вы мне это не написали, то из документации я бы и не догадалась, потому что документация амо по-моему совершенно не помогает... Там только примеры ответов и параметры, а примера как добавить примечание через api нет. Заявка создаётся из кода выше, но что конкретно дальше делать не понимаю. Как конкретно получить id и каким именно запросом можно создать примечание? Может какой-то рабочий пример есть
  • Как добавить кастомное поле с загрузкой файлов в карточку товара Woocommerce?

    @Elena_11 Автор вопроса
    «Пользователь удалён», эдак умело вы перескочили с миллиард примеров на оскорбления.
  • Как добавить кастомное поле с загрузкой файлов в карточку товара Woocommerce?

    @Elena_11 Автор вопроса
    «Пользователь удалён», а может вам подучить основы вукомерс и понять что там всё на хуках, это плагин со своими особенностями, а не набор обычных постов. Примера из озвученных миллиардов не будет так понимаю?
  • Как добавить кастомное поле с загрузкой файлов в карточку товара Woocommerce?

    @Elena_11 Автор вопроса
    «Пользователь удалён», ну так покажите хоть один пример такой реализации не к постам, а к товару woocommerce. Вы вот всё про миллиарды примеров в гугл говорите, но ни одной ссылки не дали. С большим удовольствием посмотрю и даже воспользуюсь
  • Как добавить кастомное поле с загрузкой файлов в карточку товара Woocommerce?

    @Elena_11 Автор вопроса
    «Пользователь удалён», так и я без негатива. Попробуйте нагуглите пример реализации загрузчика в карточке woocommecre кроме того, что выше предложил Владимир Е (что я и пробовала), то обнаружите, что это единственный пример реализации кастомного поля woocommerce с загрузкой через админку, и он оказался нерабочий. Иначе не стала бы писать сюда.
  • Как добавить кастомное поле с загрузкой файлов в карточку товара Woocommerce?

    @Elena_11 Автор вопроса
    «Пользователь удалён», хорошо что вы сразу родились и всё кодом без плагинов умели. А нам простым смертным надо пример реализации или документацию хотя бы одним глазком посмотреть
  • Как добавить кастомное поле с загрузкой файлов в карточку товара Woocommerce?

    @Elena_11 Автор вопроса
    Владимир Е, вот именно этот пример пробовала, но оно не работает. Поле выводится, но не работает и не сохраняет. Видимо устаревшие функции в примере. В целом с загрузчиком я так поняла всё сложно и наверное как вариант можно ACF для этих целей взять, там есть такой тип поля. Думала будет попроще, по аналогии с выводом обычных полей, а там реально целый велосипед писать надо
  • Как добавить кастомное поле с загрузкой файлов в карточку товара Woocommerce?

    @Elena_11 Автор вопроса
    «Пользователь удалён», спасибо за рекомендацию плагина, но по большей части интересует реализация с помощью кастомных полей. Нельзя ли такой загрузчик реализовать кастомно? По аналогии с текстовыми полями. Только для файлов