Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Вывод запроса на регистрации вместо цены


jobba

Recommended Posts

Стоит функция - не показывать цены незарегеным покупателям. То что для просмотра требуется регистрация, увы, не очевидно. Ибо не выводится вообще ничего.

Прошу специалистов подсказать как реализовать подмену цены на фразу "для просмотра цен - зарегистрируйтесь"...

Чтото если честно разобраться не смог.

Заранее спасибо.

Надіслати
Поділитися на інших сайтах


пример для страницы товара

#1

catalog/controller/product/product.php
меняем

if (!$this->config->get('config_customer_price')) {
				$this->data['display_price'] = TRUE;
			} elseif ($this->customer->isLogged()) {
				$this->data['display_price'] = TRUE;
			} else {
				$this->data['display_price'] = FALSE;
			}
на

/* reg for price */
			$this->data["w_reg_for_price"] = "";
			$this->data["w_reg_for_price_register"] = "<a href=\"".$this->model_tool_seo_url->rewrite(HTTP_SERVER . "index.php?route=account/create")."\">".$this->language->get('w_reg_for_price_register')."</a>";
			$this->data["w_reg_for_price_login"] = "<a href=\"".$this->model_tool_seo_url->rewrite(HTTP_SERVER . "index.php?route=account/login")."\">".$this->language->get('w_reg_for_price_login')."</a>";
			
			if (!$this->config->get('config_customer_price')) {
				$this->data['display_price'] = TRUE;
			} elseif ($this->customer->isLogged()) {
				$this->data['display_price'] = TRUE;
			} else {
				$this->data['display_price'] = FALSE;
				$this->data["w_reg_for_price"] = sprintf($this->language->get('w_reg_for_price'), $this->data["w_reg_for_price_register"], $this->data["w_reg_for_price_login"]);
			}

#2

catalog/language/english/english.php
добавляем

/* w - reg for price */
$_['w_reg_for_price'] = 'To see the prices - %s or %s';
$_['w_reg_for_price_register'] = 'Register';
$_['w_reg_for_price_login'] = 'Log in';

#3

catalog/language/russian/russian.php
добавляем

/* w - reg for price */
$_['w_reg_for_price'] = 'Для просмотра цен - %s или %s';
$_['w_reg_for_price_register'] = 'Зарегистрируйтесь';
$_['w_reg_for_price_login'] = 'Войдите';

#4

catalog/view/theme/default/template/product/product.tpl
в районе строк 104-110 находим

<input type="hidden" name="product_id" value="<?php echo $product_id; ?>" />
                <input type="hidden" name="redirect" value="<?php echo str_replace('&', '&', $redirect); ?>" />
              </div>
            </form>
            <?php } ?></td>
меняем на

<input type="hidden" name="product_id" value="<?php echo $product_id; ?>" />
                <input type="hidden" name="redirect" value="<?php echo str_replace('&', '&', $redirect); ?>" />
              </div>
            </form>
            <?php } else { ?>
            <?php echo $w_reg_for_price; ?>
            <?php } ?></td>

post-3682-0-80230600-1301406200_thumb.png

Змінено користувачем afwollis
поменял
  • +1 2
Надіслати
Поділитися на інших сайтах

afwollis, поменяйте местами то, что "добавляем" во втором и третьем шаге. Оно, в принципе, и так понятно, что там очепятка, но может кому непонятно таки... :)
Надіслати
Поділитися на інших сайтах


  • 4 years later...
  • 2 months later...

Стоит функция - не показывать цены незарегеным покупателям. То что для просмотра требуется регистрация, увы, не очевидно. Ибо не выводится вообще ничего.

Прошу специалистов подсказать как реализовать подмену цены на фразу "для просмотра цен - зарегистрируйтесь"...

Чтото если честно разобраться не смог.

Заранее спасибо.

А зачем так делать? Я бы просто ушла вместо регистрации))

Надіслати
Поділитися на інших сайтах


вот в этом файле: catalog/controller/product/product.php

 

нет такого кода:

