Woocommerce: получить всю информацию о товаре, который был добавлен в корзину, используя кнопку «Добавить в корзину» - PullRequest
2 голосов
/ 17 января 2020

На домашней странице Wordpress есть раздел под названием «Бестселлеры», который демонстрирует бестселлеров на сайте. Таким образом, это не что иное, как различные продукты со ссылкой «Добавить в корзину» в Woocommerce l oop. Когда нажата эта ссылка «Добавить в корзину», я должен иметь возможность прочитать всю информацию о продукте, который только что был добавлен в корзину, например его идентификатор, количество, идентификатор варианта и т. Д. c. через AJAX или, тем не менее, Wordpress / Woocommerce делает это БЕЗ перезагрузки страницы.

ПРИМЕЧАНИЕ:

Обратите внимание, какая функция используется для выполнения sh эта задача не должна мешать работе страницы «Один продукт» при нажатии кнопки «Добавить в корзину» на странице «Один продукт». Вполне нормально, если желаемая функциональность распространяется на другие части сайта, такие как Магазин, Архив и т. Д. c. но НЕ страница с одним продуктом.

ЧТО Я ПОПРОБОВАЛ:

add_action('wp_footer', 'my_loop_add_to_cart', 21);
function my_loop_add_to_cart() {
    //What code should I write here to access the recently added to cart item? 
}

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

Ответы [ 2 ]

1 голос
/ 17 января 2020

Существует один крючок с именем woocommerce_after_shop_loop_item, который будет работать только для сопутствующих товаров и списка товаров на странице магазина.

add_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 9 );


function woocommerce_template_loop_add_to_cart()
{
   global $woocommerce;
   $items = $woocommerce->cart->get_cart();
   $last_added_item_details = end($items)['data'];
}

Протестировано и хорошо работает

1 голос
/ 17 января 2020

Есть несколько вариантов сделать это. Я могу подумать об использовании woocommerce_add_to_cart action hook.

add_action( 'woocommerce_add_to_cart', 'rmg_woocommerce_add_to_cart', 10, 6 );
function rmg_woocommerce_add_to_cart( $cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data ){
    // do something with $cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...