Делаем в листинге кнопку «купить» текстом (vamshop)

26.07.2013 | Написал

В вамшопе уже давненько все кнопки переведены в текст (раньше они были картинками). Но одна кнопка почему-то так и осталась в виде изображения. А именно кнопка «Купить» в листингах категорий, рекомендуемых, новинок и прочих страниц. Устраним эту недоработку следующим образом.

Для того, чтоб вывести кнопку «Купить» в виде текстовой ссылки делаем:

1. Открываем includes/classes/product.php. После:

// beta
	function getBuyNowButtonNew($id, $name) {
		global $PHP_SELF;
		if (AJAX_CART == 'true' && !vam_has_product_attributes($id)) {
		$link = '<a href="'.vam_href_link(basename($PHP_SELF), 'action=buy_now&BUYproducts_id='.$id.'&'.vam_get_all_get_params(array ('action')), 'NONSSL').'" onclick="doBuyNow(\''.$id.'\',\'1\'); return false;">'.vam_image('templates/'.CURRENT_TEMPLATE.'/buttons/' . $_SESSION['language'] . '/button_buy_now.png', TEXT_BUY.$name.TEXT_NOW).'</a>';
		} else {
		$link = '<a href="'.vam_href_link(basename($PHP_SELF), 'action=buy_now&BUYproducts_id='.$id.'&'.vam_get_all_get_params(array ('action')), 'NONSSL').'">'.vam_image('templates/'.CURRENT_TEMPLATE.'/buttons/' . $_SESSION['language'] . '/button_buy_now.png', TEXT_BUY.$name.TEXT_NOW).'</a>';
		}
 
		return $link;
	}

добавляем новую функцию:

	// beta
	function getBuyNowButtonText($id, $name) {
		global $PHP_SELF;
		if (AJAX_CART == 'true' && !vam_has_product_attributes($id)) {
		$link = '<a href="'.vam_href_link(basename($PHP_SELF), 'action=buy_now&BUYproducts_id='.$id.'&'.vam_get_all_get_params(array ('action')), 'NONSSL').'" onclick="doBuyNow(\''.$id.'\',\'1\'); return false;">'.TEXT_BUY_PRODUCT.'</a>';
		} else {
		$link = '<a href="'.vam_href_link(basename($PHP_SELF), 'action=buy_now&BUYproducts_id='.$id.'&'.vam_get_all_get_params(array ('action')), 'NONSSL').'">'.TEXT_BUY_PRODUCT.'</a>';
		}
 
		return $link;
	}

ниже в двух местах после:

$buy_now_new = $this->getBuyNowButtonNew($array['products_id'], $array['products_name']);

добавляем:

$buy_now_text = $this->getBuyNowButtonText($array['products_id'], $array['products_name']);

ниже после:

'PRODUCTS_BUTTON_BUY_NOW_NEW' => $buy_now_new,

добавляем:

'PRODUCTS_BUTTON_BUY_TEXT' => $buy_now_text,

2. Открываем lang/russian/russian.php.
Добавляем:

define('TEXT_BUY_PRODUCT', 'Купить');

3. Теперь в нужных шаблонах мы можем использовать метку {$module_data.PRODUCTS_BUTTON_BUY_TEXT}, которая выведет «Купить» в виде текста.

P.S. В принципе, для версии 1.71 заметка уже не актуальна. Кнопка «Купить» выводится стандартно — в виде текстовой ссылки с общим кнопочным оформлением.

Метки:
10 комментариев читателей статьи "Делаем в листинге кнопку «купить» текстом (vamshop)"
  • Серж пишет:

    Добрый день.

    Клиентам часто бывает нужно купить несколько товаров.
    Подскажите, как сделать, что бы при нажатии на кнопку Купить, оставалась открыта та страница, на которой нажата кнопка? А корзина только в боксе.

    Сейчас сразу открывается страница Корзина. vamshop

  • Серж пишет:

    Включил Аякс корзину — оказалось достаточно

  • Евгений Молодецкий пишет:

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

  • Артём пишет:

    Есть проблема, если товару присвоены дополнительные атрибуты, ссылка быстрого оформления заказа не работает. Перекидывает на карточку товара. Подскажите, как можно обойти эти грабли?

  • Артём пишет:

    Не подскажите, где можно вырезать проверку, чтобы можно было с листинга делать быстрый заказ? Доп атрибут у меня по умолчанию на карточке товара как [type=»checkbox» checked=»checked»] .

  • Александр пишет:

    А Вы не подскажите, нет ли быстрого решения для замены сабмит кнопок 1.71 на картиночные, как было в старых версиях?

    • Евгений Молодецкий пишет:

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

  • Александр пишет:

    Спасибо!

Добавить комментарий

Ваш e-mail не будет опубликован.