if (!$this->config->get('config_customer_price')) {
                $this->data['display_price'] = TRUE;
            } elseif ($this->customer->isLogged()) {
                $this->data['display_price'] = TRUE;
            } else {
                $this->data['display_price'] = FALSE;
            }

 

может приложить свой файл? может кто-нибудь сможет помочь? клиенты предупреждение на главной странице не читают(

 

А в чем проблема-то? чем это решение не устраивает?

Надіслати
Поділитися на інших сайтах


вот в этом файле: catalog/controller/product/product.php

 

нет такого кода:

if (!$this->config->get('config_customer_price')) {

                $this->data['display_price'] = TRUE;

            } elseif ($this->customer->isLogged()) {

                $this->data['display_price'] = TRUE;

            } else {

                $this->data['display_price'] = FALSE;

            }

 

У меня нет ОС 1.5.6. В 2.102 аналогичный код выглядит так:

if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
$data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')));
} else {
$data['price'] = false;
}

Подкорректировать несложно. Но для этого надо видеть код в вашей версии

Надіслати
Поділитися на інших сайтах


Вариант для ОС 1.5.6.4

 

#1

в контроллере

catalog/controller/product/product.php

меняем

if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
	$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
} else {
	$price = false;
}

на

/* reg for price */
$this->data['text_reg_for_price'] = "";

if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
	$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
} else {
	$price = false;
	$this->data['text_reg_for_price'] = sprintf($this->language->get('text_reg_for_price'), $this->url->link('account/login', '', 'SSL'), $this->url->link('account/register', '', 'SSL'));
}

#2

в файлах языка

добавляем (перед  ?>  )

 

англ.

catalog/language/english/english.php
/* text - reg for price */
$_['text_reg_for_price']  = 'To see the prices - <a href="%s">Log in</a> or <a href="%s">Register</a>';

русс.

catalog/language/russian/russian.php
/* text - reg for price */
$_['text_reg_for_price']  = 'Для просмотра цен - <a href="%s">войдите</a> или <a href="%s">зарегистрируйтесь</a>';

#3

в шаблоне

(если шаблон не дефолтный, выбирайте аналогичный файл вашего шаблона)

catalog/view/theme/default/template/product/product.tpl

меняем 

      <?php if ($price) { ?>
      <div class="price"><?php echo $text_price; ?>
        <?php if (!$special) { ?>
        <?php echo $price; ?>
        <?php } else { ?>
        <span class="price-old"><?php echo $price; ?></span> <span class="price-new"><?php echo $special; ?></span>
        <?php } ?>
        <br />
        <?php if ($tax) { ?>
        <span class="price-tax"><?php echo $text_tax; ?> <?php echo $tax; ?></span><br />
        <?php } ?>
        <?php if ($points) { ?>
        <span class="reward"><small><?php echo $text_points; ?> <?php echo $points; ?></small></span><br />
        <?php } ?>
        <?php if ($discounts) { ?>
        <br />
        <div class="discount">
          <?php foreach ($discounts as $discount) { ?>
          <?php echo sprintf($text_discount, $discount['quantity'], $discount['price']); ?><br />
          <?php } ?>
        </div>
        <?php } ?>
      </div>
      <?php } ?>

на

      <?php if ($price) { ?>
      <div class="price"><?php echo $text_price; ?>
        <?php if (!$special) { ?>
        <?php echo $price; ?>
        <?php } else { ?>
        <span class="price-old"><?php echo $price; ?></span> <span class="price-new"><?php echo $special; ?></span>
        <?php } ?>
        <br />
        <?php if ($tax) { ?>
        <span class="price-tax"><?php echo $text_tax; ?> <?php echo $tax; ?></span><br />
        <?php } ?>
        <?php if ($points) { ?>
        <span class="reward"><small><?php echo $text_points; ?> <?php echo $points; ?></small></span><br />
        <?php } ?>
        <?php if ($discounts) { ?>
        <br />
        <div class="discount">
          <?php foreach ($discounts as $discount) { ?>
          <?php echo sprintf($text_discount, $discount['quantity'], $discount['price']); ?><br />
          <?php } ?>
        </div>
        <?php } ?>
      </div>
      <?php } else { ?>
        <?php echo $text_reg_for_price; ?>
      <?php } ?>
