Можно ли передать специальное значение параметра запроса в ссылку на продукт WooCommerce?

Я хочу использовать WooCommerce немного странным образом, и мне интересно, есть ли способ сделать это возможным. Вот мой желаемый рабочий процесс:

Шаг 1: С другого поддомена сайта укажите ссылку на определенный виртуальный продукт, но с параметром запроса с уникальным идентификатором пользователя.

Объяснение: Пользователь находится на странице othersite.example.com и получает ссылку для покупки продукта в магазине WooCommerce, настроенном на сайте WordPress, на странице https://example.com/product/virtual-product.

Однако этот продукт будет платой за разблокировку чего-либо на сайте othersite.example.com, у которого есть собственная система пользователя и аутентификации. (База огня)

Можно ли передать идентификатор пользователя из othersite.example.com с помощью параметра запроса URL, а затем включить его в информацию о заказе?

т.е. Из othersite.example.com кто-то может получить ссылку на такой продукт https://example.com/product/virtual-product?userid=00000000000000000, где 00000000000000000 будет его идентификатором пользователя в othersite.example.com.

Затем если это значение запроса userid может быть включено в заказ, следующие шаги должны быть выполнимы.

Шаг 2: Иметь веб-хук, который срабатывает при покупке продукта, сообщая серверу, управляющему пользователями для othersite.example.com, что пользователь с userid00000000000000000 совершил успешную покупку этого продукта.

Есть ли способ принять такие пользовательские значения в заказе? Или это полностью выходит за рамки функциональности WooCommerce?

Огромное спасибо.

Как убрать количество товаров в категории WooCommerce
Как убрать количество товаров в категории WooCommerce
По умолчанию WooCommerce показывает количество товаров рядом с категорией, как показано ниже.
0
0
1 564
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
  • Я считаю, что это можно сделать, используя перенаправление/ссылку непосредственно на страницу оформления заказа, например: «http://вашдомен.com/checkout/?add-to-cart=PRODUCTID&000000» (проверено)

  • В примере «checkout» означает название вашей страницы оформления заказа, «PRODUCTID» — идентификатор желаемого продукта, «000000» — идентификатор пользователя перенаправленного пользователя на другом веб-сайте.

  • Затем вы можете добавить скрытое поле ввода на страницу оформления заказа (в форму оформления заказа, чтобы вы видели это значение по порядку) и, используя URL-адрес, вы можете назначить «000000» (идентификатор пользователя) для значения этого поля.

Я надеюсь, что это работает. Если у вас возникнут проблемы с реализацией, вы можете спросить меня.

- Полезная ссылка для добавления скрытого поля ввода: https://stackoverflow.com/a/42614905/11003615

- Полезная ссылка для получения значения из текущего URL с помощью JS: https://web-design-weekly.com/snippets/get-url-with-javascript/

- Полезная ссылка для получения значения из текущего URL-адреса с использованием ядра PHP/Wordpress: https://wordpress.stackexchange.com/questions/274569/how-to-get-url-of-current-page-displayed.

- Полезная ссылка (содержит 4 части) для добавления настраиваемого поля для оформления заказа и проверки этого поля и сохранения этого поля в полях заказа и отображения значения этого поля на странице заказа: https://docs.woocommerce.com/document/tutorial-customising-checkout-fields-using-actions-and-filters/#section-7

Большое спасибо, это действительно имеет смысл. Но я не могу заставить скрытое значение формы отображаться в заказе. Я добавил такую ​​​​форму ввода <input id = "userid" type = "hidden" name = "userid" value = "testusername">, но потом, когда заказ создан, его нигде не видно. Нужно ли что-то делать, чтобы он распознал и сохранил это поле? Я получаю заказ со всеми деталями из веб-перехватчика, но значение «userid» отсутствует.

Adam D 26.07.2019 23:50

Привет еще раз, вы назначили идентификатор пользователя из URL-адреса в это поле ввода? Если да, можете ли вы протестировать его с помощью «console.info» или другого скрипта, чтобы убедиться, что он получает правильные данные? Если с этим все в порядке, то проблема, как вы сказали, состоит в том, чтобы правильно отобразить этот ввод в разделе заказа. Чтобы решить эту проблему, проверьте ссылку, которую я прикрепил к моему ответу. Пожалуйста, дайте мне знать, если вы решите это.

MrEbabi 27.07.2019 17:47

Я отредактировал свой ответ, предоставив новые ссылки, по которым вы можете получить дополнительную помощь. Я считаю, что последняя ссылка решит вашу проблему.

MrEbabi 27.07.2019 18:00

Спасибо. Извините, я использовал совершенно другое решение, поэтому я не пробовал и не тестировал все это. Последняя ссылка кажется близкой к решению ответа. Я предполагаю, что вам придется создать скрытое поле с помощью 'type' => 'hidden', а затем на странице шаблона добавить некоторый javascript на стороне клиента, который принимает параметр запроса и добавляет его к value скрытого ввода.

Adam D 09.08.2019 10:09

Рад это слышать. Если вы поделитесь своим решением (не всем своим кодом, но хотя бы шагами/руководством по нему), возможно, другие разработчики смогут его использовать :) Хорошего дня.

MrEbabi 09.08.2019 12:07

Да, проблема в том, что я так и не нашел решения. Я решил заняться продажей совершенно по-другому. К сожалению, WooCommerce был очень медленным с их ответами на веб-перехватчики, и в моем случае приложения это действительно повлияло на поток пользователей. Поэтому я решил создать с Stripe совершенно отдельную платежную систему.

Adam D 09.08.2019 12:27

Другие вопросы по теме