Jump to content

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


support

Recommended Posts

В /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
Link to post
Share on other sites
  • 5 months later...
retroman

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

Вот только, если раскомментировать кусок кода, относящийся к 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);
//}
//}
 
Link to post
Share on other sites
support

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

Link to post
Share on other sites
  • 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. Как это сделать?

Link to post
Share on other sites
support

В /includes/form_check.js.php закомментировать строку проверки email

Link to post
Share on other sites

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

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

 

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

Link to post
Share on other sites
support

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

 

demo.vamshop.ru/create_account.php

Link to post
Share on other sites

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

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

Link to post
Share on other sites
support

Так как раз сверху в этой теме и написано.  :dad:

Link to post
Share on other sites

Это шаг 1,

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

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

Link to post
Share on other sites
support

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

Link to post
Share on other sites

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

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

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

Link to post
Share on other sites
support

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

 

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

Link to post
Share on other sites

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

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

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

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

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

Link to post
Share on other sites
support

Так лично я того же мнения, магазин должен знать информация о своих клиентах.

Link to post
Share on other sites

Так я так и не понял что раскоментить в этом коде чтоб проверка 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

Link to post
Share on other sites
support

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

 

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...