Надіслати
Поділитися на інших сайтах


Выдало ошибку(((

 

 

Notice: Undefined variable: price in /home/tltdetstvo/salyra.ru/docs/vqmod/vqcache/vq2-catalog_view_theme_default_template_product_product.tpl on line 34

 

 

 

 

 

Вариант для ОС 1.5.6.4

 

#1

в контроллере

catalog/controller/product/product.php

меняем

if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
	$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
} else {
	$price = false;
}

на

/* reg for price */
$this->data['text_reg_for_price'] = "";

if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
	$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
} else {
	$price = false;
	$this->data['text_reg_for_price'] = sprintf($this->language->get('text_reg_for_price'), $this->url->link('account/login', '', 'SSL'), $this->url->link('account/register', '', 'SSL'));
}

#2

в файлах языка

добавляем (перед  ?>  )

 

англ.

catalog/language/english/english.php
/* text - reg for price */
$_['text_reg_for_price']  = 'To see the prices - <a href="%s">Log in</a> or <a href="%s">Register</a>';

русс.

catalog/language/russian/russian.php
/* text - reg for price */
$_['text_reg_for_price']  = 'Для просмотра цен - <a href="%s">войдите</a> или <a href="%s">зарегистрируйтесь</a>';

#3

в шаблоне

(если шаблон не дефолтный, выбирайте аналогичный файл вашего шаблона)

catalog/view/theme/default/template/product/product.tpl

меняем 

      <?php if ($price) { ?>
      <div class="price"><?php echo $text_price; ?>
        <?php if (!$special) { ?>
        <?php echo $price; ?>
        <?php } else { ?>
        <span class="price-old"><?php echo $price; ?></span> <span class="price-new"><?php echo $special; ?></span>
        <?php } ?>
        <br />
        <?php if ($tax) { ?>
        <span class="price-tax"><?php echo $text_tax; ?> <?php echo $tax; ?></span><br />
        <?php } ?>
        <?php if ($points) { ?>
        <span class="reward"><small><?php echo $text_points; ?> <?php echo $points; ?></small></span><br />
        <?php } ?>
        <?php if ($discounts) { ?>
        <br />
        <div class="discount">
          <?php foreach ($discounts as $discount) { ?>
          <?php echo sprintf($text_discount, $discount['quantity'], $discount['price']); ?><br />
          <?php } ?>
        </div>
        <?php } ?>
      </div>
      <?php } ?>

на

      <?php if ($price) { ?>
      <div class="price"><?php echo $text_price; ?>
        <?php if (!$special) { ?>
        <?php echo $price; ?>
        <?php } else { ?>
        <span class="price-old"><?php echo $price; ?></span> <span class="price-new"><?php echo $special; ?></span>
        <?php } ?>
        <br />
        <?php if ($tax) { ?>
        <span class="price-tax"><?php echo $text_tax; ?> <?php echo $tax; ?></span><br />
        <?php } ?>
        <?php if ($points) { ?>
        <span class="reward"><small><?php echo $text_points; ?> <?php echo $points; ?></small></span><br />
        <?php } ?>
        <?php if ($discounts) { ?>
        <br />
        <div class="discount">
          <?php foreach ($discounts as $discount) { ?>
          <?php echo sprintf($text_discount, $discount['quantity'], $discount['price']); ?><br />
          <?php } ?>
        </div>
        <?php } ?>
      </div>
      <?php } else { ?>
        <?php echo $text_reg_for_price; ?>
      <?php } ?>
Надіслати
Поділитися на інших сайтах


А вы нигде не ошиблись, заменяя/добавляя?

На дефолтном шаблоне работает точно.

 

Покажите ваш файл из vqmod/vqcache

vq2-catalog_view_theme_default_template_product_product.tpl

 

И, если есть (скорее всего, есть), из этой же папки файл типа бла-бла-бла-product.php

Надіслати
Поділитися на інших сайтах


Всё один в один делал

 

 

 

А вы нигде не ошиблись, заменяя/добавляя?

На дефолтном шаблоне работает точно.

 

Покажите ваш файл из vqmod/vqcache

vq2-catalog_view_theme_default_template_product_product.tpl

 

И, если есть (скорее всего, есть), из этой же папки файл типа бла-бла-бла-product.php

Надіслати
Поділитися на інших сайтах


Как-то странно, сделал как Вы сказали, появилась ошибка, но надписи войти или зарегиться не появилось, вернул все файлы кэша, ошибка пропала, но и надписи так же нет %)

