Woocommerce Добавить вариант продукта в корзину из пользовательской ссылки [закрыто]

15

Я пытаюсь добавить продукт вариации в корзину напрямую по ссылке. Я устанавливаю var_id с помощью строки запроса. Насколько я могу судить, я отправляю данные точно так же, как и форма продукта по умолчанию.

Вот код внутри моей страницы с одним продуктом:

<a href="<?php echo esc_url( $product->add_to_cart_url() ); ?>&variation_id=262" class="rounded-rect-button add-to-cart">Add to Cart</a>

И наоборот, простой продукт работает отлично. Я установил цены на свои варианты продукта в админке. Не уверен, почему это не так просто, как отправка данных. Любая помощь будет принята с благодарностью.

ezekielDFM
источник

Ответы:

10

В настоящее время я работаю в магазине woocommerce v2.1.12, и кажется, что они изменили это поведение.

URL-адрес моего ajax для добавления товаров в корзину должен выглядеть следующим образом:

?add-to-cart=[PRODUCT-ID]&variation_id=[VARIATION-ID]&attribute_[ATTRIBUTE-NAME]=[ATTRIBUTE-SLUG]&attribute_[ATTRIBUTE-NAME]=[ATTRIBUTE-SLUG]

пример:

http://example.com/store/category/product/?add-to-cart=239&variation_id=240&attribute_pa_size=48-2&attribute_pa_color=gold

это добавляет определенный продукт в корзину, а также устанавливает атрибуты вариации в корзину. Вы даже можете установить количество, просто добавив&quantity=[VALUE]

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

honk31
источник
2
Краткое примечание - проверьте поле выбора вариантов на предмет правильного имени атрибута. Обычно он использует дефисы, поэтому вы получите: & attribute_my-attribute-name = value
императивные идеи
9

Понял это из. Мне не хватало пары параметров, необходимых для добавления товара в корзину. Отсутствующие параметры являются variation_idтипом атрибута и, на variation_idкоторый ссылается объект. Идентификатор варианта можно найти в разделе admin> woocomerce> products и на вкладке вариантов рядом с созданным вами вариантом продукта.

Атрибут param формируется из префикса attribute_и затем очищенного имени атрибута. Например, мой атрибут называется Stock Colours, поэтому мой тип атрибута param - attribute_stock-colors. Из того, что я могу сказать, вы просто установили, attribute_stock-colors=1потому что метод добавления в корзину просто проверить, существует ли он.

Вот простой пример ссылки, которая добавляет товар в мою корзину с номером вариации 261 стандартных цветов:

<a href="<?php echo esc_url( $product->add_to_cart_url() ); ?>&variation_id=261&attribute_stock-colors=1">Add to Cart</a>

Чтобы использовать это в реальной ситуации, вам нужно было бы динамически установить тип атрибута и идентификатор вариации из опций, которые пользователь выбрал в раскрывающемся списке, или что-то в этом роде (если только у каждого продукта нет одного и того же варианта, что в основном делает его продуктом simpel). ).

ezekielDFM
источник