Кратная покупка товара WP E-commerce
29 июля 2011 в 15:16 в категории Плагины и модули 3 комментарияНедавно, передо мной стала задача реализовать покупку товара в интернет магазине исключительно по 20 штук за раз. Цена стояла за единицу товара, а продавался он пачками. Хоть и самым элементарным решением было ставить цену за пачку, по ТЗ нужно было сделать именно так, как просят.
Установлен был WordPress и E-commerce. Начал копаться в коде.
Итак, как сделать покупку кратной? Чтобы человек сразу покупал не единицу товара а к примеру 5 или 10 штук. Такое можно встретить допустим в оптовом интернет-магазине, по-этому я считаю что данная статья может кому-то пригодиться еще. Возможно мой метод не корректный, но он рабочий, если у кого есть еще идеи — пишите, буду рад.
Все что нам необходимо, это найти в файле ajax.functions.php в папке: wp-content/plugins/wp-e-commerce/wpsc-includes/
строки:
function wpsc_add_to_cart() { global $wpdb, $wpsc_cart; /// default values $default_parameters['variation_values'] = null; $default_parameters['quantity'] = 1; $default_parameters['provided_price'] = null; $default_parameters['comment'] = null; $default_parameters['time_requested'] = null; $default_parameters['custom_message'] = null; $default_parameters['file_data'] = null; $default_parameters['is_customisable'] = false; $default_parameters['meta'] = null; ........
В этих строках скрыты параметры продукта при добавлении его в корзину со страницы категории (весь список товаров) и со страницытовара (один товар), без добавления поля количества.
В этих строках нам нужна лишь одна
$default_parameters['quantity'] = 1;
Тут указано количество товара по-умолчанию. Это количество можно изменить на любое, какое вам будет угодно.
Но! Бывает такое, что для какой-то категории товара необходима кратность покупки N числу, а не 1, а для другой нет. Что же делать?
В данной связке есть функция «хлебные крошки» (wpsc_breadcrumb) ее мы и будем использовать для определения принадлежности продукта к той или иной категории, для установления кратности покупки.
Итак, используем функцию wpsc_breadcrumb_url , на сколько я понял она выводит путь к корневому каталогу магазина. К примеру http://your-url.com/products-page/ваша-категория/
Таким образом нам станет известно из этой функции корневую папку, для определения родительской папки можно просто воспользоваться функцией wpsc_output_breadcrumbs(); .
Как она нам поможет?
Запишем возвращаемое значения нужной функции в любую переменную в файлах wpsc-products_page.php и wpsc-single_product.php:
$var = wpsc_breadcrumb_url();
После этого находим в форме для товара строки:
<input type="hidden" value="add_to_cart" name="wpsc_ajax_action" /> <input type="hidden" value="<?php echo wpsc_the_product_id(); ?>" name="product_id" />
И вставляем после них строку:
<input type="hidden" name="hack" value="<? echo $var; ?>" />
Теперь в нашем файле ajax.functions.php можно поставить обычную проверку, например:
if (eregi("/(категория-1)/",$_POST['hack'])){ $default_parameters['quantity'] = 20; }elseif (eregi("/(категория-2)/",$_POST['hack'])){ $default_parameters['quantity'] = 5; }else{ $default_parameters['quantity'] = 1; }
Только кириллица должна быть в формате:
"без-рубрики" = "%d0%b1%d0%b5%d0%b7-%d1%80%d1%83%d0%b1%d1%80%d0%b8%d0%ba%d0%b8"
Вроде все. Если есть дополнения, исправления — пишите, буду рад выслушать ваши умозаключения. Спасибо за внимание. 🙂
UPD: Кратная покупка товара WP E-commerce с выбором количества товаров
3 комментария
Уважаемый автор! Подскажите мне пожалуйста, где мне перевести строчку from в цене, она появилась когда я поставил возможность выбора вариаций по весу товара. прилагаю ссылочку, там видно проблему. плагин wp e-commerce. Буду очень благодарен за помощь. Пример
посмотрите в файлах локализации.
Прочитав данный топик узнаешь много нового по поводу этой темы. Хочу выразить благодарность автору….