Показать сообщение отдельно
  #8 (permalink)  
Старый 27.03.2015, 10:22
Аспирант
Отправить личное сообщение для Round Посмотреть профиль Найти все сообщения от Round
 
Регистрация: 08.04.2012
Сообщений: 49

Бородатая проблема, я уже так не работаю. Тот раз решил проблему костылями. Сейчас бы так точно не делал. К сожалению (или к счастью) костыль не сохранился а проект давно уже рефактореный несколько раз.

Для красивого решения нужно использовать API woocommerc.

Подробнее, должно выглядеть примерно так:

Напишите свой обработчик для аякса и используйте цикл из шаблона cart.php

function my_cart_items_loader() {

   ob_start();

   foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { // этот цикл найдете в cart.php
        $my_cart_items = // здесь ваш шаблон для вывода списка товаров загоните его в переменную
   }

   wp_send_json( $my_cart_items ); //теперь эту переменную передайте в ваш ajax

}


И ajax...

jQuery( function( $ ) {

	// определите событие на которое должен срабатывать
	$( document ).on( 'click', '.my-cart', function() {

		$( '.my-cart-items' ).slideToggle( 'slow' ); // показываем ваш блок со списком товаров

		var data = {
			action: 'woocommerce_my_cart_items_loader', // запрашиваем обработчик
			your_variable: //переменная если таковая нужна обработчику,
		};

		$.post( function( response ) {

			$( 'div.my-cart-items-list' ).replaceWith( response ); // выводим результат 

		});
	});

});


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

Последний раз редактировалось Round, 27.03.2015 в 10:26.
Ответить с цитированием