Перейти к содержанию
Форум поддержки пользователей VamShop

9.Как вернуть обязательное заполнение полей формы при быстром оформлении заказа!


support

Рекомендуемые сообщения

В /includes/header.php поменять:



if (strstr($PHP_SELF, FILENAME_CHECKOUT)) {
//require(DIR_WS_INCLUDES.'form_check.js.php');
require(DIR_WS_INCLUDES.'checkout.js.php');
}
[/code] на:
[code]

if (strstr($PHP_SELF, FILENAME_CHECKOUT)) {
require(DIR_WS_INCLUDES.'form_check.js.php');
require(DIR_WS_INCLUDES.'checkout.js.php');
}
Это что б вернуть js проверку форм. В /checkout.php раскомментировать код проверки. Например для имени:


//if (strlen($firstname) < ENTRY_FIRST_NAME_MIN_LENGTH) {
//$error = true;

//$messageStack->add('smart_checkout', ENTRY_FIRST_NAME_ERROR);
//}
[/code]

По аналогии раскомментировать и для city и street_address

Ну и всегда можно отключить быстрое оформление и вернуть стандартное в Админке - Настройки - Оформление заказов.

  • Like 1
Ссылка на сообщение
Поделиться на другие сайты
  • 5 months later...

Спасибо, помогло!

Вот только, если раскомментировать кусок кода, относящийся к email, вылезает  ошибка unexpected T_VARIABLE



//if (strlen($email_address) < ENTRY_EMAIL_ADDRESS_MIN_LENGTH) {
//$error = true;

//$messageStack->add('smart_checkout', ENTRY_EMAIL_ADDRESS_ERROR);
//} elseif (vam_validate_email($email_address) == false) {
//$error = true;

//$messageStack->add('smart_checkout', ENTRY_EMAIL_ADDRESS_CHECK_ERROR);
//} else {
//org
//$check_email_query = vam_db_query("select count(*) as total from " . TABLE_CUSTOMERS . " where customers_email_address = '" . vam_db_input($email_address) . "'");

//new
//$check_email_query = vam_db_query("select count(*) as total from " . TABLE_CUSTOMERS . " where customers_email_address = '" . vam_db_input($email_address) . "'");

//$check_email = vam_db_fetch_array($check_email_query);
//if ($check_email['total'] > 0) {
//$error = true;


//$messageStack->add('smart_checkout', ENTRY_EMAIL_ADDRESS_ERROR_EXISTS);
//}
//}
 
Ссылка на сообщение
Поделиться на другие сайты

Значит лишнее что-то раскомментировали, либо наоборот, какие-то строки закомментированными оставили, скобка где-то не закрытая.

Ссылка на сообщение
Поделиться на другие сайты
  • 2 months later...

В /includes/header.php поменять:

 
if (strstr($PHP_SELF, FILENAME_CHECKOUT)) {
//require(DIR_WS_INCLUDES.'form_check.js.php');
require(DIR_WS_INCLUDES.'checkout.js.php');
}
на:

 
if (strstr($PHP_SELF, FILENAME_CHECKOUT)) {
require(DIR_WS_INCLUDES.'form_check.js.php');
require(DIR_WS_INCLUDES.'checkout.js.php');
}
Это что б вернуть js проверку форм.

В /checkout.php раскомментировать код проверки.

Например для имени:

 
    //if (strlen($firstname) < ENTRY_FIRST_NAME_MIN_LENGTH) {
      //$error = true;
 
      //$messageStack->add('smart_checkout', ENTRY_FIRST_NAME_ERROR);
    //}
По аналогии раскомментировать и для city и street_address

Ну и всегда можно отключить быстрое оформление и вернуть стандартное в Админке - Настройки - Оформление заказов.

 

Я вторую часть инструкции не делал, только раскоментировал js скрипт, проверяются все поля. Хотел исключить из проверки e-mail. Как это сделать?