Змінено користувачем HardTLT
Надіслати
Поділитися на інших сайтах


Что-то я под влиянием https://opencartforum.com/topic/2359-vyvod-zaprosa-na-registratcii-vmesto-tceny/?do=findComment&comment=14814 написал лишнего, и не того, что надо.. Надо было сразу самому думать(
 
Правильный вариант для ОС 1.5.6
 
#1
в файлы языка добавляем

 

catalog/language/russian/russian.php

$_['text_reg_for_price']  = 'Для просмотра цен - <a href="%s">войдите</a> или <a href="%s">зарегистрируйтесь</a>';

catalog/language/english/english.php

$_['text_reg_for_price']  = 'To see the prices - <a href="%s">Log in</a> or <a href="%s">Register</a>';

#2

в контроллер, в самом начале, после

$this->language->load('product/product');

добавляем

$this->data['text_reg_for_price'] = sprintf($this->language->get('text_reg_for_price'), $this->url->link('account/login', '', 'SSL'), $this->url->link('account/register', '', 'SSL'));

#3

в шаблоне

(если шаблон не дефолтный, выбирайте аналогичный файл вашего шаблона)

 

catalog/view/theme/default/template/product/product.tpl

 

ищем

      <?php if ($price) { ?>
      <div class="price"><?php echo $text_price; ?>
        <?php if (!$special) { ?>
        <?php echo $price; ?>
        <?php } else { ?>
        <span class="price-old"><?php echo $price; ?></span> <span class="price-new"><?php echo $special; ?></span>
        <?php } ?>
        <br />
        <?php if ($tax) { ?>
        <span class="price-tax"><?php echo $text_tax; ?> <?php echo $tax; ?></span><br />
        <?php } ?>
        <?php if ($points) { ?>
        <span class="reward"><small><?php echo $text_points; ?> <?php echo $points; ?></small></span><br />
        <?php } ?>
        <?php if ($discounts) { ?>
        <br />
        <div class="discount">
          <?php foreach ($discounts as $discount) { ?>
          <?php echo sprintf($text_discount, $discount['quantity'], $discount['price']); ?><br />
          <?php } ?>
        </div>
        <?php } ?>
      </div>
      <?php } ?>

 меняем на

      <?php if ($price) { ?>
      <div class="price"><?php echo $text_price; ?>
        <?php if (!$special) { ?>
        <?php echo $price; ?>
        <?php } else { ?>
        <span class="price-old"><?php echo $price; ?></span> <span class="price-new"><?php echo $special; ?></span>
        <?php } ?>
        <br />
        <?php if ($tax) { ?>
        <span class="price-tax"><?php echo $text_tax; ?> <?php echo $tax; ?></span><br />
        <?php } ?>
        <?php if ($points) { ?>
        <span class="reward"><small><?php echo $text_points; ?> <?php echo $points; ?></small></span><br />
        <?php } ?>
        <?php if ($discounts) { ?>
        <br />
        <div class="discount">
          <?php foreach ($discounts as $discount) { ?>
          <?php echo sprintf($text_discount, $discount['quantity'], $discount['price']); ?><br />
          <?php } ?>
        </div>
        <?php } ?>
      </div>
      <?php } else { ?>
       <div class="text_price"> <?php echo $text_reg_for_price; ?></div>
      <?php } ?>

в css задаем нужные стили для класса .text_price

Змінено користувачем Shureg
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.