Как убрать подтверждение статуса "Продавца" администрацией? Тоесть заполнили форму "Получить учетную запись продавца", и все - аккаунт готов, без подтверждения\изменения статуса самим администратором.
Как убрать подтверждение статуса "Продавца" администрацией? Тоесть заполнили форму "Получить учетную запись продавца", и все - аккаунт готов, без подтверждения\изменения статуса самим администратором.
Попробуйте следующее решение:
http://forum.cs-cart.com/topic/44170-automatic-vendor-approval/#entry246368
(!) Не тестировано
Компания создается. Но ошибка + статус "Новый".
Компания создается. Но ошибка + статус "Новый".
Попробуйте:
if (!$result) { fn_save_post_data('user_data', 'company_data'); fn_set_notification('E', __('error'), __('text_error_adding_request'));return array(CONTROLLER_STATUS_REDIRECT, 'companies.apply_for_vendor');
} else {
$status_from = ‘N’;
fn_companies_change_status($result, ‘A’, ‘’, $status_from);
}
Попробуйте:
if (!$result) { fn_save_post_data('user_data', 'company_data'); fn_set_notification('E', __('error'), __('text_error_adding_request'));return array(CONTROLLER_STATUS_REDIRECT, 'companies.apply_for_vendor');
} else {
$status_from = ‘N’;
fn_companies_change_status($result, ‘A’, ‘’, $status_from);
}
Вы лучший волонтер на этом форуме :)
Спасибо, все класс!
Видимо я поспешил с решением задачи.
Строка не передает значение "V" в user_type, таблица cscart_users.
Как дополнить?
Не совсем понятно. Т.е. без этой строчки создается вендор, а с ней обычный пользователь?
fn_companies_change_status($result, 'A', '', $status_from);
Не совсем понятно. Т.е. без этой строчки создается вендор, а с ней обычный пользователь?
fn_companies_change_status($result, 'A', '', $status_from);
Нет, вендор с ней тоже создается, есть запись в таблице cscart_companies. Администратор продавца тоже создается и отображается, но при попытке авторизоваться такому пользователю, на в админ панель вендора:
Как только меняю "C" (клиент?) на "V" (вендор?) в user_type, таблица cscart_users. То все просто замечательно.
Да, C - это клиент. Не должен администратор создаваться с user_type = C. Где-то баг, нужно изучать
Да, C - это клиент. Не должен администратор создаваться с user_type = C. Где-то баг, нужно изучать
Но если все делать по умолчанию, ручками подтверждать, то пользователь идет в атрибутом V.
Да, C - это клиент. Не должен администратор создаваться с user_type = C. Где-то баг, нужно изучать
Сколько может стоить решение?
Или же можно любую регистрацию сделать с таким атрибутом, принудительную.
app/functions/fn.companies.php
где-то тут собака зарыта
if ($status_from == 'N' && ($status_to == 'A' || $status_to == 'P')) { if (Registry::get('settings.Vendors.create_vendor_administrator_account') == 'Y') { if (!empty($company_data['request_user_id'])) { $password_change_timestamp = db_get_field("SELECT password_change_timestamp FROM ?:users WHERE user_id = ?i", $company_data['request_user_id']); $_set = ''; if (empty($password_change_timestamp)) { $_set = ", password_change_timestamp = 1 "; } db_query("UPDATE ?:users SET company_id = ?i, user_type = 'V'$_set WHERE user_id = ?i", $company_id, $company_data['request_user_id']);$username = fn_get_user_name($company_data['request_user_id']); $account = 'updated'; $msg = __('new_administrator_account_created') . '<a href="' . fn_url('profiles.update?user_id=' . $company_data['request_user_id']) . '">' . __('you_can_edit_account_details') . '</a>'; fn_set_notification('N', __('notice'), $msg, 'K'); } else { $_company_data = $company_data + unserialize($company_data['request_account_data']); $_company_data['status'] = 'A'; if (!empty($_company_data['request_account_name'])) { $_company_data['admin_username'] = $_company_data['request_account_name']; } $user_data = fn_create_company_admin($_company_data, $_company_data['fields'], false); if (!empty($user_data['user_id'])) { $username = $user_data['user_login']; $account = 'new'; } } } }
app/functions/fn.companies.php
где-то тут собака зарыта
if ($status_from == 'N' && ($status_to == 'A' || $status_to == 'P')) { if (Registry::get('settings.Vendors.create_vendor_administrator_account') == 'Y') { if (!empty($company_data['request_user_id'])) { $password_change_timestamp = db_get_field("SELECT password_change_timestamp FROM ?:users WHERE user_id = ?i", $company_data['request_user_id']); $_set = ''; if (empty($password_change_timestamp)) { $_set = ", password_change_timestamp = 1 "; } db_query("UPDATE ?:users SET company_id = ?i, user_type = 'V'$_set WHERE user_id = ?i", $company_id, $company_data['request_user_id']);$username = fn_get_user_name($company_data['request_user_id']); $account = 'updated'; $msg = __('new_administrator_account_created') . '<a href="' . fn_url('profiles.update?user_id=' . $company_data['request_user_id']) . '">' . __('you_can_edit_account_details') . '</a>'; fn_set_notification('N', __('notice'), $msg, 'K'); } else { $_company_data = $company_data + unserialize($company_data['request_account_data']); $_company_data['status'] = 'A'; if (!empty($_company_data['request_account_name'])) { $_company_data['admin_username'] = $_company_data['request_account_name']; } $user_data = fn_create_company_admin($_company_data, $_company_data['fields'], false); if (!empty($user_data['user_id'])) { $username = $user_data['user_login']; $account = 'new'; } } } }
Как все сломаю, отпишусь сюда.
Ничего не придумал.
Подскажите пожалуйста.
Может вообще все регистрации сделать с атрибутом "V"? Принудительно, не зависимо от того где и кем была заполнена форма для регистрации профиля.
Вы запрос делаете будучи залогинненым под обычным пользователем или анонимно?
Анонимно.
app/functions/fn.users.php
Замените
'user_type' => 'C', // FIXME?
на
'user_type' => !empty($user_data['user_type'] && $user_data['user_type'] != 'A') ? $user_data['user_type'] : 'C',