Ссылка на сообщение
Поделиться на другие сайты

Раскомментировал - включилась валидация.

Но информация для пользователя выскакивает в виде кучи текста вверху страницы.

 

Как сделать так же как на странице регистрации , то есть чинно с подсветкой полей и подсказками , привязанными к данному полю?

Ссылка на сообщение
Поделиться на другие сайты

Так на странице регистрации по умолчанию так и есть, посветка и вывод ошибок.

 

demo.vamshop.ru/create_account.php

Ссылка на сообщение
Поделиться на другие сайты

И я о том же, как такое включить на checkout.php?

Все,  решено. В 1.7 нужно остановиться на первом шаге.

Ссылка на сообщение
Поделиться на другие сайты

Это шаг 1,

В /includes/header.php поменять:

Но есть там шаг 2, который в 1.7 с checkout.php из последней демки , не следовало делать.

Ссылка на сообщение
Поделиться на другие сайты

Это проверки например на случай если javascript в браузере отключён, хотя сейчас это не совсем уже актуально, javascript сейчас везде.

Ссылка на сообщение
Поделиться на другие сайты

А зачем вообще валидация отключена? В этом же была какая то логика?

Если включаем - где можно ждать проблем, в каком варианте оформления заказа?

Хорошо бы знать.

Ссылка на сообщение
Поделиться на другие сайты

Так сколько лет просили: зачем столько полей, зачем проверки полей, по просьбам трудящихся и убрали, хоть вообще все поля формы из заказа удаляйте.

 

В будущих версиях наверное будет настройка, что б в админке можно было включать/отключать проверку полей, лично я сам против максимального упрощения заказа, это не есть хорошо для магазина, но вот многие хотят вообще до предела всё упрощать и убирать, вот для таких пользователей и сделали такую возможность.

Ссылка на сообщение
Поделиться на другие сайты

Это не есть хорошо и для клиента. по большому счету. Клиент , да и мы все , ленивы, заполнять не хотим, но хотим , чтобы при этом нас помнили, обслуживали персонифициорованно и пр....

Но у всех разный товар и условия.

Думается , что возможность отключать проверку и сами поля - это штука нужная.

Но лучше бы наоборот.

Исходно - "правильно"  и инструкция что следует комментировать для отключения полей, либо проверки.

Ссылка на сообщение
Поделиться на другие сайты

Так я так и не понял что раскоментить в этом коде чтоб проверка E-mail работала... 
 

//	if (strlen($email_address) < ENTRY_EMAIL_ADDRESS_MIN_LENGTH) {
//      $error = true;
//
 //     $messageStack->add('smart_checkout', ENTRY_EMAIL_ADDRESS_ERROR);
   // } elseif (vam_validate_email($email_address) == false) {
   //   $error = true;

      //$messageStack->add('smart_checkout', ENTRY_EMAIL_ADDRESS_CHECK_ERROR);
    //} else {
      //org
	  //$check_email_query = vam_db_query("select count(*) as total from " . TABLE_CUSTOMERS . " where customers_email_address = '" . vam_db_input($email_address) . "'");
	  
	  //new
      //$check_email_query = vam_db_query("select count(*) as total from " . TABLE_CUSTOMERS . " where customers_email_address = '" . vam_db_input($email_address) . "'");

      //$check_email = vam_db_fetch_array($check_email_query);
      //if ($check_email['total'] > 0) {
        //$error = true;
		

        //$messageStack->add('smart_checkout', ENTRY_EMAIL_ADDRESS_ERROR_EXISTS);
      //}
    //}

Так как если раскоментить все корзина помирает... unexpected T_VARIABLE

Ссылка на сообщение
Поделиться на другие сайты

Если нужна только javascript проверка, то вообще можно этот код не трогать, а только form_check.js.php раскомментировать.

 

А какой код можно посмотреть в /create_account.php, там он не закомментирован.

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...